【例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.课程号
(2).连接问题
在SQL 语句中,在FROM 子句中提供了一种称之为连接的子句,连接分为内部联接和外部联接,外部联接又可分为左联接、右联接和全联接。
1). 内部联接
内部联接是指包括符合条件的每个表的记录,也称之为全记录操作。而上面两个例子就是内连接。
【例 】查询并显示各个学生的学号,所学课程及课程成绩。
SELECT SC.学号,SC1.课程名,SC.成绩 ;
FROM SC,SC1 ;
WHERE SC.课程号=SC1.课程号
如果采用内部联接方式,则命令如下:
SELECT a.学号,b.课程名,成绩 ;
FROM SC a INNER JOIN SC1 b ON a.课程号=b.课程号
将会得到完全相同的结果。
2). 外部联接
外部联接是指把两个表分为左右两个表。右联接是指连接满足条件右侧表的全部记录。左联接是指连接满足条件左侧表的全部记录。全联接是指连接满足条件表的全部记录。
(3).嵌套查询
在SQL 语句中,一个SELECT-FROM-WHERE 语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE 子句中的查询称为嵌套查询。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |