五. SQL 中的数据查询语句数据库中的数据很多时侯是为了查询,因此,数据查询是数据库的核心操作。而在SQL语言中,查询语言中有一条查询命令,即SELECT 语句。
1. 基本查询语句
【格式】
SELECT [ALL | DISTINCT] <字段列表> FROM <表>
【功能】无条件查询。
【说明】ALL: 表示显示全部查询记录,包括重复记录。
DISTINCT: 表示显示无重复结果的记录。
【例1】显示STUD(学生信息数据表)中的所有记录。
SELECT * FROM STUD
命令中的*表示输出显示所有的字段,数据来源是STUD 表,表中的内容以浏览方式显示。
【例2】显示STUD(学生信息数据表)中的所有的学号及与之对应的姓名,同时能去除重名。
SELECT DISTINCT 学号,姓名 FROM STUD
【例3】显示SC(课程成绩表)中的所有记录,并将成绩一项乘以0.7。
SELECT 学号,课程号,成绩*0.7 AS 成绩 FROM SC
2. 带条件(WHERE)的查询语句
【格式】
SELECT [ALL | DISTINCT] <字段列表>
FROM <表>
[WHERE <条件表达式> ]
【功能】从一个表中查询满足条件的数据。
【说明】<条件表达式>由一系列用AND 或 OR 连接的条件表达式组成,SQL支持的关系运算符如下:
=、<>、!=、#、==、>、>=、<、<=。
【例1】显示STUD 表中所有男生记录的学号,姓名和性别字段值。
SELECT 学号,姓名,性别 FROM STUD WHERE 性别="男"
【例2】显示STUD 表中出生日期在85-86 年之间的学生的学号,姓名,出生日期。
SELECT 学号,姓名,出生日期 FROM 学生;
WHERE 出生日期 BETWEEN {^1985/01/01} AND {^1986/12/31}
【例3】显示STUD 表中姓李的学生的学号,姓名,出生日期。
SELECT 学号,姓名,出生日期 FROM 学生;
WHERE 姓名 LIKE "l%"
(注:LIKE 是字符匹配运算符,可使用通配符%(表示0-多个字符)、—(表示一个字府))
. SQL 的复杂查询
(1).连接查询
【说明】在一个数据库中的多个表之间一般都存在着某些联系,在一个查询语句中同时涉及到两个或两个以上的表时,这种查询称之为连接查询(也称为多表查询)。在多表之间查询必须处理表与表之间的连接关系。
SELECT [ALL | DISTINCT] <字段列表>
FROM <表1>[,表2…..]
WHERE <条件表达式>
【例1】查询并显示各个学生的学号,姓名,各科成绩及课程名。
SELECT a.学号,a.姓名,b.课程号,c.成绩 ;
FROM STUD a,SC1 b,SC c ;
WHERE a.学号=c.学号 AND b.课程号=c.课程号
【例2】查询并显示各个学生所学课程的情况。
SELECT STUD.学号,STUD.姓名,SC1.课程号 ;
FROM STUD,SC,SC1;
WHERE STUD.学号=SC.学号 AND SC.课程号=SC1.课程号