在mysql_test库中创建员工表tb_test,字段信息如下表所示。sno 编号 CHAR(5) 主键;sname 姓名 VARCHAR(20) 非空;ssex CHAR(1) 非空 男用1表示 女用2表示 其他用3表示;sbirthday 生日 DATE 非空;ssalary 工资 DOUBLE(10,2) 非空;scomm 奖金 DOUBLE(10,2) 可为空;smaj 领导 CHAR(5) 可为空
时间: 2024-03-19 14:46:27 浏览: 82
您可以使用以下MySQL语句在mysql_test库中创建员工表tb_test,包含sno、sname、ssex、sbirthday、ssalary、scomm和smaj这七个字段,其中sno是主键,sname、ssex、sbirthday和ssalary都是非空字段,ssex使用1、2、3表示男、女、其他,scomm和smaj可为空:
```
CREATE TABLE mysql_test.tb_test (
sno CHAR(5) PRIMARY KEY,
sname VARCHAR(20) NOT NULL,
ssex CHAR(1) NOT NULL CHECK (ssex IN ('1', '2', '3')),
sbirthday DATE NOT NULL,
ssalary DOUBLE(10,2) NOT NULL,
scomm DOUBLE(10,2),
smaj CHAR(5)
);
```
这将创建一个名为tb_test的表,包含sno、sname、ssex、sbirthday、ssalary、scomm和smaj这七个字段。其中,sno是主键,sname、ssex、sbirthday和ssalary都是非空字段,ssex使用1、2、3表示男、女、其他,scomm和smaj可为空。
相关问题
使用MySQL Workbench创建数据库mysql_test,然后在mysql_test中创建员工表tb_test,字段信息如下表所示。sno 编号 CHAR(5) 主键;sname 姓名 VARCHAR(20) 非空;ssex CHAR(1) 非空 男用1表示 女用2表示 其他用3表示;sbirthday 生日 DATE 非空;ssalary 工资 DOUBLE(10,2) 非空;scomm 奖金 DOUBLE(10,2) 可为空;smaj 领导 CHAR(5) 可为空
以下是使用MySQL Workbench创建数据库mysql_test和其中的员工表tb_test的步骤:
1. 打开MySQL Workbench,并连接到您的MySQL服务器。
2. 在Navigator窗格中,右键单击“SCHEMAS”,然后选择“Create Schema…”。
3. 在Create Schema对话框中,输入“mysql_test”作为新模式的名称,并单击“Apply”。
4. 在Navigator窗格中,展开“mysql_test”模式,右键单击“Tables”,然后选择“Create Table…”。
5. 在Create Table对话框中,输入“tb_test”作为新表的名称。
6. 在“Columns”选项卡中,单击“Add Column”按钮,添加五个列“sno”、“sname”、“ssex”、“sbirthday”、“ssalary”,并分别设置它们的数据类型和非空约束。对于“sno”列,选择CHAR(5)数据类型,勾选“PK”选项,表示它是主键;对于“sname”列,选择VARCHAR(20)数据类型,勾选“NN”选项,表示它不能为NULL;对于“ssex”列,选择CHAR(1)数据类型,勾选“NN”选项,表示它不能为NULL,同时添加一个CHECK约束以确保只能插入1、2或3作为有效值;对于“sbirthday”列,选择DATE数据类型,勾选“NN”选项,表示它不能为NULL;对于“ssalary”列,选择DOUBLE(10,2)数据类型,勾选“NN”选项,表示它不能为NULL。
7. 在“Columns”选项卡中,继续单击“Add Column”按钮,添加两个可空列“scomm”和“smaj”,并设置它们的数据类型。对于“scomm”列,选择DOUBLE(10,2)数据类型,不勾选“NN”选项,表示它可以为NULL;对于“smaj”列,选择CHAR(5)数据类型,不勾选“NN”选项,表示它可以为NULL。
8. 在“Indexes”选项卡中,单击“Add Index”按钮,添加一个索引“sname_index”,并选择“sname”列作为它的索引列。
9. 单击“Apply”按钮,然后单击“Finish”按钮,以创建tb_test表。
10. 在Navigator窗格中,展开“mysql_test”模式,右键单击“tb_test”表,然后选择“Select Rows - Limit 1000”来查看表的数据。
完成以上步骤后,您已成功使用MySQL Workbench创建了数据库mysql_test和其中的员工表tb_test。
按附件(数据字典)说明在你创建的数据库下创建四个表格: 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,因为数据字典中没有要求,但是仍然按照规范进行了定义。
阅读全文