結(jié)構(gòu)化查詢語言SQL_第1頁
結(jié)構(gòu)化查詢語言SQL_第2頁
結(jié)構(gòu)化查詢語言SQL_第3頁
結(jié)構(gòu)化查詢語言SQL_第4頁
結(jié)構(gòu)化查詢語言SQL_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章結(jié)構(gòu)化查詢語言SQL 主編:賴申江數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用本章學習導航本章學習導航v 結(jié)構(gòu)化查詢語言結(jié)構(gòu)化查詢語言SQLSQL是一種功能是一種功能齊全的數(shù)據(jù)庫語言,包含數(shù)據(jù)定義齊全的數(shù)據(jù)庫語言,包含數(shù)據(jù)定義功能、數(shù)據(jù)查詢功能、數(shù)據(jù)操縱功功能、數(shù)據(jù)查詢功能、數(shù)據(jù)操縱功能和數(shù)據(jù)控制功能。其中最主要的能和數(shù)據(jù)控制功能。其中最主要的功能就是查詢。通過本章學習,學功能就是查詢。通過本章學習,學生應掌握生應掌握SQLSQL語言的使用方法和技巧,語言的使用方法和技巧,提高知識綜合運用能力,寫出高質(zhì)提高知識綜合運用能力,寫出高質(zhì)量的量的SQLSQL查詢命令。查詢命

2、令。 數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用本章學習要點本章學習要點lSQL的數(shù)據(jù)定義 :熟練運用CREATE TABLE、ALTER TABLET和DROP TABLE語句完成表的創(chuàng)建、修改和刪除 。l SQL的數(shù)據(jù)操縱 :熟練運用INSERT、DELETE和UPDATE語句添加、刪除和更新記錄 。l SQL的數(shù)據(jù)查詢 :熟練運用SELECT語句完成簡單查詢、嵌套查詢、連接查詢、分組與計算查詢 。 教學課時:教學課時:4課時課時數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v5.1 SQL5.1 SQL概述概述v結(jié)構(gòu)化查詢語言(結(jié)構(gòu)化查詢語言(Structured Query La

3、nguageStructured Query Language,簡稱簡稱SQLSQL)是一種介于關系代數(shù)和關系演算之間的)是一種介于關系代數(shù)和關系演算之間的語言。它于語言。它于19741974年由年由BoyceBoyce和和ChamberlinChamberlin提出,由提出,由于具有語言簡潔、方便實用、功能齊全等優(yōu)點,于具有語言簡潔、方便實用、功能齊全等優(yōu)點,很快得到推廣和應用。隨著關系數(shù)據(jù)庫的流行,很快得到推廣和應用。隨著關系數(shù)據(jù)庫的流行,SQLSQL語言最終發(fā)展成為關系數(shù)據(jù)庫的標準語言和數(shù)語言最終發(fā)展成為關系數(shù)據(jù)庫的標準語言和數(shù)據(jù)庫領域中一個主流語言。據(jù)庫領域中一個主流語言。SQLSQL

4、已經(jīng)被已經(jīng)被ANSIANSI(美國(美國國家標準化組織)確定為數(shù)據(jù)庫系統(tǒng)的工業(yè)標準,國家標準化組織)確定為數(shù)據(jù)庫系統(tǒng)的工業(yè)標準,它是數(shù)據(jù)庫系統(tǒng)的通用語言。利用它是數(shù)據(jù)庫系統(tǒng)的通用語言。利用SQLSQL,用戶可以,用戶可以用幾乎相同的語句在不同的數(shù)據(jù)庫系統(tǒng)上執(zhí)行同用幾乎相同的語句在不同的數(shù)據(jù)庫系統(tǒng)上執(zhí)行同樣的操作。樣的操作。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 5.1.1 SQL5.1.1 SQL語言的特點語言的特點v SQLSQL語言之所以能夠成為國際標準,是因為它是一個綜合的、通用的、語言之所以能夠成為國際標準,是因為它是一個綜合的、通用的、功能極強,同時又簡單易

5、學的語言。功能極強,同時又簡單易學的語言。v (1 1)功能強大)功能強大v SQLSQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體。語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體。v (2 2)高度非過程化)高度非過程化v 用戶只要提出用戶只要提出“做什么做什么”,而無需指明,而無需指明“怎么做怎么做”,存取路徑的選擇,存取路徑的選擇以及以及SQLSQL語言的操作過程由系統(tǒng)自動完成,不但大大減輕了用戶負擔,語言的操作過程由系統(tǒng)自動完成,不但大大減輕了用戶負擔,而且有利于提高數(shù)據(jù)的獨立性。而且有利于提高數(shù)據(jù)的獨立性。v (3 3)簡單易用)簡單易用v SQLSQL語言十分簡

6、潔,實現(xiàn)核心功能,一般只要用到下面語言十分簡潔,實現(xiàn)核心功能,一般只要用到下面9 9個命令動詞,個命令動詞,如表如表5-15-1所示。因此容易學習和掌握。所示。因此容易學習和掌握。v (4 4)有聯(lián)機交互和嵌入兩種使用方式)有聯(lián)機交互和嵌入兩種使用方式v SQLSQL語言支持兩種不同的使用方式。一種是聯(lián)機交互使用,即用戶能在語言支持兩種不同的使用方式。一種是聯(lián)機交互使用,即用戶能在終端直接輸入終端直接輸入SQLSQL命令對數(shù)據(jù)庫進行操作;另一種是嵌入式,即將命令對數(shù)據(jù)庫進行操作;另一種是嵌入式,即將SQLSQL語句嵌入到其他高級語言中,以便程序員在設計時使用。語句嵌入到其他高級語言中,以便程序

