dede做购物网站安卓优化大师最新版
目录
1、初级
一、连接和退出
1. 连接到 MySQL
2. 退出 MySQL
二、数据库操作
1. 显示数据库列表
2. 创建数据库
3. 使用数据库
4. 删除数据库
三、表操作
1. 显示当前数据库中的表
2. 创建表
3. 查看表结构
4. 删除表
5. 修改表
四、数据操作
1. 插入数据
2. 查询数据
3. 更新数据
4. 删除数据
五、用户管理
1. 创建用户
2. 授予权限
3. 查看用户权限
4. 撤销权限
5. 删除用户
六、备份和恢复
1. 备份数据库
2. 恢复数据库
七、常用高级命令
1. 查看正在运行的查询
2. 杀死一个查询
3. 查看表状态
4. 查看服务器状态
2、高级
一、分页查询
1. 使用 LIMIT 和 OFFSET
2. 示例
二、嵌套查询(子查询)
1. 基本嵌套查询
2. 示例
3. 使用 IN 和子查询
4. 示例
三、联合查询(JOIN)
1. 内连接 (INNER JOIN)
2. 左连接 (LEFT JOIN)
3. 右连接 (RIGHT JOIN)
4. 示例
四、其他高级查询
1. 计算字段(计算列)
2. 使用 CASE 实现条件逻辑
3. 分组和聚合
1、初级
MySQL 提供了丰富的命令集用于数据库管理和操作。以下是一些常用的 MySQL 命令,按功能分类:
一、连接和退出
1. 连接到 MySQL
mysql -u username -p
提示输入密码后,输入你指定的用户名和密码。
2. 退出 MySQL
exit;
二、数据库操作
1. 显示数据库列表
SHOW DATABASES;
2. 创建数据库
CREATE DATABASE database_name;
3. 使用数据库
USE database_name;
4. 删除数据库
DROP DATABASE database_name;
三、表操作
1. 显示当前数据库中的表
SHOW TABLES;
2. 创建表
CREATE TABLE table_name (column1_name column1_datatype,column2_name column2_datatype,... );
3. 查看表结构
DESCRIBE table_name;
4. 删除表
DROP TABLE table_name;
5. 修改表
-
添加列:
ALTER TABLE table_name ADD column_name column_datatype;
-
删除列:
ALTER TABLE table_name DROP COLUMN column_name;
-
修改列:
ALTER TABLE table_name MODIFY COLUMN column_name column_datatype;
四、数据操作
1. 插入数据
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
2. 查询数据
SELECT column1, column2, ... FROM table_name;
-
查询所有列:
SELECT * FROM table_name;
-
带条件查询:
SELECT * FROM table_name WHERE condition;
3. 更新数据
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
4. 删除数据
DELETE FROM table_name WHERE condition;
五、用户管理
1. 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
2. 授予权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
-
刷新权限:
FLUSH PRIVILEGES;
3. 查看用户权限
SHOW GRANTS FOR 'username'@'host';
4. 撤销权限
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
5. 删除用户
DROP USER 'username'@'host';
六、备份和恢复
1. 备份数据库
在命令行中使用 mysqldump
工具:
mysqldump -u username -p database_name > backup_file.sql
2. 恢复数据库
在命令行中使用 mysql
工具:
mysql -u username -p database_name < backup_file.sql
七、常用高级命令
1. 查看正在运行的查询
SHOW PROCESSLIST;
2. 杀死一个查询
KILL query_id;
3. 查看表状态
SHOW TABLE STATUS LIKE 'table_name';
4. 查看服务器状态
SHOW STATUS;
MySQL 的分页查询和嵌套查询是常用的高级查询操作。以下是这些查询的详细说明和示例。
2、高级
一、分页查询
分页查询用于从大量数据中分段获取数据,从而提高查询效率和用户体验。
1. 使用 LIMIT
和 OFFSET
LIMIT
用于指定返回记录的最大数量,OFFSET
用于指定起始位置。
SELECT column1, column2, ... FROM table_name LIMIT limit OFFSET offset;
2. 示例
假设你有一个名为 employees
的表,包含员工信息,每页显示 10 条记录:
-
第一页:
SELECT * FROM employees LIMIT 10 OFFSET 0;
-
第二页:
SELECT * FROM employees LIMIT 10 OFFSET 10;
-
第三页:
SELECT * FROM employees LIMIT 10 OFFSET 20;
二、嵌套查询(子查询)
嵌套查询是指在一个 SQL 查询中嵌套另一个查询,通常用于条件过滤、数据筛选等场景。
1. 基本嵌套查询
在 WHERE
子句中使用子查询:
SELECT column1, column2, ... FROM table_name WHERE column_name = (SELECT column_name FROM another_table WHERE condition);
2. 示例
假设你有两个表 employees
和 departments
,分别存储员工和部门信息,你希望查找属于特定部门的所有员工。
-
查找部门名称为 "Sales" 的部门 ID:
SELECT department_id FROM departments WHERE department_name = 'Sales';
-
使用子查询查找属于 "Sales" 部门的所有员工:
SELECT employee_name FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'Sales');
3. 使用 IN
和子查询
当子查询返回多个结果时,可以使用 IN
关键字:
SELECT column1, column2, ... FROM table_name WHERE column_name IN (SELECT column_name FROM another_table WHERE condition);
4. 示例
查找属于多个部门的员工:
SELECT employee_name FROM employees WHERE department_id IN (SELECT department_id FROM departments WHERE department_name IN ('Sales', 'Marketing'));
三、联合查询(JOIN)
联合查询用于从多个表中查询相关数据。
1. 内连接 (INNER JOIN
)
返回两个表中满足连接条件的记录。
SELECT a.column1, b.column2, ... FROM table1 a INNER JOIN table2 b ON a.common_column = b.common_column;
2. 左连接 (LEFT JOIN
)
返回左表的所有记录及其匹配的右表记录。
SELECT a.column1, b.column2, ... FROM table1 a LEFT JOIN table2 b ON a.common_column = b.common_column;
3. 右连接 (RIGHT JOIN
)
返回右表的所有记录及其匹配的左表记录。
SELECT a.column1, b.column2, ... FROM table1 a RIGHT JOIN table2 b ON a.common_column = b.common_column;
4. 示例
假设有两个表 employees
和 departments
,分别存储员工和部门信息:
-
内连接查询员工及其所在部门:
SELECT e.employee_name, d.department_name FROM employees e INNER JOIN departments d ON e.department_id = d.department_id;
-
左连接查询所有员工及其所在部门(包括没有分配部门的员工):
SELECT e.employee_name, d.department_name FROM employees e LEFT JOIN departments d ON e.department_id = d.department_id;
-
右连接查询所有部门及其员工(包括没有员工的部门):
SELECT e.employee_name, d.department_name FROM employees e RIGHT JOIN departments d ON e.department_id = d.department_id;
四、其他高级查询
1. 计算字段(计算列)
在查询中对字段进行计算:
SELECT column1, (column2 * column3) AS computed_column FROM table_name;
2. 使用 CASE
实现条件逻辑
SELECT employee_name,CASE WHEN salary >= 50000 THEN 'High'WHEN salary >= 30000 THEN 'Medium'ELSE 'Low'END AS salary_level FROM employees;
3. 分组和聚合
使用 GROUP BY
和聚合函数(如 COUNT
, SUM
, AVG
):
SELECT department_id, COUNT(*) FROM employees GROUP BY department_id;