数据操作(二)

  • 插入数据 

多数据插入
基本语法:insert into 表名[(字段列表)] values(值列表) , (值列表), ...; 

主键冲突
①主键冲突更新
基本语法:insert into 表名[(字段列表)] values(值列表) on duplicate key update 字段 = 新值;

②主键冲突替换
基本语法:replace into 表名[(字段列表)] values(值列表);

蠕虫复制(复制数据) 
基本语法:insert into 表名[(字段列表)] select */字段列表 from 表名;

  • 更新数据

限制更新数量
基本语法:update 表名 set 字段名 = 新值 [where 判断条件] limit 数量;

  • 删除操作

限制删除数量
基本语法:delete from 表名 [where 判断条件] limit 数量;

重置自动增长(清空数据)
truncate 表名;

  • 查询操作

select select选项 字段列表 from 数据源 where条件 group by 分组 having条件 order by 排序 limit 限制;
select选项:系统如何处理查询得到的结果
All:默认值,保存所有记录。 
Distinct:去重,去除重复记录(所有字段都相同),保留一条。 

别名
基本语法:字段名/表 [as] 别名;

From 数据源
为前面的查询提供数据,数据源只要是一个符合二维表结构的数据即可。

单表数据:from 表名;
多表数据:from 表1,表2,表3,...; //两张表的记录数相乘,字段数拼接(笛卡儿积)

动态数据
基本语法:from (select 字段列表 from 表名) as 别名; //子查询 
 
Where子句
用来从数据表获取数据的时候进行条件筛选。

Group By子句 
根据指定的字段,将数据进行分组,目的是为了统计。数据按指定字段分组后,只会保存每组的第一条记录。

 

分组统计
基本语法:group by 字段名;

统计函数(聚合函数) 
count(); //统计每组中的数量 
avg(); //求平均值
sum(); //求和
max(); //最大值 
min(); //最小值

group_concat(字段); //将指定字段拼接起来

多分组
将数据按照某个字段分组之后,对已经分组的数据进行再次分组

基本语法:group by 字段1,字段2,字段3,...;先按字段1进行排序,再按字段2进行排序,以此类推。

分组排序
基本语法:group by 字段 [asc/desc],字段 [asc/desc],...;

回溯统计
基本语法:group by 字段 [asc/desc] with rollup;

Having子句
本质和where一样,用来筛选数据,where不能使用聚合函数,但是having可以。

Order by子句
基本语法 order by 字段1 [asc/desc],字段2 [asc/desc],字段3 [asc/desc],...;

Limit子句
限制查询数目,可用于分页操作。
基本语法:limit offset,length; //offset偏移量,length获取的记录条数

查询中的运算符
算法运算符:+、-、*、/、%  //用于select字段中 
比较运算符:>、>=、<、<=、=(<=>)、<>、between 条件1 and 条件2(条件1<条件2) 
逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)
In运算符:基本语法 in(结果1,结果2,结果3,结果4,...) //只要条件在结果集中就返回1
Is运算符:基本语法 is null/is not null
Like运算符:基本语法 like '匹配模式';
两种占位符:
_:匹配对应的单个字符
%:匹配对应的多个字符 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章