7、員在設計時使用。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 5.1.2 SQL5.1.2 SQL數(shù)據(jù)定義功能數(shù)據(jù)定義功能v 關系數(shù)據(jù)庫的基本對象是表、視圖和索引。因此關系數(shù)據(jù)庫的基本對象是表、視圖和索引。因此SQLSQL的數(shù)的數(shù)據(jù)定義功能包括定義數(shù)據(jù)庫、表、視圖和索引,如表據(jù)定義功能包括定義數(shù)據(jù)庫、表、視圖和索引,如表5-25-2所示。由于視圖是基于表的虛表,索引是依附于表的,因所示。由于視圖是基于表的虛表,索引是依附于表的,因此此SQLSQL通常不提供修改視圖和索引的操作。通常不提供修改視圖和索引的操作。v 1 1數(shù)據(jù)庫的創(chuàng)建和刪除數(shù)據(jù)庫的創(chuàng)建和刪除v 關系數(shù)據(jù)庫被定義

8、為關系(表)、索引和視圖的集合。在關系數(shù)據(jù)庫被定義為關系(表)、索引和視圖的集合。在創(chuàng)建表、視圖和索引前必須首先創(chuàng)建數(shù)據(jù)庫。創(chuàng)建表、視圖和索引前必須首先創(chuàng)建數(shù)據(jù)庫。v 例如,創(chuàng)建學生選課數(shù)據(jù)庫例如,創(chuàng)建學生選課數(shù)據(jù)庫stscstsc,可以用,可以用CREATECREATEDATABASEDATABASEstscstsc語句來實現(xiàn)。語句來實現(xiàn)。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 2 2基本表的創(chuàng)建、修改和刪除基本表的創(chuàng)建、修改和刪除v 用用CREATECREATEDATABASEDATABASE建立的數(shù)據(jù)庫是一個空的數(shù)據(jù)庫,接下來應該在建立的數(shù)據(jù)庫是一個空的數(shù)據(jù)庫,

9、接下來應該在這個數(shù)據(jù)庫中建立表。這個數(shù)據(jù)庫中建立表。v (1 1)創(chuàng)建基本表)創(chuàng)建基本表v 表的創(chuàng)建既可以通過表設計器或表的創(chuàng)建既可以通過表設計器或Visual FoxProVisual FoxPro的新建表命令實現(xiàn),也的新建表命令實現(xiàn),也可以使用可以使用SQLSQL中的相應命令創(chuàng)建。中的相應命令創(chuàng)建。v 命令格式:命令格式:CREATE TABLE|DBF CREATE TABLE|DBF FREE FREE( (寬度寬度,),), (寬度寬度,),),)v 功能:建立一個由功能:建立一個由 指定的表結(jié)構(gòu)。指定的表結(jié)構(gòu)。v 說明:說明:v :指定要創(chuàng)建的表的名稱。:指定要創(chuàng)建的表的名稱。v

10、FREEFREE:指定創(chuàng)建的表是一個自由表,不被添加到數(shù)據(jù)庫中。:指定創(chuàng)建的表是一個自由表,不被添加到數(shù)據(jù)庫中。v (寬度寬度,):指定相應字段的名:指定相應字段的名稱、類型、寬度及小數(shù)位數(shù)。稱、類型、寬度及小數(shù)位數(shù)。 數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v例例5-1 5-1 在學生選課數(shù)據(jù)庫在學生選課數(shù)據(jù)庫stscstsc中創(chuàng)建一個學生表中創(chuàng)建一個學生表studentstudent。v CREATE TABLE student (CREATE TABLE student (學號學號 c(8),c(8),姓名姓名 c(6),c(6),性別性別 c(2),c(2),院系

11、院系 c(8),c(8),出生日期出生日期 D,D,入學成績?nèi)雽W成績 N(4,1)N(4,1)v功能:用功能:用CREATE TABLECREATE TABLE語句創(chuàng)建數(shù)據(jù)庫表語句創(chuàng)建數(shù)據(jù)庫表studentstudent。該表中包含了學號、姓名、性別、院系、出生日該表中包含了學號、姓名、性別、院系、出生日期和入學成績期和入學成績6 6個字段。個字段。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v (2 2)修改表結(jié)構(gòu))修改表結(jié)構(gòu)v 修改表結(jié)構(gòu)命令以修改表結(jié)構(gòu)命令以ALTER TABLEALTER TABLE開頭,后面根據(jù)不同的操作使用不同的開頭,后面根據(jù)不同的操作使用不同的命

12、令動詞。命令動詞。v 增加字段增加字段v 格式:格式:ALTER TABLE ALTER TABLE ADD ADD )v 功能:對指定的表增加一個字段。功能:對指定的表增加一個字段。v 例例5-5-為學生為學生studentstudent表增加一個照片字段。表增加一個照片字段。v ALTER TABLE student ADD ALTER TABLE student ADD 照片照片 G Gv 刪除字段刪除字段v 格式:格式:ALTER TABLE ALTER TABLE DROP DROP v 功能:在指定的表中刪除指定字段。功能:在指定的表中刪除指定字段。v 例例5-5-刪除學生刪除學生

13、studentstudent表中的照片字段。表中的照片字段。v ALTER TABLE student DROP ALTER TABLE student DROP 照片照片數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 修改字段修改字段v 格式:格式:ALTER TABLE ALTER TABLE ALTER ALTER ()v 功能:在指定的表中修改指定字段的類型和寬度,不能修功能:在指定的表中修改指定字段的類型和寬度,不能修改字段名。改字段名。v 例例5-5-把學生把學生studentstudent表中的姓名字段寬度由表中的姓名字段寬度由6 6改為改為1010。v ALT

14、ER TABLE student ALTER ALTER TABLE student ALTER 姓名姓名 c(10)c(10)v 修改字段名修改字段名v 格式:格式:ALTER TABLE ALTER TABLE RENAME RENAME TO TO v 功能:在指定表中將字段名更名為字段名。功能:在指定表中將字段名更名為字段名。v 例例5-5-把課程表把課程表coursecourse中的課名改為課程名稱。中的課名改為課程名稱。v ALTER TABLE course RENAME ALTER TABLE course RENAME 課名課名 TO TO 課程名稱課程名稱v 說明:執(zhí)行一條

