一、1.能通过一个CREATE DATABASE语句创建两个及两个以上的数据库吗?
2.删除了的数据库还有可能恢复吗?
3.对于studentsdb数据库中的student_info表而言,如果输人相同学号的记录将出现什么现象?为什么?
4.已经打开的表能删除吗?
二、1.查询没有选修课程的所有学生的学号、姓名。
2.查询选修课程的人数。
3.查询选课人数大于等于3人的课程编号、课程名称、人数。
4.在查询的FROM子句中实现表与表之间的连接有哪几种方式?对应的关键字分别是什么?
一、
可以通过一个CREATE DATABASE语句创建两个及两个以上的数据库,只需要在语句中分别指定数据库名称即可。
删除了的数据库通常无法恢复,除非有备份文件或者使用专业的数据恢复工具。
在studentsdb数据库中的student_info表中,如果输入相同学号的记录,将会出现主键冲突的现象,因为学号字段通常被设置为该表的主键,不允许有重复值。
已经打开的表不能被删除,需要先关闭该表才能进行删除操作。
二、
查询没有选修课程的所有学生的学号、姓名:
SELECT student_id, student_name
FROM student
WHERE student_id NOT IN (SELECT student_id FROM course_selection)
查询选修课程的人数:
SELECT COUNT(DISTINCT student_id) AS num_of_students
FROM course_selection
查询选课人数大于等于3人的课程编号、课程名称、人数:
SELECT course.course_id, course.course_name, COUNT(DISTINCT course_selection.student_id) AS num_of_students
FROM course
JOIN course_selection
ON course.course_id = course_selection.course_id
GROUP BY course.course_id, course.course_name
HAVING COUNT(DISTINCT course_selection.student_id) >= 3
在查询的FROM子句中实现表与表之间的连接有三种方式:
INNER JOIN:只返回两个表中匹配的行;
LEFT JOIN:返回左表中的所有行以及右表中匹配的行;
RIGHT JOIN:返回右表中的所有行以及左表中匹配的行。