文章目录
前言
MySQL中可以使用SELECT
语句来查询数据。
一、查询表中的指定字段的数据
语法:
1.select 属性列表 from 表名;
select * form 表名 #就是调用整个表格的数据;
select 字段名1,字段名2 from 表名;
2.select 属性列表 from [where 条件表达式1];
从chengji表中查询ZHCJ大于90的记录,按照ZHCJ字段降序
进行排序。去掉desc,就是默认的升序
排序
二、 查看数据库中的表结构
desc 表名;
三、去除重复数值
select distinct 字段名 from 表名;
字段名(要去除重复数值的列)
四、查询指定记录
- Where 条件表达式
select id,xingming,ZHCJ,age from chengji where id=1;
- Where子句常用查询条件
查询条件 | 符号或关键字 |
---|---|
比较 | =、<、<=、>、>=、!=、<>、!>、!< |
指定范围 | BETWEEN AND 、NOT BETWEEN AND |
指定集合 | IN、 NOT IN |
匹配字符 | LIKE 、NOT LIKE |
多个查询条件 | AND、 OR |
1. IN关键字查询
IN关键字可以判断某个字段的值是否在指定的整合中。
如果字段的值在集合中,则满足查询条件,该记录将被查询出来;如果不在集合中,则不满足查询条件。
语法:[NOT] IN (元素1,元素2…元素n)
*上面表示是否等于88和98两个元素,而不是大于88且小于98的意思。
2. Between查询范围
判读字段的值是否在指定范围
语法规则如下:
[NOT] BETWEEN 取值1 AND 取值2
取值1:大于等于这个值
取值2:小于等于这个值
3. Like匹配查询
3.1.匹配字符串是否相等
语法规则如下:
[NOT] like ‘字符’
#此处LIKE与等于号(=)是等价的
3.2. 使用like匹配带有通配符‘%’的字符串‘王%’
*字符串中包含通配符时,‘=’不能代替like。
3.3. 使用like匹配带有通配符‘_’的字符串
*这里的下划线是只匹配名字2个字的王姓人员,名字3个字的王姓人员匹配不了。
- 下划线的用途与%一样,但下划线只匹配单个字符而不是多个字
4. AND多条件查询
- 联合多个条件进行查询
语法规则如下:
条件表达式1 AND 条件表达式2
查询表中ZHCJ为100且xingming为王开头的记录
5. OR多条件查询
- 只要满足几个查询条件中的其中一个,记录就会被查询出来
语法规则如下:条件表达式1 OR 条件表达式2
6. AND与OR
- 当AND与OR一起使用时,AND要比OR先运算。
五、LIMIT限制查询结果的数量
- LIMIT不指定初始位置,从第一条记录开始显示。
语法规则如下:LIMIT 记录
limit n,m
n:开始位置
m:要检索的行数
检索出来的第一行为行0,而不是行1,因此,limit 1,1将检索出第二行而不是第一行。
六、对查询结果排序
语法规则如下:
select 属性列表 from order by 属性名2 [asc | desc];
ASC:升序(默认升序)
DESC:降序
可以给多个列排序,只需要指定列名,列名之间用逗号分开即可。
七、ORDER BY 和 LIMIT组
能够找出一个列中最高或最低的值
语法:
select 字段名 from 表名order by 字段名 DESC|ASC LIMIT 1
八、分组查询
- GROUP BY 将查询结果按某个字段或多个字段进行分组。字段中的值相等的为一组。
语法规则:
select 属性列表 from group by 属性名 [having 条件表达式];
- having 条件表达式
对分组后的结果按条件进行筛选;
- 只能在Group by子句后使用,不能单独使用,只能对分组计算的结果进行筛选;
- 不能使用别名。