15、命令只能對一個字段進行一種操作。說明:執(zhí)行一條命令只能對一個字段進行一種操作。 數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v(3 3)刪除表)刪除表vDROP TABLEDROP TABLE語句用于刪除表的定義和表中的數(shù)據(jù)、語句用于刪除表的定義和表中的數(shù)據(jù)、建立在表上的索引、視圖等。建立在表上的索引、視圖等。v格式:格式: DROP TABLE DROP TABLE /?RECYCLE/?RECYCLEv功能:刪除指定的表。功能:刪除指定的表。v說明:說明:v/?/?:將顯示:將顯示“移去移去”對話框,從中可刪除指定對話框,從中可刪除指定的表。的表。vRECYCLERECY

16、CLE:將刪除的表文件放到回收站,以后可:將刪除的表文件放到回收站,以后可以恢復。以恢復。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v3 3視圖的創(chuàng)建和刪除視圖的創(chuàng)建和刪除v視圖是一個虛表,是由一個或者幾個基本表導出視圖是一個虛表,是由一個或者幾個基本表導出的表。它本身不獨立存儲在數(shù)據(jù)庫中,即數(shù)據(jù)庫的表。它本身不獨立存儲在數(shù)據(jù)庫中,即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在對應的表中。當基本表中的數(shù)這些數(shù)據(jù)仍存放在對應的表中。當基本表中的數(shù)據(jù)發(fā)生了變化,視圖中對應的數(shù)據(jù)也隨之改變。據(jù)發(fā)生了變化,視圖中對應的數(shù)

17、據(jù)也隨之改變。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v (1 1)創(chuàng)建視圖)創(chuàng)建視圖v 視圖一經(jīng)創(chuàng)建,就可以通過它來查詢數(shù)據(jù)庫中數(shù)據(jù),又可以用來定義視圖一經(jīng)創(chuàng)建,就可以通過它來查詢數(shù)據(jù)庫中數(shù)據(jù),又可以用來定義新的視圖。新的視圖。v 格式:格式:CREATE VIEW CREATE VIEW ( ( , ,2) AS ) AS SELECT v 功能:創(chuàng)建一個由視圖名指定的視圖。功能:創(chuàng)建一個由視圖名指定的視圖。v 用視圖可以簡化基本表的瀏覽。例如只想了解學生表中的學號、姓名用視圖可以簡化基本表的瀏覽。例如只想了解學生表中的學號、姓名和院系,可以從學生表和院系,可以從學生

18、表studentstudent創(chuàng)建一個視圖:創(chuàng)建一個視圖:v CREATE VIEW stuyx AS SELECT CREATE VIEW stuyx AS SELECT 學號,姓名,院系學號,姓名,院系 FROM studentFROM studentv 其中,其中,stuyxstuyx是視圖名,省略了視圖的列名,隱含是是視圖名,省略了視圖的列名,隱含是SELECTSELECT查詢語句中查詢語句中的列名。的列名。v 例如,可以通過創(chuàng)建例如,可以通過創(chuàng)建stu_jsjstu_jsj視圖查看金融系的學生內(nèi)容,語句如下:視圖查看金融系的學生內(nèi)容,語句如下:v CREATE VIEW stu_js

19、j AS SELECT CREATE VIEW stu_jsj AS SELECT * * FROM student WHERE FROM student WHERE 院院系系“金融金融”數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v (2 2)查詢視圖)查詢視圖v 視圖定義后,用戶就可以像基本表一樣對視圖進行查詢。視圖定義后,用戶就可以像基本表一樣對視圖進行查詢。v 格式:格式:SELECT (SELECT ( , ,2) FROM ) FROM v (3 3)刪除視圖)刪除視圖v 格式:格式:DROP VIEW DROP VIEW v 視圖刪除后,其定義的以及在它基礎上再

20、建立的其他視圖視圖刪除后,其定義的以及在它基礎上再建立的其他視圖將自動刪除。將自動刪除。v 由于視圖是從基本表中衍生出來的,所以不能進行結(jié)構(gòu)修由于視圖是從基本表中衍生出來的,所以不能進行結(jié)構(gòu)修改。若要改變視圖結(jié)構(gòu),則只能刪除后重新定義視圖。改。若要改變視圖結(jié)構(gòu),則只能刪除后重新定義視圖。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v5.1.3 SQL5.1.3 SQL數(shù)據(jù)查詢功能數(shù)據(jù)查詢功能v數(shù)據(jù)查詢是數(shù)據(jù)庫的核心操作。數(shù)據(jù)查詢是指根數(shù)據(jù)查詢是數(shù)據(jù)庫的核心操作。數(shù)據(jù)查詢是指根據(jù)用戶的需要,從數(shù)據(jù)庫中提取所需的數(shù)據(jù)。據(jù)用戶的需要,從數(shù)據(jù)庫中提取所需的數(shù)據(jù)。SQLSQL提供了提供

21、了SELECTSELECT語句實現(xiàn)查詢,該語句具有靈活的語句實現(xiàn)查詢,該語句具有靈活的使用方式和豐富的功能,既可以完成相對簡單的使用方式和豐富的功能,既可以完成相對簡單的單表查詢,又可以完成復雜的多表連接查詢和嵌單表查詢,又可以完成復雜的多表連接查詢和嵌套查詢。套查詢。 數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 1 1SQLSQL查詢命令查詢命令v 一般格式:一般格式:v SELECT ALL|DISTINCTSELECT ALL|DISTINCT,;v FROM FROM ,;v WHERE WHERE ;v GROUP BY GROUP BY HAVING HAVI

