04 MySQL数据库--查询语句学习笔记

整理各种查询语句,需要查询数据请参考上篇博客

https://blog.csdn.net/chennuan1991/article/details/105240457

看一下4张表的结构


mysql> desc students;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| sno      | varchar(20) | NO   | PRI | NULL    |       |
| sname    | varchar(20) | NO   |     | NULL    |       |
| ssex     | varchar(10) | NO   |     | NULL    |       |
| birthday | datetime    | YES  |     | NULL    |       |
| class    | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
mysql> desc teacher;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| tno       | varchar(20) | NO   | PRI | NULL    |       |
| tname     | varchar(20) | NO   |     | NULL    |       |
| tsex      | varchar(10) | NO   |     | NULL    |       |
| tbirthday | datetime    | YES  |     | NULL    |       |
| prof      | varchar(20) | NO   |     | NULL    |       |
| tdepar    | varchar(20) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
mysql> desc course;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| cno   | varchar(20) | NO   | PRI | NULL    |       |
| cname | varchar(20) | NO   |     | NULL    |       |
| tno   | varchar(20) | YES  | MUL | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> desc score;
+--------+---------------+------+-----+---------+-------+
| Field  | Type          | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| sno    | varchar(20)   | NO   | PRI | NULL    |       |
| cno    | varchar(20)   | NO   | PRI | NULL    |       |
| degree | decimal(10,0) | YES  |     | NULL    |       |
+--------+---------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

一、基础查询语句

01 查询students表中所有记录

mysql> select * from students;
+-----+--------+------+---------------------+-------+
| sno | sname  | ssex | birthday            | class |
+-----+--------+------+---------------------+-------+
| 101 | 张三   | 男   | 1977-09-01 00:00:00 | 95033 |
| 102 | 李四   | 男   | 1975-10-02 00:00:00 | 95031 |
| 103 | 王五   | 女   | 1976-01-23 00:00:00 | 95033 |
| 104 | 铁柱   | 男   | 1976-02-20 00:00:00 | 95033 |
| 105 | 小丽   | 女   | 1975-02-10 00:00:00 | 95031 |
| 106 | 小红   | 男   | 1974-06-03 00:00:00 | 95031 |
| 107 | 小绿   | 男   | 1976-02-20 00:00:00 | 95033 |
| 108 | 大妞   | 女   | 1975-02-10 00:00:00 | 95031 |
| 109 | 乖乖   | 男   | 1974-06-03 00:00:00 | 95031 |
+-----+--------+------+---------------------+-------+
9 rows in set (0.01 sec)

02 查询students表中所有记录的sname,sex,class列

mysql> select sname,ssex,class from students;
+--------+------+-------+
| sname  | ssex | class |
+--------+------+-------+
| 张三   | 男   | 95033 |
| 李四   | 男   | 95031 |
| 王五   | 女   | 95033 |
| 铁柱   | 男   | 95033 |
| 小丽   | 女   | 95031 |
| 小红   | 男   | 95031 |
| 小绿   | 男   | 95033 |
| 大妞   | 女   | 95031 |
| 乖乖   | 男   | 95031 |
+--------+------+-------+
9 rows in set (0.00 sec)

03 查询教师表中depart(单位)不重复的数据(distinct)

mysql> select distinct tdepar from teacher;
+-----------------+
| tdepar          |
+-----------------+
| 计算机系        |
| 电子工程系      |
+-----------------+
2 rows in set (0.00 sec)

 04 查询score表中成绩在60-80之间的所有记录(between...and...)

mysql> select * from score where degree between 60 and 80;
+-----+-------+--------+
| sno | cno   | degree |
+-----+-------+--------+
| 105 | 3-245 |     75 |
| 105 | 6-166 |     79 |
| 109 | 3-105 |     76 |
| 109 | 3-245 |     68 |
+-----+-------+--------+
4 rows in set (0.00 sec)

05 查询score表中成绩为85,86,或88的记录(in())

mysql> select * from score where degree in(85,86,88);
+-----+-------+--------+
| sno | cno   | degree |
+-----+-------+--------+
| 103 | 3-245 |     86 |
| 103 | 6-166 |     85 |
| 105 | 3-105 |     88 |
+-----+-------+--------+
3 rows in set (0.00 sec)

 06 查询students表中95031班或性别为女的同学的记录(or)

mysql> select * from students where class = '95031' or ssex='女';
+-----+--------+------+---------------------+-------+
| sno | sname  | ssex | birthday            | class |
+-----+--------+------+---------------------+-------+
| 102 | 李四   | 男   | 1975-10-02 00:00:00 | 95031 |
| 103 | 王五   | 女   | 1976-01-23 00:00:00 | 95033 |
| 105 | 小丽   | 女   | 1975-02-10 00:00:00 | 95031 |
| 106 | 小红   | 男   | 1974-06-03 00:00:00 | 95031 |
| 108 | 大妞   | 女   | 1975-02-10 00:00:00 | 95031 |
| 109 | 乖乖   | 男   | 1974-06-03 00:00:00 | 95031 |
+-----+--------+------+---------------------+-------+
6 rows in set (0.00 sec)

 07 以class降序查询students表的所有记录(order by xxx desc)

mysql> select * from students order by class desc;
+-----+--------+------+---------------------+-------+
| sno | sname  | ssex | birthday            | class |
+-----+--------+------+---------------------+-------+
| 101 | 张三   | 男   | 1977-09-01 00:00:00 | 95033 |
| 103 | 王五   | 女   | 1976-01-23 00:00:00 | 95033 |
| 104 | 铁柱   | 男   | 1976-02-20 00:00:00 | 95033 |
| 107 | 小绿   | 男   | 1976-02-20 00:00:00 | 95033 |
| 102 | 李四   | 男   | 1975-10-02 00:00:00 | 95031 |
| 105 | 小丽   | 女   | 1975-02-10 00:00:00 | 95031 |
| 106 | 小红   | 男   | 1974-06-03 00:00:00 | 95031 |
| 108 | 大妞   | 女   | 1975-02-10 00:00:00 | 95031 |
| 109 | 乖乖   | 男   | 1974-06-03 00:00:00 | 95031 |
+-----+--------+------+---------------------+-------+
9 rows in set (0.00 sec)

 08 以cno升序,degree降序查询score表的所有记录(order by xxx asc,xxx desc)

mysql> select * from score order by cno asc,degree desc;
+-----+-------+--------+
| sno | cno   | degree |
+-----+-------+--------+
| 103 | 3-105 |     92 |
| 105 | 3-105 |     88 |
| 109 | 3-105 |     76 |
| 103 | 3-245 |     86 |
| 105 | 3-245 |     75 |
| 109 | 3-245 |     68 |
| 103 | 6-166 |     85 |
| 109 | 6-166 |     81 |
| 105 | 6-166 |     79 |
+-----+-------+--------+
9 rows in set (0.01 sec)

 09 查询95031班学生人数(count())

mysql> select count(*) from students where class ='95031';
+----------+
| count(*) |
+----------+
|        5 |
+----------+
1 row in set (0.00 sec)

10 查询score表中最高分的学生学号和课程号

mysql> select sno,cno,degree from score where degree = (select max(degree) from score);
+-----+-------+--------+
| sno | cno   | degree |
+-----+-------+--------+
| 103 | 3-105 |     92 |
+-----+-------+--------+
1 row in set (0.00 sec)

参考:

感谢code 158编程俱乐部

发布了13 篇原创文章 · 获赞 2 · 访问量 448

猜你喜欢

转载自blog.csdn.net/chennuan1991/article/details/105250429
今日推荐