上一招我们说了和表相关的操作
这次主要说说操作表其中数据
首先肯定是插入数据
INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn),(value1,value2,……valuesn),(value1,value2,……valuesn);
也可以不用指定字段名称,但是 values 后面的顺序应该和字段的排列顺序一致,对于含可空字段、非空但是含有默认值的字段、自增字段,可以不用在 insert 后的字段列表
里面出现,values 后面只写对应字段名称的 value,这些没写的字段可以自动设置为 NULL、
默认值、自增的下一个数字,这样在某些情况下可以大大缩短 SQL 语句的复杂性。
更新数据
UPDATE tablename SET field1=value1,field2.=value2,……fieldn=valuen [WHERE CONDITION]
删除数据
DELETE FROM tablename WHERE[CONDITION]
在 MySQL 中可以一次删除多个表的数据,语法如下:
DELETE t1,t2…tn FROM t1,t2…tn [WHERE CONDITION]
如果 from 后面的表名用别名,则 delete 后面的也要用相应的别名,否则会提示语法错误。
查询数据
由于 SELECT 的语法很复杂,所有这里只介绍最基本的语法:
SELECT * FROM tablename [WHERE CONDITION]
查询不重复的数据distinct
比如:select distinct name from student
查询中可以用and or not 逻辑运算符将多个条件进行合并查询,sql语句中还支持运算符比如=,>,<,>=,<=等
排序和限制
排序分为升序和降序
升序:ASC 比如:select * from student ORDER BY id ASC
就是以student表中的id 升序作为条件查询出student中的所有数据
降序:DESC 用法和升序的一致
升序和降序都可以接多个字段作为排序字段
限制:ORDER BY
分页:limit
SELECT ……[LIMIT offset_start,row_count]
其中 offset_start 表示记录的起始偏移量,row_count 表示显示的行数。
在默认情况下,起始偏移量为 0,只需要写记录行数就可以,这时候,显示的实际就是前 n
条记录,
聚合:group by
SELECT [field1,field2,……fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,……fieldn
[WITH ROLLUP]]
[HAVING where_contition]
fun_name 表示要做的聚合操作,也就是聚合函数,常用的有 sum(求和)、count(*)(记
录数)、max(最大值)、min(最小值)。
GROUP BY 关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门
就应该写在 group by 后面。
WITH ROLLUP 是可选语法,表明是否对分类聚合后的结果进行再汇总。
HAVING 关键字表示对分类后的结果再进行条件的过滤。