SQL高级教程:同时选修1和2号课程的学生查询

需积分: 0 0 下载量 112 浏览量 更新于2024-08-23 收藏 224KB PPT 举报
"该资源主要涉及SQL语言,特别是关于如何查询同时选修特定课程的学生信息。此外,还涵盖了SQL的高级特性和基本操作,包括数据定义、查询、操纵和控制功能。" 在SQL中,查询同时选修了特定课程的学生是一项常见的任务。在这个例子中,查询的是同时选修了1号和2号课程的学生。查询语句通过嵌套子查询实现,首先从`sc`表中找出所有选修2号课程的学生(`sno`在子查询结果中),然后将这些学生号码(`sno`)作为条件去`sc`表中查找选修1号课程的学生。这样的查询方式可以有效筛选出同时选修两门课程的学生。 SQL语言是用于管理和处理关系数据库的标准语言,它主要包括以下部分: 1. **数据定义**:用于创建和修改数据库结构。如`CREATE`用于创建表、视图等,`DROP`用于删除,`ALTER`用于修改已有对象。例如,创建一个名为`student1`的复杂表,包含学生的ID(自增长)、学号、姓名、年龄、性别,以及学号格式检查的约束。 2. **数据查询**:`SELECT`语句是SQL中最常用的部分,用于从数据库中检索数据。在本例中,`SELECT sno FROM sc WHERE cno='1'` 和 `SELECT sno FROM sc WHERE cno='2'` 都是基本的查询操作。 3. **数据操纵**:涉及插入(`INSERT`)、删除(`DELETE`)和更新(`UPDATE`)数据。例如,`INSERT INTO student1 (sno, sname) VALUES ('0001', '张三')` 插入一条新的学生记录,而`DELETE FROM student1 WHERE sno='0001'` 则会删除指定学号的学生记录。 4. **数据控制**:用于设置用户对数据库的访问权限。`GRANT`用于赋予权限,`REVOKE`用于撤销权限。示例中展示了如何向用户授予创建数据库和表格的权限,以及如何撤销特定权限。 5. **建复杂表**:在创建表时,可以定义字段的数据类型、约束和默认值。如`sno`字段被定义为`primary key`,确保每个学号都是唯一的;`sage`字段用`check`约束限制年龄在16到60之间;`ssex`字段有预设默认值`'男'`,并且只能是'男'或'女'。 6. **修改/删除表**:`ALTER TABLE`语句允许我们添加、删除或修改表中的列,如`ALTER TABLE student1 ADD sdept INT` 添加新的列,`DROP TABLE student1` 删除整个表。 7. **数据控制**部分还涉及到了数据库级别的权限管理,例如在`master`数据库上,向用户授予或撤销创建数据库和表格的权限。 以上就是SQL语言的基本元素和在实际问题中应用的实例,通过理解和掌握这些知识点,可以有效地进行数据库操作和管理。