一:数据库操作
1.连接数据库
mysql -u 用户名 #连接MySQL服务器
2.数据库管理
CREATE DATABASE 数据库名; # 创建数据库
SHOW DATABASES; # 显示所有数据库
USE 数据库名; # 选择数据库
DROP DATABASE 数据库名; # 删除数据库
二,表操作
1.创建表:
CREATE TABLE 表名 (
列名1 数据类型 [约束],
列名2 数据类型 [约束],
...
[PRIMARY KEY (列名)]
);
2.表管理:
SHOW TABLES; # 显示当前数据库所有表
DESCRIBE 表名; # 查看表结构
ALTER TABLE 表名 ADD 列名 数据类型; # 添加列
ALTER TABLE 表名 DROP COLUMN 列名; # 删除列
DROP TABLE 表名; # 删除表
三.数据操作
1.插入数据
INSERT INTO 表名 (列1, 列2,...) VALUES (值1, 值2,...);
INSERT INTO 表名 VALUES (值1, 值2,...); # 为所有列插入值
2.查询数据:
SELECT * FROM 表名; # 查询所有数据
SELECT 列1, 列2 FROM 表名; # 查询指定列
SELECT * FROM 表名 WHERE 条件; # 条件查询
SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC]; # 排序
SELECT * FROM 表名 LIMIT 数量; # 限制返回数量
3.更新数据
UPDATE 表名 SET 列1=值1, 列2=值2 WHERE 条件;
4.删除数据
DELETE FROM 表名 WHERE 条件; # 删除指定数据
TRUNCATE TABLE 表名; # 清空表(更快)
四.常用查询操作
1.条件查询
SELECT * FROM 表名 WHERE 列名 = 值;
SELECT * FROM 表名 WHERE 列名 LIKE '模式'; # %匹配任意字符
SELECT * FROM 表名 WHERE 列名 IN (值1, 值2);
SELECT * FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2;
2.聚合函数
SELECT COUNT(*) FROM 表名; # 计数
SELECT SUM(列名) FROM 表名; # 求和
SELECT AVG(列名) FROM 表名; # 平均值
SELECT MAX(列名) FROM 表名; # 最大值
SELECT MIN(列名) FROM 表名; # 最小值
3.分组查询
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;
SELECT 列名, AVG(数值列) FROM 表名 GROUP BY 列名 HAVING 条件;
五.多表操作
1.连接查询
# 内连接
SELECT * FROM 表1 JOIN 表2 ON 表1.列 = 表2.列;
# 左连接
SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列 = 表2.列;
# 右连接
SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列 = 表2.列;
2.子查询
SELECT * FROM 表名 WHERE 列名 IN (SELECT 列名 FROM 表名 WHERE 条件);
六.索引查询
CREATE INDEX 索引名 ON 表名(列名); # 创建索引
SHOW INDEX FROM 表名; # 查看索引
DROP INDEX 索引名 ON 表名; # 删除索引
七.用户权限管理
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码'; # 创建用户
GRANT 权限 ON 数据库.表 TO '用户名'@'主机'; # 授权
REVOKE 权限 ON 数据库.表 FROM '用户名'@'主机'; # 撤销权限
FLUSH PRIVILEGES; # 刷新权限
八.备份与恢复
# 命令行备份
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
# 命令行恢复
mysql -u 用户名 -p 数据库名 < 备份文件.sql
九.事物控制
START TRANSACTION; # 开始事务
COMMIT; # 提交事务
ROLLBACK; # 回滚事务
十.常用函数
CONCAT(str1, str2) # 字符串连接
SUBSTRING(str, pos, len) # 截取字符串
NOW() # 当前日期时间
DATE_FORMAT(date, format) # 格式化日期
IFNULL(expr1, expr2) # 空值处理