嵙公选课数据库技术及应用实验二

实验 2 数据库表的创建与管理

内容一:使用 SQL 语句创建学生数据库 studb

mysql> CREATE DATABASE studb;

Query OK, 1 row affected (0.01 sec)

内容二:使用 SQL 语句选择 studb 为当前使用数据库。

mysql> use studb;

Database changed

内容三:使用 SQL 语句在 studb 数据库中创建学生数据表 student、课程数据表 course、学生选课成绩数据表 grade

mysql> CREATE TABLE student(

    -> 学号 char(4)NOT NULL PRIMARY KEY,

    -> 姓名 char(8)Not NULL,

    -> 性别 char(2),

    -> 年龄 int,家庭住址 varchar(50)

    -> );

Query OK, 0 rows affected (0.02 sec)



mysql> CREATE TABLE course(

    -> 课程编号 char(4)NOT NULL PRIMARY KEY,

    -> 课程名称 varchar(50),

    -> 学分 int

    -> );

Query OK, 0 rows affected (0.01 sec)



mysql> CREATE TABLE grade(

    ->  学号 char(4) NOT NULL,

    -> 课程编号 char(4) NOT NULL,

    ->  分数  int,

    -> PRIMARY KEY (学号,课程编号)

    -> );

Query OK, 0 rows affected (0.02 sec)



mysql> show tables;

+-----------------+

| Tables_in_studb |

+-----------------+

| course          |

| grade           |

| student         |

+-----------------+

3 rows in set (0.00 sec)





mysql> desc course;

+--------------+-------------+------+-----+---------+-------+

| Field        | Type        | Null | Key | Default | Extra |

+--------------+-------------+------+-----+---------+-------+

| 课程编号     | char(4)     | NO   | PRI | NULL    |       |

| 课程名称     | varchar(50) | YES  |     | NULL    |       |

| 学分         | int         | YES  |     | NULL    |       |

+--------------+-------------+------+-----+---------+-------+

3 rows in set (0.01 sec)



mysql> desc grade;

+--------------+---------+------+-----+---------+-------+

| Field        | Type    | Null | Key | Default | Extra |

+--------------+---------+------+-----+---------+-------+

| 学号         | char(4) | NO   | PRI | NULL    |       |

| 课程编号     | char(4) | NO   | PRI | NULL    |       |

| 分数         | int     | YES  |     | NULL    |       |

+--------------+---------+------+-----+---------+-------+

3 rows in set (0.00 sec)



mysql> desc student;

+--------------+-------------+------+-----+---------+-------+

| Field        | Type        | Null | Key | Default | Extra |

+--------------+-------------+------+-----+---------+-------+

| 学号         | char(4)     | NO   | PRI | NULL    |       |

| 姓名         | char(8)     | NO   |     | NULL    |       |

| 性别         | char(2)     | YES  |     | NULL    |       |

| 年龄         | int         | YES  |     | NULL    |       |

| 家庭住址     | varchar(50) | YES  |     | NULL    |       |

+--------------+-------------+------+-----+---------+-------+

5 rows in set (0.01 sec)

内容四:使用 SQL 语句 INSERT studb 数据库中的数据表 studentcoursegrade 插入数据。

SQL 语句为: 

NSERT INTO student VALUES('0001','张三','男',20,'东风路 11 号');

INSERT INTO student VALUES('0002','李四','男',20,'八一路 33 号');

INSERT INTO student VALUES('0003','王美','女',19,'解放路 76 号');

INSERT INTO student VALUES('0004','刘东','男',19,'太白路 27 号');

INSERT INTO student VALUES('0005','孙涛','男',20,'解放路 27 号');

INSERT INTO student VALUES('0006','沈蒙','男',18,'雁塔路 13 号');

INSERT INTO student VALUES('0007','田玲','女',19,'科技路 18 号');



mysql> select * from student;

+--------+--------+--------+--------+------------------+

| 学号   | 姓名   | 性别   | 年龄   | 家庭住址         |

+--------+--------+--------+--------+------------------+

| 0001   | 张三   | 男     |     20 | 东风路 11 号     |

| 0002   | 李四   | 男     |     20 | 八一路 33 号     |

| 0003   | 王美   | 女     |     19 | 解放路 76 号     |

| 0004   | 刘东   | 男     |     19 | 太白路 27 号     |

| 0005   | 孙涛   | 男     |     20 | 解放路 27 号     |

| 0006   | 沈蒙   | 男     |     18 | 雁塔路 13 号     |

| 0007   | 田玲   | 女     |     19 | 科技路 18 号     |

+--------+--------+--------+--------+------------------+

