数据库管理系统及其应用环境的创建使用

举报
小生凡一 发表于 2021/12/05 11:36:28 2021/12/05
【摘要】 数据库管理系统及其应用环境的创建使用 实验环境操作系统:windows10数据库:MySQL数据库可视化工具:Navicat 1. 实验内容创建数据库,创建并维护基本表的结构与数据1.设计一个应用场景,创建符合该应用需求的应用数据库。2. 在该数据库中创建至少 4 个相互关联的基本表,并设置主键、外键、自定义完整性约束(非空、唯一、默认值、check)。 1.1 创建学生表(S)学生表:包括...

数据库管理系统及其应用环境的创建使用

实验环境

操作系统:windows10

数据库:MySQL

数据库可视化工具:Navicat

1. 实验内容

创建数据库,创建并维护基本表的结构与数据

image.png

1.设计一个应用场景,创建符合该应用需求的应用数据库。
2. 在该数据库中创建至少 4 个相互关联的基本表,并设置主键、外键、自定义完整性约束(非空、唯一、默认值、check)。

1.1 创建学生表(S)

学生表:包括学号、姓名、性别、系别、生日、班级属性

其中学号为主键,姓名不为空,性别只能在’F’,  'M’中选择

CREATE TABLE S (
    Sno CHAR(9) PRIMARY KEY,
    Sname CHAR (10) NOT NULL,
    Ssex CHAR (2) CHECK (Ssex IN ('F','M')),
    Sdept CHAR (10),
    Birthday DATE,
    Class CHAR (4) );

image.png

1.2 创建教师表(T)

教师表:包括教师工号、姓名、职称属性

其中工号为主键,姓名不为空,职称只能在’professor’, ‘teacher’ 中选择

CREATE TABLE T (
     Tno CHAR(9) PRIMARY KEY
     Tname CHAR (10) NOT NULL,
     postition CHAR (10) CHECK (postition IN ('professor','teacher'))
    );

image.png

1.3 创建课程表(C)

课程表:包括课程号、讲课的教师工号、课程名属性

其中课程号为主键,教师工号为外键,课程名不为空

CREATE TABLE C (
      Cno CHAR(10) PRIMARY KEY,
      Tno CHAR(9),
      Cname CHAR(20) NOT NULL,
      FOREIGN KEY(Tno) REFERENCES T(Tno)
     );

image.png

1.4 创建选修表(SC)

选修表:包括选修学生的学号,选修课程的课程号,成绩属性

其中学号和课程号为主键,学号和课程号为外键,成绩在0-100之间

CREATE TABLE SC(
     Sno CHAR (9),
     Cno CHAR (9),
     Grade INT,
     PRIMARY KEY(Sno,Cno),
     FOREIGN KEY (Sno) REFERENCES S (Sno),
     FOREIGN KEY (Cno) REFERENCES C (Cno),
     CHECK (GRADE BETWEEN 0 AND 100)
);

image.png

打开navicat查看是否创建成功

image.png

2 验证约束

2.1 FRIMARY KEY主键约束

在学生表(S)中插入学生数据。

INSERT INTO s (Sno,Sname ,Ssex, Sdept, Birthday, Class)
VALUES ('1','Fan','F','CS','20211028','19');

然后再插入相同学号的信息,就会有主键不唯一的报错。

INSERT INTO s (Sno,Sname ,Ssex, Sdept, Birthday, Class)
VALUES ('1','One','M','MATH','20211028','19');

image.png

2.2 NOT NULL 约束

在学生表(S)中插入数据时不插入姓名信息

违反姓名不能为空的约束报错

INSERT INTO s(Sno ,Ssex, Sdept, Birthday, Class)
VALUES ('2', 'M','MATH','20211028','19');

2.3 CHECK 约束

在学生表(S)中插入数据将性别插入为不是’F’, 'M’两个中的任意一个时

违反性别在’F’, 'M’中选择约束报错。

INSERT INTO s(Sno,Sname ,Ssex, Sdept, Birthday, Class)
VALUES ('2','One','MM','MATH','20211028','19');

image.png

2.4 FOREIGN KEY 外键约束

在课程表©中插入数据时,教师表(T)中并没有’1’这个工号的教师,所以违反外键原则报错。

INSERT INTO c (Cno,Tno,Cname)
VALUES ('1','1','bigdata');

image.png

2.5 范围约束

在选修表中插入数据时

违反成绩在0-100之间的约束,所以报错

INSERT INTO sc(Sno, Cno, Grade)
VALUES ('1','1','1000');

image.png

2.6 默认约束验证

在选课表(SC)中添加默认约束,如果不输入成绩默认为0

3. 对表的结构进行修改操作。

3.1 添加默认约束

在选课表(SC)中添加默认约束,如果不输入成绩默认为0

ALTER TABLE sc ALTER COLUMN Grade
SET DEFAULT(0);
  • 添加约束

image.png

  • 约束语句

image.png

  • 结果

image.png

4 创建索引及删除索引

4.1 创建索引对象

``sql
CREATE INDEX CnameIndex on C(Cname)


![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7080170406a1417dbbbcc919b53fbfd8~tplv-k3u1fbpfcp-watermark.image?)

## 4.2 查看索引

```sql
SHOW INDEX FROM c

image.png

5. 向表中录入若干数据,对表中数据进行修改和删除操作

5.1 插入数据

image.png

image.png

插入后的数据库表的数据

image.png

image.png

5.3 修改数据

  • 修改前

image.png

  • 修改语句

image.png

  • 修改后

image.png

5.4 删除数据

  • 删除前

image.png

  • 删除语句

image.png

  • 删除后

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。