***********1. 创建选课表SC, 属性为Sno、Cno、Tno和Grade, 数据类型分别为char(5)、char(3)、char(5)和decimal(3,1)。 主码为(Sno,Cno,Tno),主码名为PK_SC*********** *********** End ***********. go ***********2. 创建Student的主码PK_Sno *********** *********** Begin *********** *********** End *********** go ***********3. 创建Course的主码PK_Cno *********** *********** Begin *********** *********** End *********** go ***********4. 创建Teacher的主码PK_Tno *********** *********** Begin *********** *********** End *********** go ***********5. 向Student中插入一个学生的完整信息('21005','测试君','男','2003-09-09','物联网工程',35) *********** Begin ***********求答案(数据库完整性控制的实体完整性)
时间: 2025-05-30 10:11:34 浏览: 23
### 实现实体完整性的SQL语句
为了实现头歌数据库实验中的实体完整性,可以通过 `CREATE TABLE` 语句来创建表并设置主键约束。以下是具体的 SQL 语句:
#### 创建学生表 (`Student`)
```sql
CREATE TABLE Student (
Sno CHAR(9) NOT NULL, -- 学号
Sname NVARCHAR(50) NOT NULL, -- 姓名
Sgender CHAR(2) NOT NULL, -- 性别
Sbirth DATE NOT NULL, -- 出生日期
Sdept NVARCHAR(100) NOT NULL, -- 所属院系
PRIMARY KEY (Sno) -- 设置主键
);
```
此部分定义了一个名为 `Student` 的表,并设置了 `Sno` 列为主键[^3]。
#### 创建课程表 (`Course`)
```sql
CREATE TABLE Course (
Cno CHAR(4) NOT NULL, -- 课程编号
Cname NVARCHAR(100) NOT NULL, -- 课程名称
Cpno CHAR(4), -- 先修课程编号
PRIMARY KEY (Cno) -- 设置主键
);
```
在此处定义了 `Course` 表,并指定 `Cno` 作为主键[^3]。
#### 创建教师表 (`Teacher`)
```sql
CREATE TABLE Teacher (
Tno CHAR(9) NOT NULL, -- 教师编号
Tname NVARCHAR(50) NOT NULL, -- 教师姓名
PRIMARY KEY (Tno) -- 设置主键
);
```
这里定义了 `Teacher` 表,并设定了 `Tno` 主键[^5]。
#### 创建选课表 (`SC`)
对于选课表 `SC`,由于其主键由两个字段共同构成,因此需要在表级定义主键:
```sql
CREATE TABLE SC (
Sno CHAR(9) NOT NULL, -- 学号
Cno CHAR(4) NOT NULL, -- 课程编号
Grade SMALLINT, -- 成绩
PRIMARY KEY (Sno, Cno) -- 复合主键
);
```
该语句实现了复合主键的定义,其中 `Sno` 和 `Cno` 被联合起来作为主键[^4]。
#### 向 `Student` 表插入一条记录
向已创建好的 `Student` 表中插入一条完整的记录可以按照以下方式完成:
```sql
INSERT INTO Student (Sno, Sname, Sgender, Sbirth, Sdept)
VALUES ('20210001', N'李华', N'男', '2000-01-01', N'计算机科学与技术');
```
以上语句展示了如何正确地将一条新纪录加入到 `Student` 表中,确保所有必填项都提供了相应的值[^3]。
### 注意事项
- 在实际应用过程中需确保所使用的数据类型适合存储的数据种类。
- 插入数据时要严格遵循每列的数据类型及其长度限制。
阅读全文
相关推荐


