22、NG ;v ORDER BYORDER BYASC|DESCASC|DESCv 功能:功能:v 根據(jù)根據(jù)WHEREWHERE子句的條件表達式,從子句的條件表達式,從FROMFROM子句指定的基本表或視圖中,找子句指定的基本表或視圖中,找出滿足條件的記錄;再按出滿足條件的記錄;再按SELECTSELECT子句中的目標表達式,選出記錄中的子句中的目標表達式,選出記錄中的屬性值,形成結(jié)果表。如果有屬性值,形成結(jié)果表。如果有GROUP BYGROUP BY子句,則將結(jié)果按分組列名的子句,則將結(jié)果按分組列名的值進行分組,該屬性列值相等的記錄為一個組。如果值進行分組,該屬性列值相等的記錄為一個組。如果GR

23、OUP BYGROUP BY子句還子句還帶有帶有HAVINGHAVING短語,則只有滿足指定條件的組才能輸出。如果有短語,則只有滿足指定條件的組才能輸出。如果有ORDER ORDER BYBY子句,則結(jié)果還要按排序字段的值進行升序或降序排列。子句,則結(jié)果還要按排序字段的值進行升序或降序排列。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 說明:說明:v (1 1)在使用)在使用SQLSQL查詢語句時,無論數(shù)據(jù)庫是否打開,查詢語句時,無論數(shù)據(jù)庫是否打開,F(xiàn)ROMFROM子句中指定的表所在數(shù)據(jù)庫將自動打開。子句中指定的表所在數(shù)據(jù)庫將自動打開。v (2 2)由于)由于FoxProF

24、oxPro系統(tǒng)中將系統(tǒng)中將EnterEnter鍵解釋為一條語句的結(jié)束,鍵解釋為一條語句的結(jié)束,在整個語句結(jié)束前只能連續(xù)寫,不能用在整個語句結(jié)束前只能連續(xù)寫,不能用EnterEnter鍵來換行。鍵來換行。在在SQLSQL中,為了使查詢結(jié)構(gòu)清晰,往往把中,為了使查詢結(jié)構(gòu)清晰,往往把SELECTSELECT子句、子句、FROMFROM子句及各層嵌套以分號作為分隔符,表示下一行為本子句及各層嵌套以分號作為分隔符,表示下一行為本行的后續(xù)。行的后續(xù)。v 為了便于理解,還是以學生選課數(shù)據(jù)庫為了便于理解,還是以學生選課數(shù)據(jù)庫stscstsc為例說明為例說明SELECTSELECT語句的基本用法。學生選課數(shù)據(jù)庫

25、語句的基本用法。學生選課數(shù)據(jù)庫stscstsc由三個基本由三個基本表組成:表組成:v 學生表學生表studentstudent(學號學號、姓名、性別、出生日期、院系、姓名、性別、出生日期、院系、入學成績);入學成績);v 成績表成績表scorescore(學號學號、課程編號課程編號、成績);、成績);v 課程表課程表coursecourse(課程編號課程編號、課程名稱、學分)。、課程名稱、學分)。 數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 2 2簡單查詢簡單查詢v 簡單查詢是基于單表的查詢,由簡單查詢是基于單表的查詢,由SELECTSELECT和和FROMFROM短語構(gòu)

26、成無條件查詢或短語構(gòu)成無條件查詢或者由者由SELECTSELECT、FROMFROM和和WHEREWHERE短語構(gòu)成有條件查詢。短語構(gòu)成有條件查詢。v (1 1)選擇表中的若干列)選擇表中的若干列v 例例5-6 5-6 查詢學生表查詢學生表studentstudent中所有院系。中所有院系。v SELECT SELECT 院系院系 FROM studentFROM studentv 該結(jié)果中有重復值,若要去掉重復值只需加上該結(jié)果中有重復值,若要去掉重復值只需加上DISTINCTDISTINCT短語:短語:v SELECT DISTINCT SELECT DISTINCT 院系院系 FROM s

27、tudentFROM studentv 例例5-7 5-7 查詢?nèi)w學生的詳細記錄。查詢?nèi)w學生的詳細記錄。v SELECT SELECT * * FROM student FROM studentv 其中的其中的“* *”表示要查詢所有的列。表示要查詢所有的列。v 例例5-8 5-8 查詢?nèi)w學生情況,并將結(jié)果按入學成績升序排序。查詢?nèi)w學生情況,并將結(jié)果按入學成績升序排序。v SELECT SELECT * * FROM student ORDER BY FROM student ORDER BY 入學成績?nèi)雽W成績 ASCASCv 結(jié)果表中的記錄自動按入學成績的升序排序。結(jié)果表中的記錄自動

28、按入學成績的升序排序。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v(2 2)用)用WHEREWHERE子句選擇滿足條件的記錄子句選擇滿足條件的記錄v例例5-9 5-9 查找中文系全體學生的名單。查找中文系全體學生的名單。vSELECT SELECT 姓名姓名 FROM student WHERE FROM student WHERE 院系院系=中文中文 v例例5-10 5-10 查找缺少成績的學生學號和課程號。查找缺少成績的學生學號和課程號。vSELECT SELECT 學號學號, ,課程編號課程編號 FROM score WHERE FROM score WHERE 成績

29、成績 IS NULLIS NULLv例例5-11 5-11 查找姓查找姓“王王”的所有學生姓名和院系。的所有學生姓名和院系。vSELECT SELECT 姓名姓名, ,院系院系 FROM student WHERE FROM student WHERE 姓名姓名 LIKE LIKE 王王% % 數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 3 3連接查詢連接查詢v 若查詢涉及到兩個或兩個以上的表,就要用到連接查詢。若查詢涉及到兩個或兩個以上的表,就要用到連接查詢。v (1 1)連接)連接v 由于由于SQLSQL的高度非過程化,用戶只需要在的高度非過程化,用戶只需要在FROM

