"这份文档是关于关系数据库标准语言SQL的讲解,涵盖了数据库的建立操作、表的建立以及数据查询,特别是单表查询的多种方式,包括查询指定列、计算列、使用别名以及处理重复数据。此外,还介绍了查询条件的使用,如比较运算符、范围查询、集合查询、字符匹配和空值判断。文档通过实例展示了如何查询满足特定条件的元组,并提供了使用AND、OR和NOT进行逻辑组合的查询示例。"
在关系数据库管理中,SQL(Structured Query Language)是一种用于管理和处理数据库的标准语言。本章节主要讲解了如何使用SQL进行数据库的创建和表的创建,但重点在于数据查询的各个方面。首先,介绍了单表查询的基本概念,包括查询所有列或部分列,例如,`SELECT * FROM student`用于获取学生表中的所有信息,而`SELECT sno, sname FROM student`则仅选择学号和姓名。
在查询中,可以进行计算列的操作,比如查询学生出生年份,可以通过`SELECT sname, 2008 - sage AS birthday FROM student`来实现。同时,可以使用别名重命名字段,如`SELECT sname, 2008 - sage AS birthday FROM student`,或者进一步明确别名,如`SELECT sname, 'birth', 2008 - sage AS birthday FROM student`。
为了去除重复的数据,可以使用`DISTINCT`子句,如`SELECT DISTINCT sdept FROM student`。在查询条件方面,文档列举了各种比较运算符,如`=`, `>`, `<`, `>=`, `<=`, `!=`, `<>`, `!>`, `!<`, `NOT+`,以及范围查询`BETWEEN AND`,集合查询`IN`和`NOT IN`,字符匹配`LIKE`和`NOT LIKE`,以及空值判断`IS NULL`和`IS NOT NULL`。
例如,`SELECT * FROM student WHERE ssex = '男'`用于查询所有男生的信息,`SELECT sname FROM student WHERE sdept = 'IS'`则可找出信息系的所有学生姓名。对于范围查询,`SELECT sname, sdept, sage FROM student WHERE sage BETWEEN 20 AND 23`将返回年龄在20至23岁之间的学生信息。集合查询如`SELECT sname, ssex FROM student WHERE sdept IN ('IS', 'MA')`则能找出信息专业和数学专业学生的姓名和性别。
此外,文档还提到了如何结合使用这些条件,如`AND`, `OR`, 和 `NOT`来进行复杂的逻辑查询,以满足不同需求。例如,`SELECT sno FROM sc WHERE grade < 60`会找出所有考试成绩不及格的学生学号。这些基本操作构成了SQL查询的基础,对于理解和操作数据库至关重要。