7 rows in set (0.00 sec)



INSERT INTO course VALUES('0001','程序设计方法学',2);

INSERT INTO course VALUES('0002','C 语言程序设计',2);

INSERT INTO course VALUES('0003','数据库原理及应用',2);

INSERT INTO course VALUES('0004','大学英语',4);

INSERT INTO course VALUES('0005','高等数学',4);

INSERT INTO course VALUES('0006','操作系统',2);

INSERT INTO course VALUES('0007','数据结构',3);

INSERT INTO course VALUES('0008','软件工程',3);



mysql> select * from course;

+--------------+--------------------------+--------+

| 课程编号     | 课程名称                 | 学分   |

+--------------+--------------------------+--------+

| 0001         | 程序设计方法学           |      2 |

| 0002         | C 语言程序设计           |      2 |

| 0003         | 数据库原理及应用         |      2 |

| 0004         | 大学英语                 |      4 |

| 0005         | 高等数学                 |      4 |

| 0006         | 操作系统                 |      2 |

| 0007         | 数据结构                 |      3 |

| 0008         | 软件工程                 |      3 |

+--------------+--------------------------+--------+

8 rows in set (0.00 sec)



INSERT INTO grade VALUES('0001','0001',80);

INSERT INTO grade VALUES('0001','0002',91);

INSERT INTO grade VALUES('0001','0003',88);

INSERT INTO grade VALUES('0001','0004',85);

INSERT INTO grade VALUES('0001','0005',77);

INSERT INTO grade VALUES('0001','0006',73);

INSERT INTO grade VALUES('0001','0007',68);

INSERT INTO grade VALUES('0001','0008',80);

INSERT INTO grade VALUES('0002','0001',79);

INSERT INTO grade VALUES('0002','0002',73);

INSERT INTO grade VALUES('0002','0003',84);

INSERT INTO grade VALUES('0002','0004',92);

INSERT INTO grade VALUES('0002','0005',81);

INSERT INTO grade VALUES('0002','0006',82);

INSERT INTO grade VALUES('0002','0007',75);

INSERT INTO grade VALUES('0002','0008',85);



mysql> select * from grade;

+--------+--------------+--------+

| 学号   | 课程编号     | 分数   |

+--------+--------------+--------+

| 0001   | 0001         |     80 |

| 0001   | 0002         |     91 |

| 0001   | 0003         |     88 |

| 0001   | 0004         |     85 |

| 0001   | 0005         |     77 |

| 0001   | 0006         |     73 |

| 0001   | 0007         |     68 |

| 0001   | 0008         |     80 |

| 0002   | 0001         |     79 |

| 0002   | 0002         |     73 |

| 0002   | 0003         |     84 |

| 0002   | 0004         |     92 |

| 0002   | 0005         |     81 |

| 0002   | 0006         |     82 |

| 0002   | 0007         |     75 |

| 0002   | 0008         |     85 |

+--------+--------------+--------+

16 rows in set (0.00 sec)

内容五:为 student 表添加一个名为“备注”的数据列,其数据类型为 varchar(50)

mysql> desc student;







+--------------+-------------+------+-----+---------+-------+

| Field        | Type        | Null | Key | Default | Extra |

+--------------+-------------+------+-----+---------+-------+

| 学号         | char(4)     | NO   | PRI | NULL    |       |

| 姓名         | char(8)     | NO   |     | NULL    |       |

| 性别         | char(2)     | YES  |     | NULL    |       |

| 年龄         | int         | YES  |     | NULL    |       |

| 家庭住址     | varchar(50) | YES  |     | NULL    |       |

+--------------+-------------+------+-----+---------+-------+

5 rows in set (0.00 sec)



mysql> ALTER TABLE student ADD 备注 varchar(50);

Query OK, 0 rows affected (0.02 sec)

Records: 0  Duplicates: 0  Warnings: 0



mysql> desc student;

+--------------+-------------+------+-----+---------+-------+

| Field        | Type        | Null | Key | Default | Extra |

+--------------+-------------+------+-----+---------+-------+

| 学号         | char(4)     | NO   | PRI | NULL    |       |

| 姓名         | char(8)     | NO   |     | NULL    |       |

| 性别         | char(2)     | YES  |     | NULL    |       |

| 年龄         | int         | YES  |     | NULL    |       |

| 家庭住址     | varchar(50) | YES  |     | NULL    |       |

| 备注         | varchar(50) | YES  |     | NULL    |       |

+--------------+-------------+------+-----+---------+-------+

6 rows in set (0.00 sec)

内容六:使用 SQL 语句创建新的数据库 studb2,并在此数据库下创建表 student2,此表结构与数据库 studb student 表相同。

