SQL查询:学生信息与课程管理

需积分: 0 0 下载量 91 浏览量 更新于2024-08-04 收藏 54KB DOCX 举报
"该资源是关于学生数据库的操作,包括对学生表和课程表的查询以及创建临时表的操作。学生表有sid(学号)、stuname(姓名)、birthday(生日)、sex(性别)和remark(备注)字段,课程表有cid(课程ID)、cname(课程名)和tid(教师ID)字段。提供了部分模拟数据,如刘备、关羽等学生的信息和Java程序设计、Oracle数据库管理等课程的信息。" 以下是对给定任务的详细解答: 1. **查询院系名称为空的学生的学号、姓名** 在这个学生数据库中,院系名称并没有作为字段包含在`student`表中,所以查询院系名称为空的结果将始终为空。如果院系信息存在其他表中并与`student`表有关联,我们需要使用JOIN操作来查询。但根据提供的表结构,无法完成此查询。 2. **查询名字中第2个字为“阳”字的学生姓名和学号** 要查询名字中第二个字为“阳”的学生,我们可以使用SQL的SUBSTR函数配合位置索引来实现。如下所示: ```sql SELECT sid, stuname FROM student WHERE SUBSTR(stuname, 2, 1) = '阳'; ``` 这条查询将返回所有姓名第二个字符是“阳”的学生的学号和姓名。 3. **创建course_tmp表,结构与course表相同,但不插入数据** 创建一个与`course`表结构相同的临时表`course_tmp`,可以使用如下SQL语句: ```sql CREATE TABLE course_tmp AS SELECT * FROM course WHERE 1=2; ``` 这条语句创建了一个名为`course_tmp`的新表,其结构与`course`表完全相同,但由于WHERE子句`1=2`总是假,所以没有数据被插入。 4. **对课程表进行操作** 由于没有具体的操作要求,这里提供一些可能的查询或操作示例: - 查询所有课程信息: ```sql SELECT * FROM course; ``` - 查找由教师"T001"教授的所有课程: ```sql SELECT * FROM course WHERE tid = 'T001'; ``` 以上是基于给定信息进行的数据库操作解析。在实际数据库设计中,通常会包括更多的字段和更复杂的关联,以便更好地管理和分析数据。在这个例子中,我们只处理了基本的查询和表创建,而没有涉及到复杂的数据库设计和优化。