30、FROM子句中指出要用到的表名,子句中指出要用到的表名,在在WHEREWHERE中指出連接條件,連接過程將由系統(tǒng)自動完成。中指出連接條件,連接過程將由系統(tǒng)自動完成。v 連接條件連接條件v 用來連接兩個表的條件稱為連接條件,其一般格式為:用來連接兩個表的條件稱為連接條件,其一般格式為:v . .2v 此外,連接條件還可以用下面的形式:此外,連接條件還可以用下面的形式:v . BETWEEN BETWEEN . AND AND .3v 連接條件中的列名稱為連接字段,條件中的各連接字段必須是可比的。連接條件中的列名稱為連接字段,條件中的各連接字段必須是可比的。v 等值連接和非等值連接等值連接和非等值

31、連接v 當連接運算符為當連接運算符為“= =”時,稱為等值連接。使用其他運算符稱為非等值時,稱為等值連接。使用其他運算符稱為非等值連接。連接。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 例例5-12 5-12 查詢選修課程編號為查詢選修課程編號為“90019001”的學生學號和姓名。的學生學號和姓名。v 學生的姓名在學生的姓名在studentstudent表中,學生選課信息在表中,學生選課信息在scorescore成績表成績表中,所以本查詢實際上同時中,所以本查詢實際上同時studentstudent和和scorescore兩個表中的數(shù)兩個表中的數(shù)據(jù)。這兩個表之間的聯(lián)系是

32、通過兩個表中都有據(jù)。這兩個表之間的聯(lián)系是通過兩個表中都有“學號學號”字字段實現(xiàn)的。要查詢學生及其選修課程的情況,就必須將這段實現(xiàn)的。要查詢學生及其選修課程的情況,就必須將這兩個表中學號相同的記錄連接起來。這是一個等值連接。兩個表中學號相同的記錄連接起來。這是一個等值連接。SQLSQL語句為:語句為:v SELECT student.SELECT student.學號學號, ,姓名姓名 FROM student, score ;FROM student, score ;v WHERE student.WHERE student.學號學號=score.=score.學號學號 AND AND 課程編

33、號課程編號=9001=9001v 注意:注意:studentstudent表與表與scorescore表中均包含學號字段,訪問時要表中均包含學號字段,訪問時要加前綴。加前綴。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 4 4嵌套查詢嵌套查詢v 在在SQLSQL語言中,一個語言中,一個SELECTSELECTFROMFROMWHEREWHERE語句稱為一個查語句稱為一個查詢塊。將一個查詢塊嵌套在另一個查詢塊的詢塊。將一個查詢塊嵌套在另一個查詢塊的WHEREWHERE子句或子句或HANVIGHANVIG短語中的查詢稱為嵌套查詢。嵌套查詢使用戶可以短語中的查詢稱為嵌套查詢。嵌套

34、查詢使用戶可以用多個簡單查詢構(gòu)造復雜的查詢,從而增強用多個簡單查詢構(gòu)造復雜的查詢,從而增強SQLSQL語言的查語言的查詢能力。詢能力。v 例例5-13 5-13 用嵌套查詢實現(xiàn)例用嵌套查詢實現(xiàn)例5-125-12的語句是:的語句是:v SELECT SELECT 學號學號, ,姓名姓名 FROM student ;FROM student ;v WHERE WHERE 學號學號 IN(SELECT IN(SELECT 學號學號 FROM score WHERE FROM score WHERE 課程編課程編號號=9001)=9001)v 在本例中,下層查詢塊在本例中,下層查詢塊SELECTSEL

35、ECT學號學號FROM score WHEREFROM score WHERE課程課程編號編號“90019001”是嵌套在查詢塊是嵌套在查詢塊SELECTSELECT學號學號, ,姓名姓名 FROM FROM student WHEREstudent WHERE學號學號 ININ中的。上層查詢塊又稱為中的。上層查詢塊又稱為“外層查外層查詢詢”或或“父查詢父查詢”,下層查詢塊稱為,下層查詢塊稱為“內(nèi)層查詢內(nèi)層查詢”或或“子子查詢查詢”。一個子查詢還可以嵌套其他子查詢。一個子查詢還可以嵌套其他子查詢。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 5 5計算查詢計算查詢v SQL

