文章標題關聯式資料庫標準語言SQL 2

2021-08-06 02:55:53 字數 2971 閱讀 9982

連線查詢:涉及多個表的查詢

連線謂詞:用來連線兩個表的條件

等值查詢:

select student.*,

sc.* from student,sc

where student.sno = sc.sno

巢狀查詢:

select sname from student where sno

in(select sno from sc where cno=『2』);

any 大於子查詢結果中的某個值

all 大於子查詢結果中的所有值

< any 小於子查詢結果中的某個值

< all 小於子查詢結果中的所有值

= any 大於等於子查詢結果中的某個值

= all 大於等於子查詢結果中的所有值

<= any 小於等於子查詢結果中的某個值

<= all 小於等於子查詢結果中的所有值

= any 等於子查詢結果中的某個值

=all 等於子查詢結果中的所有值(通常沒有實際意義)

!=(或<>)any 不等於子查詢結果中的某個值

!=(或<>)all 不等於子查詢結果中的任何乙個值

查詢其他系中比資訊系任意乙個(其中某乙個)學生年齡小的學生姓名和年齡

select sname,sage

from student

where sage < any (select sage

from student

where sdept= 』 is 『)

and sdept <> 』 is 』 ;

對上述條件採用集函式查詢那麼效率會更高一點

select sname,sage

from student

where sage < any (selectmin(sage)

from student

where sdept= 』 is 『)

and sdept <> 』 is 』 ;

帶有exists謂詞的子查詢

查詢至少選修了學生95002選修的全部課程的學生號碼。

解題思路:

用邏輯蘊函表達:查詢學號為x的學生,對所有的課程y,只要95002學生選修了課程y,則x也選修了y。

形式化表示:

用p表示謂詞 「學生95002選修了課程y」

用q表示謂詞 「學生x選修了課程y」

則上述查詢為: (任意y) (如果p則q)

不存在這樣的課程y,學生95002選修了y,而學生x沒有選。

用not exists謂詞表示:

select

distinct sno

from sc scx

where

notexists

(select *

from sc scy

where scy.sno = ' 95002 '

andnot

exists

(select *

from sc scz

where scz.sno=scx.sno and

scz.cno=scy.cno));

集合查詢:

並操作(union)

交操作(intersect)

差操作(minus)

查詢電腦科學系的學生及年齡不大於19歲的學生。

方法一:

select *

from student

where sdept= 『cs』

union

select *

from student

where sage<=19;

方法二:

select distinct *

from student

where sdept= 『cs』 or sage<=19;

標準sql中沒有提供集合交操作,但可用其他方法間接實現。

查詢電腦科學系的學生與年齡不大於19歲的學生的交集

本例實際上就是查詢電腦科學系中年齡不大於19歲的學生

select *

from student

where sdept= 『cs』 and

sage<=19;

查詢選修課程1的學生集合與選修課程2的學生集合的交集

本例實際上是查詢既選修了課程1又選修了課程2的學生

select sno

from sc

where cno=』 1 』 and sno in

(select sno

from sc

where cno=』 2 『);

標準sql中沒有提供集合差操作,但可用其他方法間接實現。

查詢電腦科學系的學生與年齡不大於19歲的學生的差集。

本例實際上是查詢電腦科學系中年齡大於19歲的學生

select *

from student

where sdept= 『cs』 and

sage>19;

查詢學生姓名與教師姓名的差集

本例實際上是查詢學校中未與教師同名的學生姓名

select distinct sname

from student

where sname not in

(select tname

from teacher);

(三)關聯式資料庫標準語言 SQL

sql命令的分類 建立資料庫 create database 資料庫名稱 或者 create database 資料庫名 default character set 字符集 collate 校對集 檢視已有的資料庫 show databases 使用已建立的資料庫 use 資料庫名稱 例子 crea...

資料庫複習 5 關聯式資料庫標準語言SQL

sql 結構化查詢語言,是關聯式資料庫的標準語言。sql是乙個通用的 功能極強的關聯式資料庫語言。結構化查詢語言sql是一種介於關係代數和關係演算之間的語言。sql的主要特點包括 一 綜合統一 使用者資料庫投入執行後,可根據需要隨時逐步修改模式,不影響資料的執行。資料操作符統一 二 高度非過程化 模...

資料庫系統概論 關聯式資料庫標準語言SQL(3)

sql的資料插入語句insert通常有兩種形式。一種是插入乙個元組,另一種是插入子查詢的結果。後者可以一次插入多個元組。一 插入元組 插入元組 insert into 表名 屬性列1 屬性列2 values 常量1 常量2 其功能是將新元組插入到指定的表中。如果insert子句沒有指明任何屬性列名,...