1. 写出用Create Table创建表student1、course1、sc1 ,并按下列要求设置完整性约束。要求: (1)Student1表 属性:Sno(学号) Sname(姓名) Ssex(性别) Sage (年龄) Sdept(系部) student 的约束: 主码:sno Sname不可为空,且唯一 性别 不能为空且取值范围为{男,女} 年龄大于16岁 (2) Course1表 属性:Cno(课程号) Cname(课程名) Cpno(先修课号) Ccredit(学分) course 的约束: 主码:cno Ccredit 取值范围[ 1-6 ] Course表的外码Cpno ,参照表Course1的Cno (3) SC1表 属性:Sno(学号) Cno(课程号) Grade(成绩) SC1 的约束: 主码:(sno,cno) ,主码名为 PK_SC 成绩(grade)只能在 0 – 100分之间 Sc1的外码: 外码:SC1 表的sno 参照表 student1 的 sno 外码:SC1 表的Cno 参照表 course1 的 cno
时间: 2023-06-27 20:06:32 浏览: 188
创建表student1:
```sql
CREATE TABLE student1 (
Sno VARCHAR(10) PRIMARY KEY,
Sname VARCHAR(20) UNIQUE NOT NULL,
Ssex VARCHAR(2) NOT NULL CHECK (Ssex IN ('男', '女')),
Sage INT NOT NULL CHECK (Sage > 16),
Sdept VARCHAR(20)
);
```
创建表course1:
```sql
CREATE TABLE course1 (
Cno VARCHAR(10) PRIMARY KEY,
Cname VARCHAR(20),
Cpno VARCHAR(10) REFERENCES course1(Cno),
Ccredit INT CHECK (Ccredit >= 1 AND Ccredit <= 6)
);
```
创建表sc1:
```sql
CREATE TABLE sc1 (
Sno VARCHAR(10) REFERENCES student1(Sno),
Cno VARCHAR(10) REFERENCES course1(Cno),
Grade INT CHECK (Grade >= 0 AND Grade <= 100),
PRIMARY KEY (Sno, Cno) CONSTRAINT PK_SC
);
```
相关问题
1. 写出用Create Table创建表student1、course1、sc1 ,并按下列要求设置完整性约束。要求: (1)Student1表 属性:Sno(学号) Sname(姓名) Ssex(性别) Sage (年龄) Sdept(系部) student 的约束: 主码:sno Sname不可为空,且唯一 性别 不能为空且取值范围为{男,女} check (ssex in (‘男’,‘女’)) 年龄大于16岁 check
以下是用Create Table创建表student1并设置完整性约束的SQL语句:
```sql
CREATE TABLE student1 (
Sno CHAR(10) PRIMARY KEY,
Sname VARCHAR(20) UNIQUE NOT NULL,
Ssex CHAR(2) NOT NULL CHECK (Ssex IN ('男', '女')),
Sage INT CHECK (Sage > 16),
Sdept VARCHAR(20) NOT NULL
);
```
其中,Sno为CHAR类型,长度为10,作为主键;Sname为VARCHAR类型,长度为20,不可为空,且唯一;Ssex为CHAR类型,长度为2,不可为空,且取值范围为{男,女};Sage为INT类型,不可为空,且必须大于16;Sdept为VARCHAR类型,长度为20,不可为空。
同样的方式,可以创建course1和sc1表,并设置相应的约束。
1. 使用Create Table 命令建立带有完整性约束的三个表:student1、course1、sc1,并通过数据更新对完整性规则进行验证。mysql实验总结
本次实验的目的是使用MySQL的Create Table命令建立带有完整性约束的三个表,验证完整性规则是否正确。下面是实验步骤及总结:
1. 创建数据库:首先打开MySQL命令行界面,并输入以下命令来创建一个名为test的数据库:
```
CREATE DATABASE test;
```
2. 使用test数据库:使用以下命令来使用test数据库:
```
USE test;
```
3. 创建Student1表:使用以下命令来创建Student1表,并设定主键、非空和唯一约束:
```
CREATE TABLE Student1(
SNO CHAR(10) PRIMARY KEY,
SNAME CHAR(20) NOT NULL,
SAGE INT NOT NULL,
SADDRESS CHAR(50),
UNIQUE(SNAME)
);
```
4. 创建Course1表:使用以下命令来创建Course1表,并设定主键和非空约束:
```
CREATE TABLE Course1(
CNO CHAR(10) PRIMARY KEY,
CNAME CHAR(20) NOT NULL,
CREDIT INT NOT NULL
);
```
5. 创建SC1表:使用以下命令来创建SC1表,并设定主键、外键和非空约束:
```
CREATE TABLE SC1(
SNO CHAR(10),
CNO CHAR(10),
GRADE INT NOT NULL,
PRIMARY KEY(SNO,CNO),
FOREIGN KEY(SNO) REFERENCES Student1(SNO),
FOREIGN KEY(CNO) REFERENCES Course1(CNO)
);
```
6. 验证完整性规则:接下来,我们可以插入一些数据来验证完整性规则是否正确。首先,插入一条SNO为"001"、SNAME为"张三"、SAGE为18、SADDRESS为"北京"的记录到Student1表中:
```
INSERT INTO Student1 VALUES('001','张三',18,'北京');
```
然后,插入一条CNO为"001"、CNAME为"语文"、CREDIT为3的记录到Course1表中:
```
INSERT INTO Course1 VALUES('001','语文',3);
```
最后,插入一条SNO为"001"、CNO为"001"、GRADE为80的记录到SC1表中:
```
INSERT INTO SC1 VALUES('001','001',80);
```
这样,我们就验证了完整性规则是否正确。如果插入数据时违反了完整性约束,MySQL会报错并拒绝插入数据。
总结:
本次实验使用MySQL的Create Table命令创建了带有完整性约束的三个表,并通过数据更新对完整性规则进行了验证。在实际的数据库应用中,完整性约束是非常重要的,它可以保证数据的正确性和完整性,避免数据的不一致和错误。因此,在设计数据库时,我们需要充分考虑完整性约束的设置。