36、SQL提供了稱為庫函數(shù)的常用統(tǒng)計函數(shù),這些庫函數(shù)增強提供了稱為庫函數(shù)的常用統(tǒng)計函數(shù),這些庫函數(shù)增強了查詢功能,進一步方便了用戶。這些庫函數(shù)及其功能如了查詢功能,進一步方便了用戶。這些庫函數(shù)及其功能如下:下:v COUNT(COUNT():對指定字段進行計數(shù):對指定字段進行計數(shù)v SUM(SUM():求指定字段值的總和(該字段必須為:求指定字段值的總和(該字段必須為數(shù)值)數(shù)值)v AVG(AVG():求指定字段值的平均值(該字段必須:求指定字段值的平均值(該字段必須為數(shù)值)為數(shù)值)v MAX(MAX():求指定字段中的最大值:求指定字段中的最大值v MIN(MIN():求指定字段中的最小值:求指

37、定字段中的最小值v 以上函數(shù)不可以嵌套使用。在使用庫函數(shù)查詢時,常用以上函數(shù)不可以嵌套使用。在使用庫函數(shù)查詢時,常用ASAS來指定列名。來指定列名。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 例例5-14 5-14 查詢課程總數(shù)。查詢課程總數(shù)。v SELECT COUNT(SELECT COUNT(* *)AS )AS 課程總數(shù)課程總數(shù) FROM courseFROM coursev 在在coursecourse表中課程編號的值唯一,所以統(tǒng)計課程總數(shù)就是表中課程編號的值唯一,所以統(tǒng)計課程總數(shù)就是統(tǒng)計表中的記錄數(shù)。統(tǒng)計表中的記錄數(shù)。v 例例5-15 5-15 查詢選修了課程

38、學生人數(shù)。查詢選修了課程學生人數(shù)。v SELECT COUNT(DISTINCT SELECT COUNT(DISTINCT 學號學號)AS )AS 選課人數(shù)選課人數(shù) FROM scoreFROM scorev 由于每個學生選課不止一門課,由于每個學生選課不止一門課,scorescore表中一個學生可能表中一個學生可能有多個記錄,因此在有多個記錄,因此在COUNTCOUNT函數(shù)中用函數(shù)中用DISTINCTDISTINCT去掉重復記去掉重復記錄。錄。v 例例5-16 5-16 統(tǒng)計各課程選修的學生人數(shù)。統(tǒng)計各課程選修的學生人數(shù)。v SELECT SELECT 課程編號課程編號,COUNT(,CO

39、UNT(學號學號)AS )AS 學生人數(shù)學生人數(shù) FROM score FROM score GROUP BY GROUP BY 課程編號課程編號v 本例對本例對scorescore按課程編號分組,對每一組用函數(shù)按課程編號分組,對每一組用函數(shù)COUNTCOUNT求出求出學生人數(shù)。學生人數(shù)。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 6 6查詢結(jié)果輸出查詢結(jié)果輸出v )輸出部分結(jié)果)輸出部分結(jié)果v 在在SELECTSELECT語句中常使用語句中常使用TOP n PERCENTTOP n PERCENT短語來顯示滿足條件的前幾條短語來顯示滿足條件的前幾條記錄。不帶記錄。不帶P

40、ERCENTPERCENT參數(shù)時,參數(shù)時,n n是是132767132767之間的整數(shù),說明顯示前之間的整數(shù),說明顯示前n n條條記錄;使用記錄;使用PERCENTPERCENT參數(shù)時,參數(shù)時,n n是是0.0199.990.0199.99之間的實數(shù),說明顯示查之間的實數(shù),說明顯示查詢結(jié)果中前百分之多少的記錄。詢結(jié)果中前百分之多少的記錄。v TOPTOP短語要與短語要與ORDER BYORDER BY短語同時使用才有效。短語同時使用才有效。v 例例5-17 5-17 查詢輸出入學成績在前查詢輸出入學成績在前3 3名的學生名的學生v SELECT SELECT * * TOP 3 FROM st

41、udent ORDER BY TOP 3 FROM student ORDER BY 入學成績?nèi)雽W成績 DESCDESCv 例例5-18 5-18 查詢輸出入學成績在前查詢輸出入學成績在前3%3%的學生的學生v SELECT SELECT * * TOP 3 PERCENT FROM student ORDER BY TOP 3 PERCENT FROM student ORDER BY 入學成績?nèi)雽W成績 DESCDESCv )輸出去向)輸出去向v 在在SELECTSELECT語句中語句中INTOINTO或或TOTO短語,可以指定查詢結(jié)果的輸出去向。短語,可以指定查詢結(jié)果的輸出去向。數(shù)據(jù)庫系統(tǒng)

42、及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v例例5-19 5-19 將所有女同學的信息保存于臨時表將所有女同學的信息保存于臨時表TEMPTEMP中。中。vSELECT SELECT * * FROM student WHERE FROM student WHERE 性別性別=女女 INTO INTO CURSOR TEMPCURSOR TEMPv例例5-20 5-20 將入學成績大于將入學成績大于450450分的學生信息保存于分的學生信息保存于高分高分.DBF.DBF表中。表中。vSELECT SELECT * * FROM student WHERE FROM student WH

43、ERE 入學成績?nèi)雽W成績450 450 INTO DBF INTO DBF 高分高分v例例5-21 5-21 將中文系的學生信息存放到文件名為將中文系的學生信息存放到文件名為“中中文文”的文本文件中。的文本文件中。vSELECT SELECT * * FROM student WHERE FROM student WHERE 院系院系=中文中文 TO TO FILE FILE 中文中文數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v5.1.4 SQL5.1.4 SQL操縱功能操縱功能vSQLSQL的數(shù)據(jù)操作功能是指對已經(jīng)存在的數(shù)據(jù)表進行的數(shù)據(jù)操作功能是指對已經(jīng)存在的數(shù)據(jù)表進行記

44、錄的插入、刪除和修改操作。記錄的插入、刪除和修改操作。SQLSQL的數(shù)據(jù)操作包的數(shù)據(jù)操作包括三個語句:括三個語句:INSERT(INSERT(插入記錄插入記錄) )、DELETE(DELETE(刪除記刪除記錄錄) )和和UPDATE(UPDATE(修改記錄修改記錄) )。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 1 1插入數(shù)據(jù)插入數(shù)據(jù)v (1 1)命令格式:)命令格式:v INSERT INTOINSERT INTO(字段名字段名 ,字段名,字段名)VALUES()VALUES(表達式表達式11,表達式,表達式2 2)v 功能功能: :在表尾追加一條包含指定字段值的記錄

45、。在表尾追加一條包含指定字段值的記錄。v 例例5-22 5-22 給成績表添加一條選課記錄。給成績表添加一條選課記錄。v INSERT INTO score (INSERT INTO score (學號學號, ,課程編號課程編號, ,成績成績) VALUES (03036003,001,89) VALUES (03036003,001,89)v 說明:說明:v 命令中的各表達式和各字段之間相對應的,其數(shù)據(jù)類型應相同。命令中的各表達式和各字段之間相對應的,其數(shù)據(jù)類型應相同。v 若插入命令中表的每一個字段都有具體的值,那么字段名列表可以省略。若若插入命令中表的每一個字段都有具體的值,那么字段名列表

46、可以省略。若只給出部分字段的值,那么必須在命令中列出對應的字段名。只給出部分字段的值,那么必須在命令中列出對應的字段名。v 如上列的命令可改為:如上列的命令可改為:v INSERT INTO score VALUES (INSERT INTO score VALUES (“0303600303036003”, ,”001001”,89),89)v (2 2)命令格式)命令格式2 2:v INSERT INTOINSERT INTO FROM ARRAY FROM ARRAY| v 功能:從數(shù)組或內(nèi)存變量中導入記錄。功能:從數(shù)組或內(nèi)存變量中導入記錄。 數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)

