作业环境
- 创建表 students。
- 字段: name,sex,hometown,age,class,card。
- 添加12条数据。
'001', '王昭君', '女', '北京', '20', '1班', '340322199001247654'),
('002', '诸葛亮', '男', '上海', '18', '2班', '340322199002242354'),
('003', '张飞', '男', '南京', '24', '3班', '340322199003247654'),
('004', '白起', '男', '安徽', '22', '4班', '340322199005247654'),
('005', '大乔', '女', '天津', '19', '3班', '340322199004247654'),
('006', '孙尚香', '女', '河北', '18', '1班', '340322199006247654'),
('007', '百里玄策', '男', '山西', '20', '2班', '340322199007247654'),
('008', '小乔', '女', '河南', '15', '3班', null),
('009', '百里守约', '男', '湖南', '21', '1班', ''),
('010', '妲己', '女', '广东', '26', '2班', '340322199607247654'),
('011', '李白', '男', '北京', '30', '4班', '340322199005267754'),
('012', '孙膑', '男', '新疆', '26', '3班', '340322199123297655')
题目
题目:
- 查询小乔的年龄
- 查询20岁以下的学生
- 查询家乡不在北京的学生
- 查询学号为007的学生身份证号
- 查询1班的上海的学生
- 查询姓孙的学生
- 查询非20岁的学生
- 查询所有学生信息,年龄从小到大排序
- 查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大排序
环境准备
- 创建表:
mysql> create table students
-> (id int,name varchar(32),sex varchar(16),
-> hometown varchar(32),age int,class varchar(32),
-> card varchar(32));
Query OK, 0 rows affected (0.07 sec)
mysql> desc students;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(32) | YES | | NULL | |
| sex | varchar(16) | YES | | NULL | |
| hometown | varchar(32) | YES | | NULL | |
| age | int | YES | | NULL | |
| class | varchar(32) | YES | | NULL | |
| card | varchar(32) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
- 添加数据:
mysql> insert into students value
-> (1,'王昭君','女','北京',20,'1班','340322199001247654'),
-> (2,'诸葛亮','男','上海',18,'2班','340322199002242354'),
-> (3,'张飞','男','南京',24,'3班','340322199003247654'),
-> (4,'白起','男','安徽',22,'4班','340322199005247654'),
-> (5,'大乔','女','天津',19,'3班','340322199004247654'),
-> (6,'孙尚香','女','河北',18,'1班','340322199006247654'),
-> (7,'百里玄策','男','山西',20,'2班','340322199007247654'),
-> (8,'小乔','女','河南',15,'3班',null),
-> (9,'百里守约','男','湖南',21,'1班',''),
-> (10,'妲己','女','广东',26,'2班','340322199607247654'),
-> (11,'李白','男','北京',30,'4班','340322199005267754'),
-> (12,'孙膑','男','新疆',26,'3班','340322199000297655'),
-> (13,'老辛','男','山东',32,'班主任','340322199123297655');
Query OK, 13 rows affected (0.00 sec)
Records: 13 Duplicates: 0 Warnings: 0
mysql> select * from students;
+------+--------------+------+----------+------+-----------+--------------------+
| id | name | sex | hometown | age | class | card |
+------+--------------+------+----------+------+-----------+--------------------+
| 1 | 王昭君 | 女 | 北京 | 20 | 1班 | 340322199001247654 |
| 2 | 诸葛亮 | 男 | 上海 | 18 | 2班 | 340322199002242354 |
| 3 | 张飞 | 男 | 南京 | 24 | 3班 | 340322199003247654 |
| 4 | 白起 | 男 | 安徽 | 22 | 4班 | 340322199005247654 |
| 5 | 大乔 | 女 | 天津 | 19 | 3班 | 340322199004247654 |
| 6 | 孙尚香 | 女 | 河北 | 18 | 1班 | 340322199006247654 |
| 7 | 百里玄策 | 男 | 山西 | 20 | 2班 | 340322199007247654 |
| 8 | 小乔 | 女 | 河南 | 15 | 3班 | NULL |
| 9 | 百里守约 | 男 | 湖南 | 21 | 1班 | |
| 10 | 妲己 | 女 | 广东 | 26 | 2班 | 340322199607247654 |
| 11 | 李白 | 男 | 北京 | 30 | 4班 | 340322199005267754 |
| 12 | 孙膑 | 男 | 新疆 | 26 | 3班 | 340322199000297655 |
| 13 | 老辛 | 男 | 山东 | 32 | 班主任 | 340322199123297655 |
+------+--------------+------+----------+------+-----------+--------------------+
13 rows in set (0.00 sec)
答案
- 查询小乔的年龄:
mysql> select name,age from students where name='小乔';
+--------+------+
| name | age |
+--------+------+
| 小乔 | 15 |
+--------+------+
1 row in set (0.00 sec)
- 查询20岁以下的学生:
mysql> select name,age from students where age<20;
+-----------+------+
| name | age |
+-----------+------+
| 诸葛亮 | 18 |
| 大乔 | 19 |
| 孙尚香 | 18 |
| 小乔 | 15 |
+-----------+------+
4 rows in set (0.00 sec)
- 查询家乡不在北京的学生:
mysql> select name,hometown from students where hometown<>'北京';
+--------------+----------+
| name | hometown |
+--------------+----------+
| 诸葛亮 | 上海 |
| 张飞 | 南京 |
| 白起 | 安徽 |
| 大乔 | 天津 |
| 孙尚香 | 河北 |
| 百里玄策 | 山西 |
| 小乔 | 河南 |
| 百里守约 | 湖南 |
| 妲己 | 广东 |
| 孙膑 | 新疆 |
| 老辛 | 山东 |
+--------------+----------+
11 rows in set (0.00 sec)
- 查询学号为007的学生身份证号:
mysql> select id,name,card from students where id=7;
+------+--------------+--------------------+
| id | name | card |
+------+--------------+--------------------+
| 7 | 百里玄策 | 340322199007247654 |
+------+--------------+--------------------+
1 row in set (0.00 sec)
- 查询1班的上海的学生:
mysql> select name,class,hometown from students where class='1班' and hometown='上海';
Empty set (0.01 sec)
mysql> select name,class,hometown from students where class='1班' and hometown='湖南';
+--------------+-------+----------+
| name | class | hometown |
+--------------+-------+----------+
| 百里守约 | 1班 | 湖南 |
+--------------+-------+----------+
1 row in set (0.00 sec)
- 查询姓孙的学生:
mysql> select name from students where name like '孙%';
+-----------+
| name |
+-----------+
| 孙尚香 |
| 孙膑 |
+-----------+
2 rows in set (0.00 sec)
- 查询非20岁的学生
mysql> select name,age from students where age<>20;
+--------------+------+
| name | age |
+--------------+------+
| 诸葛亮 | 18 |
| 张飞 | 24 |
| 白起 | 22 |
| 大乔 | 19 |
| 孙尚香 | 18 |
| 小乔 | 15 |
| 百里守约 | 21 |
| 妲己 | 26 |
| 李白 | 30 |
| 孙膑 | 26 |
| 老辛 | 32 |
+--------------+------+
11 rows in set (0.00 sec)
- 查询所有学生信息,年龄从小到大排序
mysql> select name,age from students order by age asc;
+--------------+------+
| name | age |
+--------------+------+
| 小乔 | 15 |
| 诸葛亮 | 18 |
| 孙尚香 | 18 |
| 大乔 | 19 |
| 王昭君 | 20 |
| 百里玄策 | 20 |
| 百里守约 | 21 |
| 白起 | 22 |
| 张飞 | 24 |
| 妲己 | 26 |
| 孙膑 | 26 |
| 李白 | 30 |
| 老辛 | 32 |
+--------------+------+
13 rows in set (0.01 sec)
- 查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大排序
mysql> select id,name,age from students order by age desc,id asc;
+------+--------------+------+
| id | name | age |
+------+--------------+------+
| 13 | 老辛 | 32 |
| 11 | 李白 | 30 |
| 10 | 妲己 | 26 |
| 12 | 孙膑 | 26 |
| 3 | 张飞 | 24 |
| 4 | 白起 | 22 |
| 9 | 百里守约 | 21 |
| 1 | 王昭君 | 20 |
| 7 | 百里玄策 | 20 |
| 5 | 大乔 | 19 |
| 2 | 诸葛亮 | 18 |
| 6 | 孙尚香 | 18 |
| 8 | 小乔 | 15 |
+------+--------------+------+
13 rows in set (0.00 sec)