1. where
1).比较运算符< 小于  <= 小于等于  = 等于  > 大于  >= 大于等于  !=或<>不等于  in 在某集合内  between 在某范围内in(值1,值2,..值n),等于值1->n任意一个,都行 想查询第4个或者第5个栏目的商品select * from goods where cat_id in (4,5);between 值1 and 值2 ,表示在值1和值2之间select * from goods where shop_price between 2000 and 3000;想买2000-5000之间的商品但是不能用between andselect * from goods where shop_price >= 3000 and shop_price <= 5000;2).逻辑运算符号not或! 逻辑非   or或||逻辑或  and或&&逻辑与3).模糊查询案例:想查找“诺基亚”开头的所有商品like->像   %->通配任意字符  ‘_’单个字符select * from goods where goods_name like '诺基亚';select * from goods where goods_name like '诺基亚%';select * from goods where goods_name like '诺基亚N_';4).正则表达式语法 where 列名 regexp '正则表达式'    宗旨:含有‘’引号里面的字段!regexp '1.' 表示含有1后面跟任意字符的字段;regexp '1000' 表示含有1000的字段  而like表示1000,只能后面再加_或%regexp '1000|2000|3000'; 只要有其中任意一个字段就返回regexp '[123]ton' 匹配含有任意一个数字 是[1|2|3]的缩写。regexp '[^123]' 匹配除123以外的任意字符。如果要区分大小写则用 regexp binary '正则表达式';[123456789] 跟 [0-9] 都是匹配任意一个字符\\表示转义后面跟需要的符号  \\.表示查找点  \\- 表示查找-regexp 'feiji?' 表示查找 feiji 或者 feij 最后面的1位可选可不选。regexp '[[: digit:]]{4}'  [: digit:]匹配任意数字,{4}出现4次任意数字 上面与regexp '[0-9][0-9][0-9][0-9]' 作用相同。低位元字符:^文本的开头  regexp '^[0-9\\.]' 以数字或者.开头$文本的结尾    [[:词的开头[[:>:]]词的结尾   

2.group

1).作用:把行按 字段 分组2).语法:group by col1 ,col2 ...coln3).运用场合: 常见统计场合,如按栏目计算帖子数,统计每个人的平均成绩等。4).5个统计函数max:求最大  min:求最小  sun:求总和  avg:求平均  count:求总行数select max(shop_price) from goods ;(列只能有max一项)6).查询每个栏目下面最贵的商品select cat_id, max(shop_price) from goods group by cat_id;(列位置要是拿cat_id就会把第一次遇到的id拿出来)7).查询每个栏目下的商品种类select cat_id,count(*) from goods group by cat_id;

3 . having

1).having 与 where 异同点    having 与 where 类似,可筛选数据where后的表达式怎么写,having就怎么写    where针对表中的列发挥作用,查询数据having针对查询结果中的列发挥作用,筛选数据2).查询出本店价格比市场价格低多少钱,并且把低200元以上的商品筛选出来。    select good_name,market_prices-shop_prices as sheng from goods having sheng > 200;3).查询挂科2门以上学生的名字及其平均成绩  select name,sum(fenshu<60) as gk ,avg(fenshu)as pj from stu group by name having gk >= 2;
+------+------+---------+
| name | gk   | pj      |
+------+------+---------+
| 张三 |    2 | 62.6667 |
| 李四 |    2 | 50.0000 |
+------+------+---------+

4 . order

1).order by 排序功能按一个或多个字段对查询结果进行排序2).知识点在应用场合描述各种排序场合,如取热点新闻,发帖状元等3).排序汉字,字母,拼音之类的以哈希表值排序可以根据字段来排序,默认是升序排列,也可以使用desc来声明降序排列;

5 . limit

1).作用limit在语句最后,起到限制条目的作用limit(m,n)  m:偏移量,如果不写相当于从头开始取   n:取出条目

6.子查询

1).where型指把内层查询结果作为外层查询的比较条件。取出最大的序列号的商品select good_id,goods_name,from goods where good_id = (select max(goods_id)from goods);2).from型把内层查询结果当做临时表,供外层sql再次查询,查询的时候后面必须加一个别名as temp;挂科2门及2门以上的同学的平均成绩。select name ,avg(fenshu) from stu where name in (select name from (select name ,count(*)as gk from stu where fenshu < 60 group by name having gk >= 2)as temp) group by name;3).exists型把外层的查询结果拿到内层,看内层的查询是否成立查询有商品的栏目select cat_id,cat_name from categroy where exists(select * from goods where goods.cat_id = categroy.cat_id);

7 表的联结

