1. 添加
INSERT INTO 表名
(字段名,···),
VALUES
(值,···),
·
·
·
(值,···);
INSERT INTO student(stuAge,stuAddress,stuName,stuSex) VALUES(19,'广州','张无','女');
2. 删除
DELETE FROM 表名
[WHERE 条件]
DELETE FROM student WHERE stuName like '%aaa%' AND stuAge >=18 And stuAge<=20;
-
模糊查询中通配符的含义
-
‘_’一个任意字符
-
% 任意长度的字符串
-
[] 括号中指定范围类的一个字符
-
[^]不在括号中所指定范围内的一个字符
-
3.修改
UPDATE 表名
SET 字段名=值,字段名=值···
[WHERE 条件]
UPDATE student SET stuAge=18,stuName='说吖' WHERE stuMajor='计算机' AND stuAddress='杭州' AND stuSex='男';
4.查询
SELECT 字段名,···
FROM 表名
[WHERE 条件]
SELECT pName,price FROM product WHERE price<2000 AND pes>200;
5.多表联合查询
内连接查询
1.搭结构 2.确定表名 3.找关系 4.处理的前面的条件 5.处理的后面的结果
SELECT p.pName '产品名称',sum(s.salesQuantity) '销售总数量'
FROM product p,soldnote s
WHERE p.productID =s.productID
GROUP BY p.pName;
左外连接查询
1.搭结构 2.确定表名 3.找关系 4.处理的前面的条件 5.处理的后面的结果
SELECT p.pName '产品名称',sum(s.salesQuantity) '销售总数量'
FROM classes c LEFT JOIN student s ON c.bjid = s.bjid;
总结
- 当插入该表的所有列的数据时,列名可以省略,但是自动增长的主键字段必须用null代替
- 插入部分字段,约束了不允许为空的字段使必须要插入
- 表示范围>= and <= 可以用between and代替
- *代表所有字段,降低效率,不推荐使用
- 查询专业不是考古 zhuanye<> ‘考古’
- in()等同与 or 范围之内 jiguan in(‘襄阳’,‘武汉’,‘广州’) = (jiguan=‘襄阳’ OR jiguan=‘武汉’ OR jiguan=‘广州’);
- 除了计算机专业和财务专业以外 stuMajor NOT IN (‘计算机’,‘财务’);
- IS NULL 空判断用 IS NULL
- 最大值max(字段名) 最小值min(字段名) 平均值avg(字段名) 总和sum(字段名) 总个数count(*) 聚合函数
- limit 起始行数位置,分页(几页为一页)
- 去重 DISTINCT 排序 ORDER BY 字段名 <ASC升序|DESC降序>; 取date字段的年 year(字段)
- 分组 GROUP BY 所有的普通字段名 (当普通字段名和聚合函数同时出现时) 对聚合字段进行二次筛选 HAVING IFNULL(字段名,为null时要替换的文字) 获取系统当前日期+时间 NOW()
- DISTINCT去重 ORDER BY排序 GROUP BY分组 HAVING对聚合字段进行二次筛选