47、化查詢語言SQL v 2 2刪除數(shù)據(jù)刪除數(shù)據(jù)v 命令格式:命令格式:v DELETE FROMDELETE FROMWHERE WHERE v 功能:從指定的表中對滿足條件的那些記錄作刪除標記。功能:從指定的表中對滿足條件的那些記錄作刪除標記。v 說明:說明:v 該命令執(zhí)行的是邏輯刪除,若要徹底刪除記錄,還需要使該命令執(zhí)行的是邏輯刪除,若要徹底刪除記錄,還需要使用用PACKPACK命令。命令。v 如果省略條件子句,表示刪除表中所有記錄,但是該表的如果省略條件子句,表示刪除表中所有記錄,但是該表的結(jié)構(gòu)仍然存在。結(jié)構(gòu)仍然存在。v 例例5-23 5-23 從課程表中刪除課程號為從課程表中刪除課程號為

48、”001001”的記錄。的記錄。v DELETE FROM course WHERE DELETE FROM course WHERE 課程編號課程編號=001=001。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 3 3修改數(shù)據(jù)修改數(shù)據(jù)v 修改數(shù)據(jù)是指修改指定表中滿足條件的記錄。修改數(shù)據(jù)是指修改指定表中滿足條件的記錄。v 命令格式:命令格式:v UPDATE UPDATE v SET SET =,=2v WHERE WHERE v 功能:按功能:按SETSET子句中的表達式修改記錄的相應的字段值。如果省略條件,子句中的表達式修改記錄的相應的字段值。如果省略條件,表示表中所

49、有記錄都要修改,否則僅修改滿足條件的部分記錄。表示表中所有記錄都要修改,否則僅修改滿足條件的部分記錄。v 例例5-24 5-24 將學生表中學號為將學生表中學號為”0303600303036003”的學生姓名改為的學生姓名改為“王平王平”。v UPDATE student SET UPDATE student SET 姓名姓名=王平王平 WHERE WHERE 學號學號=03036003=03036003v 例例5-25 5-25 將所有學生的入學成績加上將所有學生的入學成績加上5 5分。分。v UPDATE student SET UPDATE student SET 入學成績?nèi)雽W成績= =

50、入學成績?nèi)雽W成績+5+5數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 5.2 5.2 用用SQLSQL進行表的基本操作案例進行表的基本操作案例 v 案例說明案例說明 v 本案例要求運用本案例要求運用SQLSQL語句的定義功能,創(chuàng)建語句的定義功能,創(chuàng)建“學生學生- -成績成績- -課程課程”數(shù)據(jù)庫數(shù)據(jù)庫StscStsc,然后在該數(shù)據(jù)庫中創(chuàng)建表,并建立表,然后在該數(shù)據(jù)庫中創(chuàng)建表,并建立表間聯(lián)系?;疽笕缦拢洪g聯(lián)系?;疽笕缦拢簐 (1 1)用)用SQLSQL語句創(chuàng)建數(shù)據(jù)庫語句創(chuàng)建數(shù)據(jù)庫stscstsc。v (2 2)在該數(shù)據(jù)庫下創(chuàng)建)在該數(shù)據(jù)庫下創(chuàng)建3 3張數(shù)據(jù)庫表,分別為

51、:學生表張數(shù)據(jù)庫表,分別為:學生表studentstudent、成績表、成績表scorescore、課程表、課程表coursecourse。v (3 3)設置學生表的學號為主索引、成績表的學號和課程)設置學生表的學號為主索引、成績表的學號和課程編號為候選索引、課程表的課程編號為主索引。編號為候選索引、課程表的課程編號為主索引。v (4 4)建立學生表和成績表、課程表和成績表一對多關聯(lián)。)建立學生表和成績表、課程表和成績表一對多關聯(lián)。v (5 5)設置數(shù)據(jù)庫表的完整約束性條件。)設置數(shù)據(jù)庫表的完整約束性條件。v (6 6)向數(shù)據(jù)庫表中添加記錄。)向數(shù)據(jù)庫表中添加記錄。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及

52、應用第5章 結(jié)構(gòu)化查詢語言SQL v 5.2.1 5.2.1 操作步驟操作步驟v (1 1)創(chuàng)建數(shù)據(jù)庫)創(chuàng)建數(shù)據(jù)庫stscstscv (2 2)創(chuàng)建數(shù)據(jù)庫表)創(chuàng)建數(shù)據(jù)庫表v 在命令窗口中輸入在命令窗口中輸入CREATE TABLECREATE TABLE命令,分別建立學生表命令,分別建立學生表studentstudent、成績表、成績表scorescore、課程表、課程表cousecouse,并要求對學生表,并要求對學生表中的中的“學號學號”和課程表中的和課程表中的“課程編號課程編號”字段建立主索引,字段建立主索引,對成績表中的對成績表中的“學號學號”和和“課程編號課程編號”字段建立候選索引。

53、字段建立候選索引。在新建成績表(在新建成績表(scorescore)命令中用)命令中用REFERENCESREFERENCES子句建立了子句建立了該表與其他兩個表的關聯(lián)。該表與其他兩個表的關聯(lián)。v (3 3)修改表結(jié)構(gòu))修改表結(jié)構(gòu)v (4 4)給成績表添加一條記錄或從數(shù)組中導入記錄。)給成績表添加一條記錄或從數(shù)組中導入記錄。 數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 5.2.2 5.2.2 本節(jié)知識點本節(jié)知識點v1 1完整性約束條件完整性約束條件v在案例中用到了在案例中用到了SQLSQL數(shù)據(jù)定義功能中的完整性約束數(shù)據(jù)定義功能中的完整性約束條件的使用。條件的使用。 v2

