创建choose表, choose包含:choose_no int 自增字段主键; student_no char(11) 学生学号不允许为空;course_no int 课程号不允许为空;score tinyint unsigned,choose_time 选课时间可由now()函数自动生成;外键约束为学生号和课程号;存储引擎为InnoDB,默认字符集为gbk。
时间: 2024-02-20 08:01:47 浏览: 69
好的,我已经理解了您的要求,以下是创建choose表的SQL语句:
```
CREATE TABLE choose (
choose_no INT AUTO_INCREMENT PRIMARY KEY,
student_no CHAR(11) NOT NULL,
course_no INT NOT NULL,
score TINYINT UNSIGNED,
choose_time TIMESTAMP DEFAULT NOW(),
CONSTRAINT fk_student FOREIGN KEY (student_no) REFERENCES student(student_no),
CONSTRAINT fk_course FOREIGN KEY (course_no) REFERENCES course(course_no)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
```
请注意,上述SQL语句中的 `student` 表和 `course` 表应该已经存在,并且它们分别包含 `student_no` 和 `course_no` 字段。此外,您还需要根据实际需要修改外键约束的名称。
相关问题
MySQL实现建表 ⑤ choose包含:choose_no int 自增字段主键; student_no char(11) 学生学号不允许为空;course_no int 课程号不允许为空;score tinyint unsigned,choose_time 选课时间可由now()函数自动生成;外键约束为学生号和课程号;存储引擎为InnoDB,默认字符集为gbk。
好的,以下是 MySQL 建立 choose 表的 SQL 语句:
```sql
CREATE TABLE choose (
choose_no INT AUTO_INCREMENT PRIMARY KEY,
student_no CHAR(11) NOT NULL,
course_no INT NOT NULL,
score TINYINT UNSIGNED,
choose_time DATETIME DEFAULT NOW(),
FOREIGN KEY (student_no) REFERENCES student(student_no),
FOREIGN KEY (course_no) REFERENCES course(course_no)
) ENGINE = InnoDB DEFAULT CHARSET = gbk;
```
注意,上述代码中的 `student` 表和 `course` 表是外键约束所依赖的两个表,需要提前建立好,并且外键字段和依赖表的主键字段要匹配。另外,`choose_time` 字段使用了 `NOW()` 函数来自动生成当前时间。
create view available_course_view -> as -> select course.course_no,course_name,teacher_name, -> up_limit,count(*) as student_num,up_limit-count(*) available -> from choose join course on choose.course_no=course.course_no -> join teacher on teacher.teacher_no=course.teacher_no -> group by course_no -> union all -> select course.course_no,course_name,teacher_name,up_limit,0,up_limit -> from course join teacher on teacher.teacher_no=course.teacher_no -> where not exists( -> select * from choose where course.course_no=choose.course_no -> );
这是一个 SQL 查询语句,用于创建一个名为 available_course_view 的视图,该视图用于显示可选课程的相关信息。该视图包括课程编号、课程名称、教师姓名、人数上限、已选人数以及可选人数等信息。具体实现方式是通过将选课表 choose 和课程表 course 进行联接查询,再将结果与教师表 teacher 进行联接,最后使用 group by 子句进行分组,计算出每个课程的已选人数以及可选人数。同时,使用 union all 运算符将未被选择的课程也加入到视图中。
阅读全文