USE JX go SET NOCOUNT ON go --**********1、创建选课表SC,属性为Sno、Cno、Tno和Grade,数据类型分别为char(5)、char(3)、char(5)和decimal(3,1),主码为(Sno,Cno,Tno),主码名为PK_SCT*************************-- --********** Begin **********-- --********** 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 **********-- --********** End **********-- go --**********6、向Student中插入一个学生的Sname和Sdept信息,内容分别为'测试君'和'软件工程' **********-- --********** Begin **********-- --********** End **********-- ---------------为确保通关,以下内容请不要删除----------------- go SELECT A.NAME AS 表名,B.NAME AS 主码名 FROM SYSOBJECTS A,SYSOBJECTS B WHERE A.ID=B.PARENT_OBJ AND A.XTYPE='U' AND B.XTYPE='PK' order by A.NAME go 补全代码
时间: 2025-05-31 16:50:16 浏览: 19
### 创建数据库表并插入学生数据
以下是完整的 SQL 脚本,用于创建 `student`、`course`、`sc` 和 `teacher` 表,并为其设置主键约束。同时,还提供了向 `student` 表中插入数据的示例。
#### 1. 创建学生表 (`student`)
```sql
CREATE TABLE student (
sno INT,
sname VARCHAR2(50) NOT NULL,
sage INT CHECK (sage >= 0),
ssex CHAR(1) DEFAULT 'M' CHECK (ssex IN ('M', 'F')),
CONSTRAINT student_pk PRIMARY KEY (sno)
);
```
此部分定义了一个名为 `student` 的表,其中包含学生的学号 (`sno`)、姓名 (`sname`)、年龄 (`sage`) 和性别 (`ssex`) 字段[^1]。通过 `CONSTRAINT student_pk PRIMARY KEY (sno)` 设置了主键为 `sno`。
---
#### 2. 插入学生数据
以下是一些样例数据的插入语句:
```sql
INSERT INTO student (sno, sname, sage, ssex) VALUES (1, '张三', 20, 'M');
INSERT INTO student (sno, sname, sage, ssex) VALUES (2, '李四', 22, 'F');
INSERT INTO student (sno, sname, sage, ssex) VALUES (3, '王五', 21, 'M');
INSERT INTO student (sno, sname, sage, ssex) VALUES (4, '赵六', 19, 'F');
```
这些语句将一些虚拟的学生记录插入到 `student` 表中[^5]。
---
#### 3. 创建课程表 (`course`)
```sql
CREATE TABLE course (
cno INT,
cname VARCHAR2(100) NOT NULL,
tno INT,
CONSTRAINT course_pk PRIMARY KEY (cno),
CONSTRAINT course_fk FOREIGN KEY (tno) REFERENCES teacher(tno)
);
```
在此部分中,定义了一个名为 `course` 的表,其中包括课程编号 (`cno`)、课程名称 (`cname`) 和授课教师编号 (`tno`) 字段。设置了主键为 `cno`,并通过外键关联至 `teacher` 表中的 `tno` 字段。
---
#### 4. 创建选课表 (`sc`)
```sql
CREATE TABLE sc (
sno INT,
cno INT,
score FLOAT CHECK (score BETWEEN 0 AND 100),
CONSTRAINT sc_pk PRIMARY KEY (sno, cno),
CONSTRAINT sc_fk_student FOREIGN KEY (sno) REFERENCES student(sno),
CONSTRAINT sc_fk_course FOREIGN KEY (cno) REFERENCES course(cno)
);
```
这里定义了一个名为 `sc` 的表,表示学生选课及其成绩情况。字段包括学号 (`sno`)、课程编号 (`cno`) 和成绩 (`score`)。主键由 `(sno, cno)` 组成,同时还分别建立了与 `student` 和 `course` 表的外键关系。
---
#### 5. 创建教师表 (`teacher`)
```sql
CREATE TABLE teacher (
tno INT,
tname VARCHAR2(50) NOT NULL,
CONSTRAINT teacher_pk PRIMARY KEY (tno)
);
```
这部分定义了一个简单的 `teacher` 表,仅包含教师编号 (`tno`) 和教师姓名 (`tname`) 字段[^3]。同样为主键设定了唯一性约束。
---
### 总结
以上脚本涵盖了四个主要表格的设计以及对学生数据的具体插入操作。每一步都严格遵循了引用材料中的设计原则和需求说明[^3][^5]。
阅读全文
相关推荐

















