1.6 查询语句
1 | 语法:select [选项] 列名 [from 表名] [where 条件] [group by 分组] [order by 排序][having 条件] [limit 限制] |
1.6.1 字段表达式
1 | mysql> select '锄禾日当午'; |
通过as给字段取别名
1 | mysql> select '锄禾日当午' as content; |
多学一招:as可以省略
1 | mysql> select 10*10 result; |
1.6.2 from子句
from:来自,from后面跟的是数据源。数据源可以有多个。返回笛卡尔积。
插入测试表
1 | mysql> create table t1( |
测试多个数据源
1 | mysql> select * from t1,t2; # 返回笛卡尔积 |
1.6.3 dual表
dual表是一个伪表。在有些特定情况下,没有具体的表的参与,但是为了保证select语句的完整又必须要一个表名,这时候就使用伪表。
1 | mysql> select 10*10 as result from dual; #dual表是用来保证select语句的完整性。 |
1.6.4 where子句
where后面跟的是条件,在数据源中进行筛选。返回条件为真记录
MySQL支持的运算符
>
大于<
小于>=
<=
=
!=
- and 与
- or 或
- not 非
1 | mysql> select * from stu where stusex='男'; # 查找性别是男的记录 |
思考:如下代码输出什么
1 | select * from stu where 1 # 返回所有数据库 |
思考:如何查找北京和上海的学生
1 | mysql> select * from stu where stuaddress='上海' or stuaddress='北京'; |
1.6.5 in | not in
上面的查询上海和北京的学生的SQL可以通过in语句来实现
1 | mysql> select * from stu where stuaddress in ('北京','上海'); |
练习:
1、查找学号是s25301,s25302,s25303的学生
1 | mysql> select * from stu where stuno in ('s25301','s25302','s25303'); |
2、查找年龄是18,19,20的学生
1 | mysql> select * from stu where stuage in(18,19,20); |
3、查找不是北京和上海的学生
1 | mysql> select * from stu where stuaddress not in ('北京','上海'); |
1.6.6 between…and|not between…and
查找某个范围的记录
1、查找年龄在18~20之间的学生
1 | mysql> select * from stu where stuage>=18 and stuage<=20; # 方法一 |
2、查找年龄不在18~20之间的学生
1 | mysql> select * from stu where stuage<18 or stuage>20; #方法一 |
1.6.7 is null | is not null
脚下留心:查询一个为空的字段不能用等于,必须用is null
查找缺考的学生
1 | mysql> select * from stu where ch is null or math is null; # 查找缺考的人 |
查找参加考试的学生
1 | mysql> select * from stu where ch is not null and math is not null; |
1.6.8 聚合函数
- sum() 求和
- avg() 求平均值
- max() 求最大值
- min() 求最小值
- count() 求记录数
1 | #求语文总分、语文平均分、语文最高分、语文最低分、总人数 |
1.6.9 通配符
- _ [下划线] 表示任意一个字符
- % 表示任意字符
练习
1、满足“T_m”的有(A、C)
A:Tom B:Toom C:Tam D:Tm E:Tmo
2、满足“T_m_”的有(B、C )
A:Tmom B:Tmmm C:T1m2 D:Tmm E:Tm
3、满足“张%”的是(A、B、C、D)
A:张三 B:张三丰 C:张牙舞爪 D:张 E:小张
4、满足“%诺基亚%”的是(A、B、C、D)
A:诺基亚2100 B:2100诺基亚 C:把我的诺基亚拿过来 D:诺基亚
1.6.10 模糊查询(like)
1 | # 查找姓张的同学 |