MySQL学习笔记——4.CURD

1.增

  insert into 表名 [(字段)] values (值);

2.删

  删除数据:delete from 表名 where exp;

  清空数据:truncate 表名;

3.改

  update 表名 set 字段=新值,... where exp;

4.查

①where精确查询

  select 字段1.. from 表名 where id = n;

  查询字段可为多个,使用*则表示所有字段

  id = n 为表达式,表达式为真,则取出数据,为假,则不取

  例:商城中商品是否为新品/精品/热卖,就在于字段值为0/1
  而在前台查询时,只需要select语句后加where is_new = 1;

  表达式中还可使用的符号有:

  != <> 不等于 < 小于 <= 小于等于 >= 大于等于 > 大于
  in 在某集合内 between 在某范围内
  not ! 非 or || 或 and && 与
  优先级为:not->and->or

②where模糊查询

  select 字段1.. from 表名 where 字段名 like ‘字符串%‘;

  取出字段名以‘字符串‘开头的数据

  %为通配符,匹配任意字符

  _用于匹配任意单个字符

③group与统计函数

  select max(字段) from 表名 group by 分组字段; //查找组中最大数据

  其他统计函数:

  min 最小 sum 求和 avg 平均 count 总行数

④having筛选

  select 字段1,(字段2-字段3) as 命名字段 from 表名 having exp;

  此时的exp表达式前就不能使用where了,where查找的是数据库中的原始数据

  而原始数据中,是没有‘命名字段的‘,此时是需要在被提取出的原始数据中

  再进行筛选,需要使用having

⑤order by 排序

  排序是在取出结果集后,再进行的

  select 字段1.. from 表名 where exp order by 排序字段 desc;

  desc => 由高到低 降序

  asc => 由低到高 升序

⑥limit

  用于限制取出的数据数量

  ... limit 0,3;

  0 为offset 即从偏移多少条开始取

  3 为N 即取出的条目数

⑦.where 子查询

  select 字段1.. from 表名 where id = (select max(字段) from 表名);

⑧.from 子查询

  select * from (select 字段 from 表名 order by 排序字段 asc)

  as 命名字段 group by 分组字段;

⑨.连接查询

  select 字段1,字段2 from 表1,表2 where 表1.字段 = 表2.字段;

  上述为两表全连接查询(两表相乘,信息量过大,效率太低)

  左连接:

  假设A表在左侧且不动,B表在右侧进行竖向滑动

  A表与B表通过一个关系来筛选B表的行

  例:A表 left join B表 on exp;

  当exp为真时,则将B表中的这一行数据取出

 

作者:@zhnoah
出处:http://www.cnblogs.com/zhnoah/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 
接,否则保留追究法律责任的权利。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。