54、2使用使用SQLSQL插入命令插入命令v當表中定義了主索引或候選索引,相應的字段設當表中定義了主索引或候選索引,相應的字段設置成不能為空時,置成不能為空時,Visuai FoxProVisuai FoxPro的的INSERTINSERT或者或者APPENDAPPEND命令就無法使用了,因此這里使用命令就無法使用了,因此這里使用SQLSQL的插的插入命令。入命令。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 5.3 5.3 用用SQLSQL查詢命令查詢數(shù)據(jù)案例查詢命令查詢數(shù)據(jù)案例 v 案例說明案例說明 v 本案例要求在本案例要求在“學生學生- -成績成績- -課程課程”數(shù)據(jù)庫

55、基礎上,運用數(shù)據(jù)庫基礎上,運用SQLSQL查詢命令,對查詢命令,對stscstsc數(shù)據(jù)庫中數(shù)據(jù)實現(xiàn)單表的簡單查詢、數(shù)據(jù)庫中數(shù)據(jù)實現(xiàn)單表的簡單查詢、多表的連接查詢和復雜的嵌套查詢,靈活地運用數(shù)據(jù)庫內(nèi)多表的連接查詢和復雜的嵌套查詢,靈活地運用數(shù)據(jù)庫內(nèi)的數(shù)據(jù)為實際應用服務?;疽笕缦拢旱臄?shù)據(jù)為實際應用服務。基本要求如下:v (1 1)用)用SQLSQL的查詢命令有選擇地顯示表中的部分列。的查詢命令有選擇地顯示表中的部分列。v (2 2)利用)利用SQLSQL查詢功能實現(xiàn)計算查詢和分組計算查詢。查詢功能實現(xiàn)計算查詢和分組計算查詢。v (3 3)用)用SELECTSELECT命令進行多表的連接查詢。命

56、令進行多表的連接查詢。v (4 4)用嵌套查詢構(gòu)造復雜的查詢。)用嵌套查詢構(gòu)造復雜的查詢。數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v5.3.1 5.3.1 操作步驟操作步驟v1 1用簡單查詢實現(xiàn)表中部分列和記錄的顯示。用簡單查詢實現(xiàn)表中部分列和記錄的顯示。v(1 1)查詢?nèi)w學生的學號和姓名。)查詢?nèi)w學生的學號和姓名。v在命令窗口中鍵入下列命令:在命令窗口中鍵入下列命令:vSELECT SELECT 學號學號, ,姓名姓名 FROM studentFROM studentv(2 2)查詢?nèi)w學生的姓名和年齡。)查詢?nèi)w學生的姓名和年齡。v由于表中沒有直接的年齡字段,因此

57、可以在由于表中沒有直接的年齡字段,因此可以在SQLSQL查查詢命令中運用表達式來實現(xiàn)。在命令窗口中鍵入詢命令中運用表達式來實現(xiàn)。在命令窗口中鍵入下列命令:下列命令:vSELECT SELECT 姓名姓名,year(2003-09-01)-year(,year(2003-09-01)-year(出生日出生日期期) as ) as 年齡年齡 FROM studentFROM student數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v (3 3)查詢學校的院系名稱。)查詢學校的院系名稱。v 由于通過學生表可以看到學校的院系名單,但是會出現(xiàn)院由于通過學生表可以看到學校的院系名單,但

58、是會出現(xiàn)院系名重復,因此用系名重復,因此用DISTINCTDISTINCT子句去掉重復。命令如下:子句去掉重復。命令如下:v SELECT SELECT 院系院系 DISTINCT FROM studentDISTINCT FROM studentv (4 4)查找入學成績在)查找入學成績在460460分至分至500500分之間的學生信息,并分之間的學生信息,并按入學成績降序排序。按入學成績降序排序。v 在命令窗口中輸入下列命令:在命令窗口中輸入下列命令:v SELECT SELECT * * FROM student ; FROM student ;v WHERE WHERE 入學成績?nèi)雽W成

59、績 BETWEEN 460 AND 500;BETWEEN 460 AND 500;v ORDER BY ORDER BY 入學成績?nèi)雽W成績 DESCDESCv (5 5)查找金融系和建筑系學生的姓名和出生日期。命令)查找金融系和建筑系學生的姓名和出生日期。命令如下:如下:v SELECT SELECT 姓名姓名, ,出生日期出生日期, ,院系院系 FROM student; FROM student; v WHERE WHERE 院系院系 in(in(金融金融 , ,建筑建筑)數(shù)據(jù)庫系統(tǒng)及應用數(shù)據(jù)庫系統(tǒng)及應用第5章 結(jié)構(gòu)化查詢語言SQL v 2 2利用利用SQLSQL查詢功能實現(xiàn)實現(xiàn)計算查詢

60、和分組計算查詢。查詢功能實現(xiàn)實現(xiàn)計算查詢和分組計算查詢。v (1 1)求女生的人數(shù)、平均入學成績、往常入學成績最高分和入學成績最低分。)求女生的人數(shù)、平均入學成績、往常入學成績最高分和入學成績最低分。在在SQLSQL中通過計算查詢可以直接對查詢的結(jié)果進行計算。命令如下:中通過計算查詢可以直接對查詢的結(jié)果進行計算。命令如下:v SELECT COUNT(SELECT COUNT(* *) AS ) AS 女生人數(shù)女生人數(shù),AVG(,AVG(入學成績?nèi)雽W成績) AS ) AS 平均入學成績平均入學成績,;,;v MAX(MAX(入學成績?nèi)雽W成績) AS ) AS 最高分入學成績最高分最高分入學成績

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論