欢迎来到cool的博客
7

Music box

Click to Start

点击头像播放音乐
新博客链接

mysql 作业练习

作业:

说明: 每个动作都是一条sql执行下来.

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
);     

一定得增加主键.

1. 新建一个数据库:  School

2. 新建 一个表: students,

    varchar: name

    integer: id

 

   2.1 往里面增加这些数据(纯手打), 包括: 李明, 李华, 李丽, 张三,张思,张武,赵六,赵括,赵萌

 

   2.2 修改这个表, 增加一个列:  integer age(年龄), 分别为这些学生增加年龄, 18-22不等.

 

   2.3 使用SQL语句做以下的查询:

    2.3.1 总共有多少个学生

mysql> select count(name) from students;
+-------------+
| count(name) |
+-------------+
|           9 |
+-------------+
 

    2.3.2 所有年龄大于 19的学生

mysql> select * from students where age > 19;
+------+--------+------+
| id   | name   | age  |
+------+--------+------+
|    1 | 李明   |   21 |
|    4 | 张三   |   20 |
|    5 | 张思   |   22 |
|    6 | 张武   |   20 |
|    9 | 赵萌   |   21 |
 

    2.3.3 所有年龄小于 19的学生

mysql> select * from students where age > 19;

    2.3.4 所有姓李的学生

mysql> select name from students where name like "%李%";

    2.3.5 所有姓赵的,年龄大于19的学生

mysql> select name from students where name like "%李%" and age > 19;

    2.3.6 把所有姓李的, 年龄大于20的学生的名字,都改成"已毕业"

mysql> update students set name = '已毕业' where name like '%李%' and age > 20;
 

    2.3.7 把所有姓李的, 年龄大于20的学生的名字,都删掉.

mysql> delete from students where name like '%李%' and age > 20;

    2.3.8 所有的学生, 按照姓名排序(也就是字母排序...).

mysql> select * from students order by name ;
 

    2.3.8 所有的学生, 按照姓名排序倒序

mysql> select * from students order by name desc;
 

3. 新建一个表: teachers

    varchar: name

    integer: id

mysql> create table teachers (name varchar(25), id integer);
 

   往里面增加3条数据(纯手打), 包括: 周老师, 赵老师

 

4. 实现students 对teachers的关系:

增加科目字段  object:

mysql> alter table teachers add object varchar(255);

mysql> alter table students add object varchar(255);

添加数据:  ..................    update teachers set object = "数学" where  id = 1;

  (有两种课程: 周老师教 数学课,  赵老师教语文课).

增加一个中间表:  object      column :  id   name  student_id  teacher_id.

  4.1 一个学生可以学习语文课,也可以学习数学课.

  4.2 一个数学老师可以教 小李 数学, 也可以教 小张数学.

 

5. 查询:

  5.1 所有学习了语文课的,姓李的,年龄大于19的孩子.

mysql> select * from students where object = "语文" and name like "%李%" and age > 19;

  5.2 所有学习了语文课的,姓李的,年龄大于19的孩子的个数

mysql> select count(*) from students where object = "语文" and name like "%张%" and age > 19;

  5.3 所有教了 "姓李"的孩子的老师

mysql> select teachers.name from teachers inner join students on teachers.object = students.object where students.name like "%李%";

  5.4 所有教了 "姓李"的孩子的老师的个数

mysql> select teachers.name from teachers inner join students on teachers.object = students.object where students.name like "%李%";

  5.4 所有教了 "姓李"的孩子的老师, 按照姓名排序.

mysql> select teachers.name from teachers inner join students on teachers.object = students.object where students.name like "%李%" order by teachers.name;

6. 把所有的表的所有列, 都增加单列的index.

 

7. 找出所有的表的外键. (这个不需要sql, 直接写答案就行)

返回列表