MySQL命令
alter命令
修改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
修改数据类型
ALTER TABLE 表名 MODIFY 字段名 数据类型;
添加字段
ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER] 已存在字段名;
删除字段
ALTER TABLE 表名 DROP 字段名;
修改字段排列位置
ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRST|AFTER 字段2;
删除表的外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;
插入、更新、删除数据
更新
UPDATE 表名 SET 字段名1 = 内容1, 字段名2 = 内容2, 字段名3 = 内容3 WHERE 过滤条件;
插入
INSERT INTO 表名 (字段名) VALUES (内容);
删除
DELETE FROM 表名 WHERE 条件语句;
删除所有行:
DELETE FROM 表名;
更快的方式:
TRUNCATE TABLE 表名;
区别:
-
TRUNCATE TABLE 语句直接删除的是表,而不是表中的内容,删除结束后还会重新创建一个表
-
DELETE 是删除表中的所有记录
查询
-
IN关键字
SELECT 字段名 FROM 表名 WHERE 字段名 IN (n1,n2,n3,...);
-
BETWEEN……AND关键字
SELECT 字段名 FROM 表名 WHERE 字段名 BETWEEN n1 AND n2;
-
LIKE 关键字(模糊查询)
区别
%
代表多个字符,_
代表一个字符SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '字符%'; SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '字符_';
-
查询带有null的数据
SELECT 字段名 FROM 表名 WHERE 字段名 IS NULL;
SELECT 字段名 FROM 表名 WHERE 字段名 IS NOT NULL;
-
去重查询
SELECT DISTINCT 字段名 FROM 表名;
-
AND 和 OR 关键字
AND的优先级高于OR
SELECT 字段名 FROM 表名 WHERE 表达式1 AND 表达式2; SELECT 字段名 FROM 表名 WHERE 表达式1 OR 表达式2;
-
对查询结果排序
- ASC 升序,DESC降序
SELECT 字段名 FROM 表名 ORDER BY 字段名 [ASC[DESC]]
-
分组
- 查询的是每个分组中 首次出现的一条记录
SELECT 字段名 FROM 表名 GROUP BY 字段名;
多表关联查询
- 内连接查询
SELECT 字段名 FROM 主表 JOIN 副表 ON 关联条件;
- 外连接查询
SELECT 字段名 FROM 主表 LEFT|RIGHT JOIN 副表 ON 关联条件;
- 复合条件连接查询
SELECT 字段名 FROM 主表 LEFT|RIGHT JOIN 副表 ON 关联条件 [筛选条件|复合查询条件];
子查询
关键字:
- IN
- ALL
- 所有条件成立返回True
- ANY
- 条件中只要有一个成立,则返回True
SELECT 字段名 FROM 表明 WHERE 条件 > ALL(子查询)
使用聚合函数
Count函数
SELECT count(*/字段名) FROM 数据表 WHERE 过滤条件;
SUM函数
select sum(字段名) from 数据表;
AVG平均值函数
select avg(字段名) from 数据表;
max,min最大最小值函数
select max(字段名)/min(字段名) from 数据表;