1. 写出用Create Table创建表student1、course1、sc1 ,并按下列要求设置完整性约束。要求: (1)Student1表 属性:Sno(学号) Sname(姓名) Ssex(性别) Sage (年龄) Sdept(系部) student 的约束: 主码:sno Sname不可为空,且唯一 性别 不能为空且取值范围为{男,女} check (ssex in (‘男’,‘女’)) 年龄大于16岁 check
时间: 2024-03-12 09:44:57 浏览: 76
以下是用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命令创建了带有完整性约束的三个表,并通过数据更新对完整性规则进行了验证。在实际的数据库应用中,完整性约束是非常重要的,它可以保证数据的正确性和完整性,避免数据的不一致和错误。因此,在设计数据库时,我们需要充分考虑完整性约束的设置。
创建SC1表 属性:Sno(学号) Cno(课程号) Grade(成绩) SC1 的约束: 主码:(sno,cno) ,主码名为 PK_SC l成绩(grade)只能在 0 – 100分之间 SC1的外码: 外码:SC1 表的sno 参照表 student1 的 sno 外码:SC1 表的Cno 参照表 course1 的 cno
可以使用以下 SQL 语句创建 SC1 表:
```
CREATE TABLE SC1 (
Sno CHAR(10),
Cno CHAR(10),
Grade INT,
PRIMARY KEY (Sno, Cno),
CONSTRAINT PK_SC PRIMARY KEY (Sno, Cno),
CONSTRAINT CHK_Grade CHECK (Grade >= 0 AND Grade <= 100),
CONSTRAINT FK_Sno FOREIGN KEY (Sno) REFERENCES student1 (sno),
CONSTRAINT FK_Cno FOREIGN KEY (Cno) REFERENCES course1 (cno)
);
```
解释如下:
- `Sno CHAR(10)`:学号属性,使用 CHAR 类型,长度为 10。
- `Cno CHAR(10)`:课程号属性,使用 CHAR 类型,长度为 10。
- `Grade INT`:成绩属性,使用 INT 类型。
- `PRIMARY KEY (Sno, Cno)`:设置 Sno 和 Cno 为主键。
- `CONSTRAINT PK_SC PRIMARY KEY (Sno, Cno)`:设置主键名称为 PK_SC。
- `CONSTRAINT CHK_Grade CHECK (Grade >= 0 AND Grade <= 100)`:设置成绩的取值范围为 0 到 100。
- `CONSTRAINT FK_Sno FOREIGN KEY (Sno) REFERENCES student1 (sno)`:设置 Sno 为外键,参照表为 student1 的 sno 属性。
- `CONSTRAINT FK_Cno FOREIGN KEY (Cno) REFERENCES course1 (cno)`:设置 Cno 为外键,参照表为 course1 的 cno 属性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)