目录
消除结果集中的重复行
语法格式 | select distinct (字段名1 、2) from 表名; |
格式 | 例 | |
语法格式 | select [ all|distinct ] *|字段名列表 from 表名列表 where <条件表达式>; | 查询employees表中工资为3000元的员工信息: select * from employees where esal =3000; |
(可加嵌套:IN(select 字段名 from 表名……) )
语法规则 | select 字段名/* from 表名 where 字段名 (NOT) IN(n1,n2,n3,…); | 例如:查询当前表的部门编号为1或2或4的:select * from 表名 where 字段名 IN(1,2,4); ##加了not表示取反 |
语法规则 | select 字段名/* from 表名 where 字段名 NOT IN(n1,n2,n3,…) | 相当于IN的反义词 |
精准查询,BETWEEN AND需要两个参数支持,一个是范围的开始值,另一个就是结束值了。如果字段值满足指定的范围查询条件,就返回这些满足条件的数据内容。
语法规则 | select 字段名/* from 表名 where 字段名 BETWEEN n1 AND n2; | 例:工资>=2000,esal<3000 |
取反 | select 字段名/* from 表名 where 字段名 NOT BETWEEN n1 AND n2; | 例:除了工资>=2000,esal<3000 的都查询 |
带like(像)的字符匹配查询 与“%”或“_”一起使用;
1、"%" 百分号通配符: 表示任何字符出现任意次数 (可以是0次)。
2、"_" 下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。
当然,也可以like "陈____",数量不限。
3、like操作符:LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配进行比较;但如果like后面没出现通配符,则在SQL执行优化时将 like 默认为 “=”执行
模糊匹配含有“网”字的数据 | SELECT * from 表名 where 字段名 like '%网%'; |
模糊匹配以‘网’字结尾的数据 | SELECT * from 表名 where 字段名 like '%网'; |
模糊匹配以'网'字开头的数据 | SELECT * from 表名 where 字段名 like '网%'; |
精准匹配, 字段名 like '网' 等同于:字段名 = '网' | SELECT * from 表名 where 字段名 = '网'; -- 等同于 SELECT * from 表名 where 字段名 like '网'; |
模糊匹配含有“xxx网xxx车xxx”的数据, 如:"途途网约车司机端、网络约车平台" | SELECT * from 表名 where 字段名 like '%网%车%'; |
注意:'%__网、__%网' 等同于 '%网'
查询以“网”为结尾的,长度为三个字的数据, 如:"链家网", | SELECT * from 表名 where 字段名 like '__网'; |
查询前三个字符为XX网,后面任意匹配, 如:"城通网盘、模具网平台" | SELECT * from 表名 where 字段名 like '__网%'; |
模糊匹配含有“xx网x车xxx”的数据, 如:"携程网约车客户端" | SELECT * from 表名 where 字段名 like '__网_车%'; |