MYSQL笔记
参照《MySQL数据库原理、设计与应用》清华大学出版社
第五章 单表操作
5.1数据操作
5.1.1复制表结构和数据
1.复制已有的表结构
创建一个新表格xxx复制已有的表格aaa
create table (if not exists) xxx like aaa;
2.复制已有的表数据
复制aaa表格的内容添加到xxx表格中 insert into xxx select * from aaa;
3.复制aaa表格中的特定字段值到xxx表格中
insert into xxx(字段1,字段2) select (需要复制字段1,字段2) from xxx;
5.1.2解决主键冲突
①insert into xxx values (1字段值,2字段值,...) on duplicate key update 1字段名=值,2字段名=值,...;
②(建议使用)replace into xxx values (字段值);
5.1.3清空数据
删除(清空)表格数据 delete from xxx;逐条全删 truncate table xxx;全删
5.1.4(查看)去除重复记录
select distinct 1字段名,2字段名,... from xxx; 注:当有多个字段时,只有所有字段值相同才被认为是重复记录
5.2排序与限量
5.2.1排序
1.单字段
select * from xxx order by 字段名 asc升序/desc降序;
2.多字段排序
select * from xxx order by 1字段名 desc/asc,2字段名 desc/asc;
注:当1字段值相同时,才看2字段名的排序
5.2.2限量
①select * from xxx limit 限量数;
②select * from xxx limit 起始数,查看数; 注:第一个是从0开始
5.3分组与聚合函数
5.3.1分组
1.分组统计(字段值相同的为一组)
select [select选项] from xxx (where条件) group by 字段名;
2.分组排序(不需要order by)
select [select选项] from xxx
(where条件) group by 字段名[asc/desc];(默认是升序asc)
3.多分组统计(第一个相同时,才看第二个排序)
select [select选项] from xxx (where条件) group by 1字段名[asc/desc],2字段名[asc/desc];
4.回溯统计(重新统计一次)
select [select选项] from xxx (where条件) group by 字段名[asc/desc] with rollup;
ps:我也不明白那个NULL是为什么
5.统计筛选(位于group by后,where在group by前)(having可与聚合函数结合使用)
select [select选项] from xxx (where条件) group by 字段名[asc/desc] having 条件表达式;
5.3.2聚合函数
1统计参数字段的数量,不统计NULL的记录——select count(字段名) from xxx;
2返回参数字段之和——select sum(字段名) from xxx;
3返回最大最小——select max/min(字段名) from xxx;
4返回平均值——select avg(字段名) from xxx;
5连接字符串——select group_concat(字段名) from xxx;
5.4运算符
5.4.1算术运算符(+ - * / %)、(div运算符=%;mod运算符=取商)、数学函数p137
5.4.2比较运算符p139、比较函数p143
5.4.3逻辑运算符p144
5.4.4赋值运算符p146
5.4.5为运算符p147、位运算符函数p148