(1) 创建student表 字段名 代码 类型 约束 学号 s_no char(8) 主键 姓名 sname char(8) 非空 性别 sex char(2) 出生日期 sbirthday Smalldatetime 学生所在院系编号 dno char(6) 外键 专业代码 spno char(8) 外键 班级编码 class_no char(4)
时间: 2023-02-10 17:28:44 浏览: 186
建立student表的语句如下:
```
CREATE TABLE student (
s_no char(8) PRIMARY KEY,
sname char(8) NOT NULL,
sex char(2),
sbirthday Smalldatetime,
dno char(6) FOREIGN KEY,
spno char(8) FOREIGN KEY,
class_no char(4)
);
```
注意:
- 使用NOT NULL约束表示字段sname不能为空。
- 使用FOREIGN KEY约束表示dno和spno字段是外键,必须指向其他表中已存在的主键。
相关问题
按附件(数据字典)说明在你创建的数据库下创建四个表格: t_student(学生表)、t_course(课程表)、t_scores(选课成绩表)、t_class(班级表)。学生信息表( t_student) 字段名 名称 数据类型 空 备注 SNo 学号 Char(20) N 主键 Sname 姓名 varchar(50) N Sex 性别 Char(2) Y class_name 班级名 Char(2) Y 2.课程表 课程表( t_course) 字段名 名称 数据类型 空 备注 CNo 课程编号 Char(10) N 主键 Cname 课程名称 varchar(50) N Credit 学分 Int Y 3.选课表 选课成绩表(scores) 字段名 名称 数据类型 空 备注 SNo 学号 Char(20) N 主键 CNo 课程号 Char(10) N 主键 grade 成绩 Int Y 4.班级表 班级表(t_class) 字段名 名称 数据类型 空 备注 class_name 部门编号 Char(2) N 主键 department 部门名称 varChar(50) N teacher 教师 varChar(20) classroom 教室 varChar(30)
根据数据字典,可以使用以下 SQL 语句在创建的数据库中创建四个表:
```sql
-- 创建学生表
CREATE TABLE t_student (
SNo CHAR(20) NOT NULL PRIMARY KEY COMMENT '学号',
Sname VARCHAR(50) NOT NULL COMMENT '姓名',
Sex CHAR(2) COMMENT '性别',
class_name CHAR(2) COMMENT '班级名',
FOREIGN KEY (class_name) REFERENCES t_class(class_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 创建课程表
CREATE TABLE t_course (
CNo CHAR(10) NOT NULL PRIMARY KEY COMMENT '课程编号',
Cname VARCHAR(50) NOT NULL COMMENT '课程名称',
Credit INT COMMENT '学分'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 创建选课成绩表
CREATE TABLE t_scores (
SNo CHAR(20) NOT NULL COMMENT '学号',
CNo CHAR(10) NOT NULL COMMENT '课程号',
grade INT COMMENT '成绩',
PRIMARY KEY (SNo, CNo),
FOREIGN KEY (SNo) REFERENCES t_student(SNo),
FOREIGN KEY (CNo) REFERENCES t_course(CNo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 创建班级表
CREATE TABLE t_class (
class_name CHAR(2) NOT NULL PRIMARY KEY COMMENT '部门编号',
department VARCHAR(50) NOT NULL COMMENT '部门名称',
teacher VARCHAR(20) COMMENT '教师',
classroom VARCHAR(30) COMMENT '教室'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
```
说明:
1. 表名和列名都采用了英文名称,符合要求。
2. 每个表都设置了主键,符合要求。
3. 学生表中的 sex 字段和选课成绩表中的 grade 字段都设置了数据类型,符合要求。
4. 学生表的 class_name 字段和选课成绩表的 SNo 和 CNo 字段都设置了外键约束,参照了班级表的 class_name 字段和课程表的 CNo 字段,符合要求。
5. 课程表添加了 Credit 字段,符合要求。
6. 班级表中的 teacher 和 classroom 字段都没有设置为 NOT NULL,因为数据字典中没有要求,但是仍然按照规范进行了定义。
创建表 表必须创建到第一题以你姓名命名的数据库中,否则无效。 建表,并完成约束设置(可以在建表的同时完成约束,也可以用SSMS工具法设置约束)。 正确完成表的创建,包括数据类型和属性名可得6分,正确完成相应的约束得5分。 表1:student 属性名 数据类型 说明 相关约束 sno char(12) 学号 主键 sname char(8) 学生姓名 ssex char(2) 学生性别 默认值为“男” 其中,sno为主键,ssex的默认值为“男”。
以下是建表语句:
```
CREATE TABLE [dbo].[yourname_student](
[sno] [char](12) NOT NULL,
[sname] [char](8) NULL,
[ssex] [char](2) NULL CONSTRAINT [DF_yourname_student_ssex] DEFAULT ('男'),
CONSTRAINT [PK_yourname_student] PRIMARY KEY CLUSTERED
(
[sno] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
```
其中,[yourname]需要替换为你的姓名拼音或英文名,例如“zhangsan_student”。
主键约束使用了“PRIMARY KEY CLUSTERED”,默认为“NOT NULL”,所以无需再设置。
默认值约束使用了“DEFAULT”,可以在创建字段时设置。
表的创建和约束设置完成后,可以在SSMS的对象资源管理器中查看和管理。
阅读全文