1).创建联结select  表1.列2 , 表2列2, 表2列3 from 表1,表2 where 表1.列1 = 表2.列1;记住了where语句后面要加全限定列名2).内部联结select  表1.列2 , 表2列2, 表2列3 from 表1 Inner Join表2 on 表1.列1 = 表2.列1;3).外部联结select  表1.列2 , 表2列2, 表2列3 from 表1 outer Join表2 on 表1.列1 = 表2.列1;-->上面都可以使用带聚集函数的联结  如:select c1.name,c1.id,count(c2.num) from customers as c1,inner join order as c2on c1.id = c2.id group by c1.id;

总结:

子查询的结果可以当做一个临时表看待,然后用()括起来用。如果是from后面的话要加 as temp .where 把表达式拿到行上看是否成立来理解列:当做变量来理解!

mysql查询操作的5种子句相关推荐

  1. MySQL查询操作(1)

    MySQL查询操作(1) 本文以部门表.员工表和工资等级表这三张表为例,来学习MySQL 查询操作. 1 初始化三张表 这三张表的SQL文件下载地址为:https://download.csdn.ne ...

  2. python操作数据库的几种方法_python对mysql数据库操作的三种不同方式

    原标题:python对mysql数据库操作的三种不同方式 |转载自:博客园 |原文链接:http://www.cnblogs.com/mryrs/p/6951008.html 先要说一下,在这个暑期如 ...

  3. mysql查询耗时_一种数据库高耗时查询的自动取消方法与流程

    本发明涉及数据库的查询方法,特别涉及一种数据库高耗时查询的自动取消方法. 背景技术: 有很多关系型数据库查询业务非常耗时,比如查询企业实时报表之类的,一次查询可能需要几分钟甚至更长.在很多时候,前端业 ...

  4. Java+MySQL+查询操作

    34道查询题8个场景,用Java+界面来实现,可以一个界面上设计多个按钮,每个按钮一道题. 1.老板心情好,想看一下每个部门最高工资是多少.他点击了"查看"按钮,就得到了想要的结果 ...

  5. MySQL数据库操作练习题-各种操作掌握MySQL查询操作

    (文末有数据库代码) 1. 查询全部图书的图书号.作者.出版社和单价: select bno as '图书号',author as '作者',publish as '出版社',price as '单价 ...

  6. MySQL查询数据中每种类型的占比

    查询案件表中每种案件的占比 使用CONVERT函数只保留统计结果的2位小数 CONVERT(  数字 , DECIMAL(10,2) ) SELECT case_type AS '类型',CONVER ...

  7. Mysql 查询区分大小写的两种方法

    oracle中查询默认是区分大小写的,但是在mysql中默认不区分大小写. 解决办法: mysql可以在SQL语句中加入 binary来区分大小写.BINARY不是函数,是类型转换运算符,它用来强制它 ...

  8. mysql查询操作及正则表达式小结

    怎么说呢,用markdown编辑好的文本,无法用在博客园中,不知道怎么处理. 一.排序 1.按多个列排序 使用逗号隔开,如果指定方向则紧挨着要排序的列名 对于多个列的排序,先按照前一个排序然后在前一个 ...

  9. mysql 时间查询_两种常用MySql查询时间段的方法

    MySql查询时间段的方法很多,下面就为您介绍几种最常用的MySql查询时间段方法,如果您在MySql查询时间段方面遇到过问题,不妨一看. MySql的时间字段有date.time.datetime. ...

最新文章

  1. Python3中参数*args和**kwargs介绍
  2. 拼装sql_3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用域你没用过
  3. 将 Shiro 作为应用的权限基础
  4. max函数的平滑(log-sum-exp trick)
  5. CentOS6.5安装perl5.0(tar压缩包方式),有错误you may have to set your dynamic library LD_LIBRARY_PATH
  6. 在linux设置Mysql允许用户远程登录和限制用户远程登录
  7. 一个关于导出excel模板的实例
  8. Java中的装饰器设计模式
  9. react笔记-设计复合式控件(三)
  10. ecshop 手机端没做和电脑一样显示
  11. 谐波合成法matlab,基于Kaimal谱采用谐波合成法生成脉动风场
  12. Java-控制台打印万年历代码
  13. 电话号码本的快速查找
  14. OpenSSL之自签名证书认证
  15. LPC845-BRK开发板运行Blinky示例程序
  16. 这三种研发工程师千万不能招?
  17. SLAM notes
  18. 庖丁解牛-图解MySQL 8.0优化器查询转换篇
  19. Leaflet 调用百度瓦片地图服务
  20. 2021年危险化学品经营单位主要负责人考试试卷及危险化学品经营单位主要负责人模拟考试

热门文章

  1. MySQL下实现先排序后分组查询(问题记录)
  2. 记一道简单的Java面试题,但答错率很高!
  3. java中的让步_java基本教程之线程让步 java多线程教程
  4. 【Java并发编程:volatile关键字之解析】
  5. 算法练习题---回文数
  6. .NET技术面试题系列(2) -sql server数据库优化规范
  7. windows x64 软件约定
  8. MySQL带参数的存储过程小例子
  9. ASP.NET面试题 (转)
  10. 配置classpath,引入jar包