MySQL查询语句
1、简单查询
语法:SELECT <字段> FROM <表名>
最简单的查询语句,可以查看多个字段或者整张表
(* from)表示select语句会查看所有字段数据
# 【实例1】用"*"查询所有字段数据
mysql> select *from Student;
+------+--------+------------+------+
| SId | Sname | Sage | Ssex |
+------+--------+------------+------+
| 01 | 赵雷 | 1990-01-01 | 男 |
| 02 | 钱电 | 1990-12-21 | 男 |
| 03 | 孙风 | 1990-12-20 | 男 |
| 04 | 李云 | 1990-12-06 | 男 |
| 05 | 周梅 | 1991-12-01 | 女 |
| 06 | 吴兰 | 1992-01-01 | 女 |
| 07 | 郑竹 | 1989-01-01 | 女 |
| 09 | 张三 | 2017-12-20 | 女 |
| 10 | 李四 | 2017-12-25 | 女 |
| 11 | 李四 | 2012-06-06 | 女 |
| 12 | 赵六 | 2013-06-13 | 女 |
| 13 | 孙七 | 2014-06-01 | 女 |
+------+--------+------------+------+
12 rows in set (0.00 sec)
#【实例2】查询部分字段数据
mysql> select SId,Sname,Ssex from Student;
+------+--------+------+
| SId | Sname | Ssex |
+------+--------+------+
| 01 | 赵雷 | 男 |
| 02 | 钱电 | 男 |
| 03 | 孙风 | 男 |
| 04 | 李云 | 男 |
| 05 | 周梅 | 女 |
| 06 | 吴兰 | 女 |
| 07 | 郑竹 | 女 |
| 09 | 张三 | 女 |
| 10 | 李四 | 女 |
| 11 | 李四 | 女 |
| 12 | 赵六 | 女 |
| 13 | 孙七 | 女 |
+------+--------+------+
12 rows in set (0.00 sec)
2、条件查询
语法:SELECT <字段> from <表名> where <条件>;
根据条件,查询指定条件的字段
#【实例3】查询学生表中是男生的学生
mysql> select *from Student where Ssex='男';
+------+--------+------------+------+
| SId | Sname | Sage | Ssex |
+------+--------+------------+------+
| 01 | 赵雷 | 1990-01-01 | 男 |
| 02 | 钱电 | 1990-12-21 | 男 |
| 03 | 孙风 | 1990-12-20 | 男 |
| 04 | 李云 | 1990-12-06 | 男 |
+------+--------+------------+------+
4 rows in set (0.00 sec)
3、模糊查询
语法:SELECT <字段> from <表名> where <字段> like '%数据%';
或者:SELECT <字段> from <表名> where <字段> like '_数据_';
关键字是like,通常位于条件字段后面
通过输入具体的数据,来对记录进行查询
#【实例4】查询名字里面有四的数据
mysql> select *from Student where Sname like '%四%';
+------+--------+------------+------+
| SId | Sname | Sage | Ssex |
+------+--------+------------+------+
| 10 | 李四 | 2017-12-25 | 女 |
| 11 | 李四 | 2012-06-06 | 女 |
+------+--------+------------+------+
2 rows in set (0.00 sec)
4、算术运算符
符号 | 作用 |
---|---|
> | 大于 |
< | 小于 |
= | 等于 |
!= | 不等于 |
<> | 与!=同义,不等于 |
>= | 大于等于 |
<= | 小于等于 |
通过算术运算符可以将条件限制在一个范围内。
#【实例5】查询Student表中,SId>='04'的学生
mysql> select *from Student where SId >='04';
+------+--------+------------+------+
| SId | Sname | Sage | Ssex |
+------+--------+------------+------+
| 04 | 李云 | 1990-12-06 | 男 |
| 05 | 周梅 | 1991-12-01 | 女 |
| 06 | 吴兰 | 1992-01-01 | 女 |
| 07 | 郑竹 | 1989-01-01 | 女 |
| 09 | 张三 | 2017-12-20 | 女 |
| 10 | 李四 | 2017-12-25 | 女 |
| 11 | 李四 | 2012-06-06 | 女 |
| 12 | 赵六 | 2013-06-13 | 女 |
| 13 | 孙七 | 2014-06-01 | 女 |
+------+--------+------------+------+
9 rows in set (0.00 sec)
5、逻辑运算符
符号 | 作用 |
---|---|
and | 与,同时满足多个条件 |
or | 或,满足多个条件中的一个即可 |
not | 否,不满足条件 |
可以将查询的单个条件改为多个条件或满足多个条件中的一个。
和算数运算符一起使用,可以将条件更加具体
#【实例6】查询Student表中SId!=8且性别为女的学生
mysql> select *from Student where SId!=10 and Ssex='女';
+------+--------+------------+------+
| SId | Sname | Sage | Ssex |
+------+--------+------------+------+
| 05 | 周梅 | 1991-12-01 | 女 |
| 06 | 吴兰 | 1992-01-01 | 女 |
| 07 | 郑竹 | 1989-01-01 | 女 |
| 09 | 张三 | 2017-12-20 | 女 |
| 11 | 李四 | 2012-06-06 | 女 |
| 12 | 赵六 | 2013-06-13 | 女 |
| 13 | 孙七 | 2014-06-01 | 女 |
+------+--------+------------+------+
7 rows in set (0.00 sec)
#【实例7】查询Student表中SId不等于10且性别不为女的学生
mysql> select *from Student where not SId=10 and not Ssex='女';
+------+--------+------------+------+
| SId | Sname | Sage | Ssex |
+------+--------+------------+------+
| 01 | 赵雷 | 1990-01-01 | 男 |
| 02 | 钱电 | 1990-12-21 | 男 |
| 03 | 孙风 | 1990-12-20 | 男 |
| 04 | 李云 | 1990-12-06 | 男 |
+------+--------+------------+------+
4 rows in set (0.00 sec)
6、in与not in运算符
语法:select <字段> from <表名> where <字段> in (列表);
关键字为in,通常位于条件字段后面
符号 | 作用 |
---|---|
in | 在一个条件列表中 |
not in | 不在一个条件列表中 |
#【实例8】查询Student表中,id为6-9的学生
mysql> select *from Student where SId in (06,07,08,09);
+------+--------+------------+------+
| SId | Sname | Sage | Ssex |
+------+--------+------------+------+
| 06 | 吴兰 | 1992-01-01 | 女 |
| 07 | 郑竹 | 1989-01-01 | 女 |
| 09 | 张三 | 2017-12-20 | 女 |
+------+--------+