mysql> CREATE DATABASE studb2;

Query OK, 1 row affected (0.01 sec)



mysql> USE studb2;

Database changed

mysql> CREATE TABLE student2 as SELECT * FROM studb.student

    -> WHERE 1=2;

Query OK, 0 rows affected (0.02 sec)

Records: 0  Duplicates: 0  Warnings: 0



mysql> INSERT INTO student2 SELECT * FROM studb.student;

Query OK, 7 rows affected (0.00 sec)

Records: 7  Duplicates: 0  Warnings: 0



mysql> desc student2;

+--------------+-------------+------+-----+---------+-------+

| Field        | Type        | Null | Key | Default | Extra |

+--------------+-------------+------+-----+---------+-------+

| 学号         | char(4)     | NO   |     | NULL    |       |

| 姓名         | char(8)     | NO   |     | NULL    |       |

| 性别         | char(2)     | YES  |     | NULL    |       |

| 年龄         | int         | YES  |     | NULL    |       |

| 家庭住址     | varchar(50) | YES  |     | NULL    |       |

| 备注         | varchar(50) | YES  |     | NULL    |       |

+--------------+-------------+------+-----+---------+-------+

6 rows in set (0.00 sec)



mysql> select * from student2;

+--------+--------+--------+--------+------------------+--------+

| 学号   | 姓名   | 性别   | 年龄   | 家庭住址         | 备注   |

+--------+--------+--------+--------+------------------+--------+

| 0001   | 张三   | 男     |     20 | 东风路 11 号     | NULL   |

| 0002   | 李四   | 男     |     20 | 八一路 33 号     | NULL   |

| 0003   | 王美   | 女     |     19 | 解放路 76 号     | NULL   |

| 0004   | 刘东   | 男     |     19 | 太白路 27 号     | NULL   |

| 0005   | 孙涛   | 男     |     20 | 解放路 27 号     | NULL   |

| 0006   | 沈蒙   | 男     |     18 | 雁塔路 13 号     | NULL   |

| 0007   | 田玲   | 女     |     19 | 科技路 18 号     | NULL   |

+--------+--------+--------+--------+------------------+--------+

7 rows in set (0.00 sec)

内容七:使用 SQL 语句删除 student2 表中学号为 0004 的记录。

mysql> DELETE FROM student2 where 学号 = '0004';

Query OK, 1 row affected (0.00 sec)



mysql> select * from student2;

+--------+--------+--------+--------+------------------+--------+

| 学号   | 姓名   | 性别   | 年龄   | 家庭住址         | 备注   |

+--------+--------+--------+--------+------------------+--------+

| 0001   | 张三   | 男     |     20 | 东风路 11 号     | NULL   |

| 0002   | 李四   | 男     |     20 | 八一路 33 号     | NULL   |

| 0003   | 王美   | 女     |     19 | 解放路 76 号     | NULL   |

| 0005   | 孙涛   | 男     |     20 | 解放路 27 号     | NULL   |

| 0006   | 沈蒙   | 男     |     18 | 雁塔路 13 号     | NULL   |

| 0007   | 田玲   | 女     |     19 | 科技路 18 号     | NULL   |

+--------+--------+--------+--------+------------------+--------+

6 rows in set (0.00 sec)

内容八:使用 SQL 语句更新 student2 表中学号为 0002 的家庭住址为“建设路 96 号”。

mysql> update student2 set 家庭住址 = '建设路 96 号'where 学号 =0002;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0



mysql> select * from student2;

+--------+--------+--------+--------+------------------+--------+

| 学号   | 姓名   | 性别   | 年龄   | 家庭住址         | 备注   |

+--------+--------+--------+--------+------------------+--------+

| 0001   | 张三   | 男     |     20 | 东风路 11 号     | NULL   |

| 0002   | 李四   | 男     |     20 | 建设路 96 号     | NULL   |

| 0003   | 王美   | 女     |     19 | 解放路 76 号     | NULL   |

| 0005   | 孙涛   | 男     |     20 | 解放路 27 号     | NULL   |

| 0006   | 沈蒙   | 男     |     18 | 雁塔路 13 号     | NULL   |

| 0007   | 田玲   | 女     |     19 | 科技路 18 号     | NULL   |

+--------+--------+--------+--------+------------------+--------+

6 rows in set (0.00 sec)

内容九:删除 student2 表。

mysql> Drop table student2;

Query OK, 0 rows affected (0.01 sec)

内容十:删除数据库 studb2

mysql> Drop database studb2;

Query OK, 0 rows affected (0.01 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

16ity.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值