sql单表查询
[toc]
MySQL单表查询
简单查询
1.直接查询
全部查询
1 | select 字段 from 表名 |
最简单的一种查询方式,可查看多个字段或整张表。
1 | mysql> select name,age from yunwei; |
意思是查询yunwei表中name和age部分的全部信息
不重复查询
1 | SELECT distinct 字段列表 from 表名; |
2.条件查询
直接查询
1 | select 字段 from 表名 where 条件 |
根据条件,查询指定条件的字段。
如:
1 | mysql> select * from caiwu where age=20; |
意思是查询caiwu表中年龄为20的人
算数运算符
| 符号 | 作用 |
|---|---|
| > | 大于 |
| < | 小于 |
| = | 等于 |
| != | 不等于 |
| <> | 不等于 |
| >= | 大于等于 |
| <= | 小于等于 |
通过逻辑运算符可以将条件限制在一个范围内。
1 | select * from caiwu where id!=1; |
1 | mysql> select * from caiwu where id!=1; |
搜索id≠1条件下caiwu表中的所有项
逻辑运算符
| 符号 | 作用 | ||
|---|---|---|---|
| and 或 && | 与,同时满足多个选项 | ||
| or 或 \ | \ | 或,满足一个选项即可 | |
| not 或 ! | 否,不满足条件 |
注意:在 MySQL 中,and 的优先级要高于 or。
in 与 not in运算符
| 符号 | 作用 |
|---|---|
| in | 在一个条件列表中 |
| not in | 不在一个条件列表中 |
1 | -- 查询与‘张三’在同一个系学习的学生学号、姓名、性别、所在系 |
模糊查询
1 | select 字段 from 表名 where 字段 like 匹配项; |
通过输入具体的数据,来对记录进行查询
注:
_ 匹配单个字符;
% 匹配任意字符,不管前后。
如:
1 | mysql> select * from caiwu where name like '%三'; |
聚合查询
聚合函数
| 函数 | 功能 |
|---|---|
| count | 统计条数 |
| max | 最大值 |
| min | 最小值 |
| avg | 平均值 |
| sum | 求和 |
1 | select 聚合函数(字段列表) from 表名; |
如:
1 | select count(*) from emp; |
注:
null值不参加所有聚合函数
排序查询
ORDER BY作用是选择字段并对该字段进行排序
| asc | 升序(默认) |
|---|---|
| desc | 降序 |
1 | SELECT * FROM Websites ORDER BY 字段1 排序方试一,字段二 排序方试二; |
注意:
如果字段1排序一致才会采用字段2排序
该排序可以判断列表行数
分组查询
group by将某一字段相同元素聚合
1 | select 字段列表 from 表名 [where 条件] group by 列名 [HAVING 分组后过滤条件]; |
having与where区别
- 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后再对结果过滤
对分组后的数据进行再次过滤,必须在group by后面
- 判断条件不同:where不能对聚合函数进行判断,而having可以
使用limit限制查询结果
1 | SELECT 列名 FROM 表名 limit 起始索引,查询记录数; |
1 | mysql> SELECT employee_id, first_name, last_name FROM employees ORDER BY first_name; |
注意:
起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
分页查询是数据库的方言,不同数据库有不同的实现,MySQL中是LIMIT。
如果查询的是第一页数据,起始索引可以忽略,直接简写为limit 10。
如果要只返回前5行,请使用LIMIT子句,如以下语句。
1 | mysql> SELECT employee_id, first_name, last_name FROM employees ORDER BY first_name LIMIT 5; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小chen妙妙屋!
评论






