1.数据库和数据表的创建和管理(25分) (1)创建一个名为“SchoolDB”数据库,字符集使用utf8,排序规则使用utf8_general_ci。(5分) (2)根据图11-2,在“SchoolDB”数据库中创建四个数据表对象,名称分别为:学生信息表、课程信息表、教师信息表、学生选课表。(20分) 2.数据完整性约束的设置(10分) 根据图11-3物理数据模型,创建上述四个数据表之间的主键和外键约束;
时间: 2024-01-15 22:03:28 浏览: 74
1. 创建名为"SchoolDB"的数据库,并指定字符集为utf8,排序规则为utf8_general_ci
```sql
CREATE DATABASE SchoolDB CHARACTER SET utf8 COLLATE utf8_general_ci;
```
2. 创建学生信息表、课程信息表、教师信息表和学生选课表
- 学生信息表
```sql
CREATE TABLE `SchoolDB`.`student` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`gender` ENUM('male','female') NOT NULL,
`birthday` DATE NOT NULL,
`class` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
);
```
- 课程信息表
```sql
CREATE TABLE `SchoolDB`.`course` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`teacher_id` INT NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `fk_course_teacher`
FOREIGN KEY (`teacher_id`)
REFERENCES `teacher` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
```
- 教师信息表
```sql
CREATE TABLE `SchoolDB`.`teacher` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`gender` ENUM('male','female') NOT NULL,
`birthday` DATE NOT NULL,
`title` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
);
```
- 学生选课表
```sql
CREATE TABLE `SchoolDB`.`choose_course` (
`id` INT NOT NULL AUTO_INCREMENT,
`student_id` INT NOT NULL,
`course_id` INT NOT NULL,
`score` FLOAT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `fk_choose_course_student`
FOREIGN KEY (`student_id`)
REFERENCES `student` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_choose_course_course`
FOREIGN KEY (`course_id`)
REFERENCES `course` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
```
3. 数据完整性约束的设置
- 学生信息表的主键约束已经在创建表时添加,无需再次添加。
- 课程信息表的主键约束已经在创建表时添加,无需再次添加。
- 教师信息表的主键约束已经在创建表时添加,无需再次添加。
- 学生选课表的主键约束已经在创建表时添加,无需再次添加。
- 学生信息表和学生选课表的外键约束
```sql
ALTER TABLE `SchoolDB`.`choose_course`
ADD CONSTRAINT `fk_choose_course_student`
FOREIGN KEY (`student_id`)
REFERENCES `student` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
```
- 课程信息表和学生选课表的外键约束
```sql
ALTER TABLE `SchoolDB`.`choose_course`
ADD CONSTRAINT `fk_choose_course_course`
FOREIGN KEY (`course_id`)
REFERENCES `course` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
```
注意:以上 SQL 语句仅供参考,根据具体情况需要根据需要进行修改。
阅读全文