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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

VisualFoxPro程序設(shè)計(jì)第四章結(jié)構(gòu)化查詢語(yǔ)言SQLvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!本章主要內(nèi)容SQL語(yǔ)言概述4.1數(shù)據(jù)查詢4.2數(shù)據(jù)操作4.3數(shù)據(jù)定義vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!1.SQL的中英文名稱是什么?

2.SQL的語(yǔ)言功能是什么?

----結(jié)構(gòu)化查詢語(yǔ)言----StructuredQueryLanguageSQL語(yǔ)言概述vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!表4-1SQL語(yǔ)言的9個(gè)命令動(dòng)詞

SQL功能命令動(dòng)詞數(shù)據(jù)查詢Select數(shù)據(jù)操作插入記錄Insert更新記錄Update刪除記錄Delete數(shù)據(jù)定義定義基本表或索引Create刪除基本表或索引Drop修改基本表或索引Altervf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!1、單表無(wú)條件查詢:格式:SELECT…FROM…例1:將“學(xué)生”表中的學(xué)號(hào)、姓名信息檢索出來(lái)

select學(xué)號(hào),姓名from學(xué)生例2:將“學(xué)生”表中的專業(yè)信息檢索出來(lái),并去掉重復(fù)元組。

select專業(yè)from學(xué)生distinctvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!注意:去掉重復(fù)元組distinct所有屬性*,Select后多字段名之間vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!例2:從成績(jī)表中檢索出選修了課程編號(hào)為“02”的,并且成績(jī)大于80分的所有信息。

select*from成績(jī);

where課程編號(hào)="02"and成績(jī)>80vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!例4:從學(xué)生表中檢索出性別為“男”的學(xué)生的學(xué)號(hào)、姓名、性別、專業(yè)和年齡信息。select學(xué)號(hào),姓名,性別,專業(yè),

;year(date())-year(出生日期)as年齡;from學(xué)生;where性別=“男”vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)!3、多表連接查詢:格式:SELECT

…FROM

表1,表2,…;

WHERE查詢條件and連接條件例如學(xué)生表與成績(jī)表連接條件為:

學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)<表名1>.<公共字段名>=<表名2>.<公共字段名>連接條件vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)!例2:檢索學(xué)號(hào)為“200731001”的學(xué)生姓名以及所選修的課程名稱和授課教師姓名。select姓名,課程名稱,教師姓名;from學(xué)生,課程,成績(jī),教師;where

學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)and;成績(jī).課程編號(hào)=課程.課程編號(hào)and;課程.教師編號(hào)=教師.教師編號(hào)and;

學(xué)生.學(xué)號(hào)=“200731001"

vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!例1:查詢學(xué)生表中的全部信息,并按出生日期升序排序。select*;from學(xué)生;orderby出生日期ascvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!1)orderby對(duì)最終結(jié)果進(jìn)行排序,位置在最后2)asc/desc在排序的字段名后,默認(rèn)為升序3)按多列排序時(shí),各字段名之間用“,”相隔注意vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!例1:查詢出生日期在1988年8月1日至1990年12月30日之間的學(xué)生的信息。select*from學(xué)生;Where

出生日期

between

{^1988-08-01};

and{^1990-12-30}select*from學(xué)生;Where出生日期>=

{^1988-08-01}

;

and出生日期<={^1999-12-30}vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!例3:查詢沒(méi)有選修課程編號(hào)為“02”或“05”并且成績(jī)不及格的學(xué)生的學(xué)號(hào)、課程編號(hào)和成績(jī)。select*fromscore;where課程編號(hào)

notin

("02","05")and成績(jī)<60

vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!例5:查詢第二個(gè)漢字是“?!钡膶W(xué)生的學(xué)號(hào)、姓名、性別、專業(yè)。select學(xué)號(hào),姓名,性別,專業(yè)from學(xué)生;where姓名like"_海%"

vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!1、簡(jiǎn)單的計(jì)算查詢(用在select中,對(duì)查詢結(jié)果中數(shù)值型字段值進(jìn)行計(jì)算)注:

as新字段名:給結(jié)果指定字段別名(1)count(distinct字段名):統(tǒng)計(jì)數(shù)目count(*):統(tǒng)計(jì)元組個(gè)數(shù)(2)sum(字段名):求總和(3)avg(字段名):求平均值(4)max(字段名):求最大值(5)min(字段名):求最小值四、計(jì)算與分組查詢vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!例3:統(tǒng)計(jì)成績(jī)表中的最高分和最低分。select

max(成績(jī))as最高分,min(成績(jī))as最低分;from成績(jī)①用在select后②count(*):計(jì)算關(guān)系中所含元組個(gè)數(shù)③as新字段名:給計(jì)算結(jié)果指定字段名注意vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第18頁(yè)!例2:檢索出每個(gè)學(xué)生的學(xué)號(hào)、總分、平均分、最高分和最低分。select學(xué)號(hào),

sum(成績(jī))as總分,;

avg(成績(jī))as平均分,

;

max(成績(jī))as最高分,;

min(成績(jī))as最低分;from成績(jī);groupby學(xué)號(hào)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第19頁(yè)!學(xué)號(hào)課程編號(hào)成績(jī)XS0401C00296XS0402C00884XS0401C00367XS0403C01055XS0402C00782XS0402C00365XS0402C00989XS0401C00775例3:在成績(jī)表中查詢選修課程在3門以上(含3門)的每個(gè)學(xué)生的學(xué)號(hào)和平均成績(jī),并按平均成績(jī)升序排序注意:orderby后只能接字段名,不能接函數(shù)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第20頁(yè)!select學(xué)生.學(xué)號(hào),avg(成績(jī))as平均成績(jī)

from學(xué)生,成績(jī);where

學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)and;

專業(yè)=“英語(yǔ)”;

groupby學(xué)生.學(xué)號(hào)havingcount(*)>=3;orderby

平均成績(jī)desc查詢條件分組條件連接條件注意:先用where選擇滿足條件的元組,然后分組,再計(jì)算,最后去掉不滿足分組條件的記錄例4:檢索英語(yǔ)專業(yè)的學(xué)生選修課程在3門以上(含3門)的每個(gè)學(xué)生的學(xué)號(hào)和平均成績(jī),并按平均成績(jī)降序排序vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第21頁(yè)!(1)位置:where后,orderby前(2)having子句總是跟在groupby子句之后,不可以單獨(dú)使用(3)先where,再groupby,然后計(jì)算,最后having.注意vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第22頁(yè)!本節(jié)所用的四個(gè)表vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第23頁(yè)!格式:<字段名>ISNULL<字段名>ISNOTNULL六、利用空值查詢vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第24頁(yè)!1、顯示部分結(jié)果2、將結(jié)果存放在臨時(shí)文件中※3、將結(jié)果存放在永久表中七、查詢中的特殊選項(xiàng)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第25頁(yè)!例1:顯示成績(jī)最低的兩名學(xué)生成績(jī)信息。例2:顯示成績(jī)最高的那40%的學(xué)生成績(jī)信息select*top2fromscoreorderby成績(jī)ascselect*top40percentfromscoreorderby成績(jī)descvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第26頁(yè)!3、將結(jié)果存放在臨時(shí)文件中例3:將teacher表中的信息保存在臨時(shí)文件“教師”中。select*fromteacherintocursor教師vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第27頁(yè)!例4:將所有課程信息按學(xué)分降序保存永久表“課程”中。select*fromcourseorderby學(xué)分desc;intotable課程vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第28頁(yè)!數(shù)據(jù)操作插入記錄Insert更新記錄Update刪除記錄Delete4.2數(shù)據(jù)操作本節(jié)主要內(nèi)容vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第29頁(yè)!例1:向score表中插入一條記錄("1996468006","05",98)例2:向score表中插入一條記錄("05",98)insertintoscore(課程編號(hào),成績(jī));values("05",98)insertintoscore;values("1996468006","05",98)insertintoscore(學(xué)號(hào),課程編號(hào),成績(jī));values("1996468006“,"05",98)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第30頁(yè)!例1:給score表中所有成績(jī)加10分例2:給score表中所有不及格的成績(jī)加10分updatescoreset成績(jī)=成績(jī)+10updatescoreset成績(jī)=成績(jī)+10;where成績(jī)<60vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第31頁(yè)!格式:deletefrom表名[where…]

說(shuō)明:(1)當(dāng)不使用where時(shí),邏輯刪除表中全部記錄(2)物理刪除:Pack邏輯刪除三、刪除記錄vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第32頁(yè)!例2:物理刪除student表中年齡為20的學(xué)生記錄deletefromstudent;where

year(date())-year(出生日期)=20packvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第33頁(yè)!格式:createtable|dbf表名(

字段名1類型(寬度[,小數(shù)位數(shù)])[null|notnull][check規(guī)則|[error信息]][default表達(dá)式][primarykey|unique],字段名2

…,[foreignkey表達(dá)式tag表達(dá)式references表名1])一、表的定義vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第34頁(yè)!例2:用SQLCREATE命令建立“職工”表createtable職工(;倉(cāng)庫(kù)號(hào)C(5),;職工號(hào)C(5)primarykey,;工資Icheck(工資>=1000and工資<=5000);error"工資值的范圍在1000-5000!";default1200,;foreignkey倉(cāng)庫(kù)號(hào)tag倉(cāng)庫(kù)號(hào)references倉(cāng)庫(kù))vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第35頁(yè)!格式一:添加新字段altertable表名;add字段名類型(寬度)……

例1:為訂購(gòu)單表增加一個(gè)貨幣類型的總金額字段altertable訂購(gòu)單;add總金額Ycheck總金額>0;error“總金額應(yīng)該大于0!”[check規(guī)則|[error信息]][default表達(dá)式][primarykey|unique]三、修改表結(jié)構(gòu)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第36頁(yè)!格式三:更改字段名altertable表名;renamecolumn字段名to新字段名例3:將訂購(gòu)單表的總金額字段名改為金額altertable訂購(gòu)單;renamecolumn總金額to金額vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第37頁(yè)!格式五:修改或定義有效性規(guī)則altertable表名alter字段名setcheck…error…例5:修改或定義總金額字段的有效性規(guī)則altertable訂購(gòu)單1;alter總金額setcheck總金額>100;error“總金額應(yīng)該大于100!”vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第38頁(yè)!格式:

CREATEVIEW視圖名ASSELECT-select1、從單個(gè)表派生出來(lái)的視圖CREATEVIEWchengji_viewAS;SELECT學(xué)號(hào),課程編號(hào),成績(jī)FROMscore基本表四、視圖的定義vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第39頁(yè)!格式:DROPVIEW<視圖名>例:刪除視圖xuesheng_viewDROPVIEWxuesheng_view五、視圖的刪除vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第40頁(yè)!answer3、select*fromstudent;where專業(yè)=’計(jì)算機(jī)科學(xué)與技術(shù)’or專業(yè)=’中文’2、select*fromstudent;where出生日期>={^1983-02-02}and;出生日期<={^1985-02-02}1、select姓名,year(date())-year(出生日期)as年齡;fromstudent4、select學(xué)號(hào),姓名,性別,專業(yè),;year(date())-year(出生日期)as年齡fromstudent;where性別=“.F.”and入學(xué)時(shí)間={^1996-9-7}vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第41頁(yè)!訂貨管理vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第42頁(yè)!復(fù)習(xí)2-學(xué)生管理1、檢索出選修了“藝術(shù)設(shè)計(jì)”的學(xué)生的信息及成績(jī),并將結(jié)果按出生日期升序排列,出生日期相同的按成績(jī)降序排列,最后將查詢結(jié)果保存到表cc.dbf中。5、檢索出姓郭的學(xué)生的姓名和入學(xué)時(shí)間,并按入學(xué)時(shí)間降序排列,最后將查詢結(jié)果保存到表xs.dbf中4、檢索出成績(jī)?cè)?0和80之間的學(xué)生的姓名、課程名稱和成績(jī),最后將查詢結(jié)果保存到表dd.dbf中vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第43頁(yè)!復(fù)習(xí)2-分組和計(jì)算(學(xué)生管理)Eg1:檢索出所有學(xué)生的學(xué)號(hào)、總分、平均分、最高分和最低分。select學(xué)號(hào),sum(成績(jī))as總分,;

avg(成績(jī))as平均分,;

max(成績(jī))as最高分,;

min(成績(jī))as最低分;fromscorevf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第44頁(yè)!復(fù)習(xí)2-分組和計(jì)算(學(xué)生管理)Eg3:檢索出“計(jì)算機(jī)科學(xué)與技術(shù)系”所有學(xué)生的學(xué)號(hào)、姓名、總分、平均分、最高分和最低分,并將結(jié)果按總分降序排序。selectstudent.學(xué)號(hào),姓名,sum(成績(jī))as總分,;

avg(成績(jī))as平均分,;

max(成績(jī))as最高分,;

min(成績(jī))as最低分;fromstudent,score;wherestudent.學(xué)號(hào)=score.學(xué)號(hào)and;

專業(yè)=“計(jì)算機(jī)科學(xué)與技術(shù)”

orderby總分descvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第45頁(yè)!SQL查詢語(yǔ)句的總格式:Select…..From表名[intocursor…|intotable…][where查詢條件[and聯(lián)接條件]][groupby….[having….]][orderby…..]*,字段名,as別名,函數(shù),top短語(yǔ)說(shuō)明查詢內(nèi)容來(lái)自哪個(gè)些表說(shuō)明條件按某列分組,分組條件對(duì)查詢結(jié)果排序字段名(not)between…and…,likein,!=,is

nullvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第46頁(yè)!selectfromSum(成績(jī))as別名*vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第47頁(yè)!wherenotvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第48頁(yè)!groupbyhavingvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第49頁(yè)!IntotableIntocursorvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第50頁(yè)!6、查詢每門課程的平均成績(jī),并按平均成績(jī)降序排列。Selectavg(成績(jī))as平均成績(jī);fromscore;groupby課程編號(hào);Orderby平均成績(jī)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第51頁(yè)!本節(jié)主要內(nèi)容1、基本查詢2、排序查詢3、帶特殊運(yùn)算符的條件查詢4、計(jì)算與分組查詢5、嵌套查詢6、利用空值查詢7、查詢中的特殊選項(xiàng)4.1數(shù)據(jù)查詢vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第52頁(yè)!

select…from…[where…]查詢內(nèi)容(字段名)來(lái)自哪(表名)查詢條件(表達(dá)式)一、基本查詢格式:vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第53頁(yè)!例3:查詢“學(xué)生”表中的所有信息。方法一:

select學(xué)號(hào),姓名,性別,出生日期,專業(yè),家庭住址;

from學(xué)生方法二:

select

*

from學(xué)生vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第54頁(yè)!2、單表?xiàng)l件查詢格式:SELECT…FROM…WHERE…例1:查詢成績(jī)表中成績(jī)大于80分的學(xué)號(hào)。

select學(xué)號(hào)fromscore;

where

成績(jī)>80注:distinct短語(yǔ)的位置distinctvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第55頁(yè)!例3:檢索出選修了課程編號(hào)為“02”或“05”的,并且成績(jī)大于80分的所有信息。

select*from成績(jī);

where(課程編號(hào)="02"or課程編號(hào)="05");

and成績(jī)>80vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第56頁(yè)!2、單表?xiàng)l件查詢:

(1)條件中,涉及到字符型字段值,加定界符(“”)(2)多個(gè)條件之間用and/or相連(3)一行書寫不下,除最后一行,各行結(jié)尾加分號(hào)(;)注意vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第57頁(yè)!例1:檢索出成績(jī)大于80分的學(xué)號(hào)、姓名、性別和成績(jī)select

學(xué)生.學(xué)號(hào),姓名,性別,成績(jī);from

學(xué)生,成績(jī);where成績(jī)>80and學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第58頁(yè)!格式:注:Asc表示升序Desc表示降序select…from…[

where…][orderby字段名1[asc|desc],字段名2[asc|desc]…]二、排序查詢:vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第59頁(yè)!例2:查詢學(xué)生信息,按學(xué)生的專業(yè)升序排序,若專業(yè)相同,則按學(xué)生的出生日期降序進(jìn)行排序。select*from學(xué)生;orderby專業(yè)asc

,出生日期descvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第60頁(yè)!1、確定范圍格式:BETWEEN……AND……

表示在…和…之間包含界值NOTBETWEEN……AND……

表示不在…和…之間注意三、帶特殊運(yùn)算符的條件查詢vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第61頁(yè)!2、確定集合格式:字段名

[NOT]IN(表達(dá)式1,表達(dá)式2,…)例2:查詢選修了課程編號(hào)為“02”或“05”或“04”,并且成績(jī)?cè)?0分以上的學(xué)生的學(xué)號(hào)、課程編號(hào)和成績(jī)。

select學(xué)號(hào),課程編號(hào),成績(jī);From成績(jī);where

課程編號(hào)

in

("02","04","05");

and成績(jī)>=80vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第62頁(yè)!3、部分匹配查詢格式:字段名

like字符型常量通配符:%:0個(gè)或多個(gè)字符_:一個(gè)字符

例4:查詢所有姓“李”的同學(xué)的學(xué)號(hào)、姓名、性別、專業(yè)。select學(xué)號(hào),姓名,性別,專業(yè)from學(xué)生;where姓名like"李%"vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第63頁(yè)!4、不等于(!=)例6:查詢家庭住址在哈爾濱并且不是學(xué)商務(wù)英語(yǔ)專業(yè)的學(xué)生信息。select*from學(xué)生;where家庭住址="哈爾濱";

and專業(yè)!=“商務(wù)英語(yǔ)"

vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第64頁(yè)!例1:統(tǒng)計(jì)學(xué)生表中有多少個(gè)學(xué)生記錄。selectcount(*)as人數(shù)from學(xué)生例2:求學(xué)號(hào)為0104的學(xué)生的平均成績(jī)。selectavg(成績(jī))as平均分

from成績(jī);where學(xué)號(hào)="200731001"vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第65頁(yè)!2、分組與計(jì)算查詢格式:GROUPBY

<字段名>[HAVING

<分組條件表達(dá)式>]例1:檢索出每個(gè)學(xué)生的學(xué)號(hào)平均平均分。select學(xué)號(hào),avg(成績(jī))as平均分;from成績(jī);groupby學(xué)號(hào)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第66頁(yè)!學(xué)號(hào)課程編號(hào)成績(jī)XS0401C00296XS0402C00884XS0401C00367XS0403C01055XS0402C00782XS0402C00365XS0402C00989XS0401C00775學(xué)號(hào)課程編號(hào)成績(jī)XS0401C00296XS0401C00367XS0401C00775XS0402C00884XS0402C00782XS0402C00365XS0402C00989XS0403C01055學(xué)號(hào)總分平均分最高分最低分XS040116381.29667XS0402320808965XS040355555555vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第67頁(yè)!學(xué)號(hào)課程編號(hào)成績(jī)XS0401C00296XS0401C00367XS0401C00775XS0402C00884XS0402C00782XS0402C00365XS0402C00989XS0403C01055學(xué)號(hào)平均分XS040181.2XS040280學(xué)號(hào)平均分XS040280XS040181.2select學(xué)號(hào),avg(成績(jī))as平均成績(jī)

from成績(jī);groupby

學(xué)號(hào)havingcount(*)>=3;orderby

平均成績(jī)select學(xué)號(hào),avg(成績(jī))as平均成績(jī)

from成績(jī);groupby

學(xué)號(hào)havingcount(*)>=3;orderby

平均成績(jī)分組條件vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第68頁(yè)!例5:檢索除“商務(wù)英語(yǔ)”專業(yè)之外的,選修課程在3門以上(含3門)的每個(gè)學(xué)生的學(xué)號(hào)、姓名和平均成績(jī),并按將結(jié)果按平均成績(jī)降序排序,保存到表aa.dbf中select學(xué)生.學(xué)號(hào),姓名,avg(成績(jī))as平均成績(jī);from學(xué)生,成績(jī);where學(xué)生.學(xué)號(hào)=成績(jī).學(xué)號(hào)and專業(yè)!=”商務(wù)英語(yǔ)”;groupbystudent.學(xué)號(hào)having

count(*)>=3;orderby

平均成績(jī)

descintotable

aavf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第69頁(yè)!(查詢結(jié)果出自一個(gè)表,條件涉及多個(gè)表)格式:

SELECT…FROM表1WHERE字段名in;(SELECT字段名FROM表2WHERE…)五、嵌套查詢vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第70頁(yè)!例1:檢索沒(méi)有授課的教師信息。例2:檢索選修了課程的學(xué)生信息。例3:找出沒(méi)有選課的學(xué)生的信息。select*fromteacher;where教師編號(hào)

notin(select教師編號(hào)fromcourse)select*fromstudent;where學(xué)號(hào)notin(select學(xué)號(hào)fromscore)select*fromstudent;where學(xué)號(hào)in(select學(xué)號(hào)fromscore)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第71頁(yè)!例1:查詢出還沒(méi)有確定聯(lián)系方式的學(xué)生記錄。例2:查詢已經(jīng)確定了聯(lián)系方式的學(xué)生信息。select*fromstudentwhere聯(lián)系方式isnullselect*fromstudentwhere聯(lián)系方式isnotnull不能寫成“=NULL”或“!=NULL”

注意vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第72頁(yè)!1、顯示部分結(jié)果(顯示前幾項(xiàng))格式:topn[percent]①位置:緊跟select后②top短語(yǔ)要與orderby同時(shí)使用vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第73頁(yè)!2、將結(jié)果存放在臨時(shí)文件中格式:intocursor臨時(shí)文件名注意:(1)文件關(guān)閉后,自動(dòng)刪除(2)位置:from短語(yǔ)后或最后vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第74頁(yè)!4、將結(jié)果存放在永久表中

格式:intotable表名注意:(1)查看結(jié)果可以使用下面的命令操作use表名browse(2)通過(guò)該子句可實(shí)現(xiàn)表的復(fù)制。

vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第75頁(yè)!Select…..From表名[where查詢條件[and聯(lián)接條件]][groupby….[having….]][orderby…..][intocursor|intotable]字段名,as…,函數(shù)說(shuō)明查詢內(nèi)容來(lái)自哪個(gè)些表說(shuō)明條件按某列分組,分組條件對(duì)查詢結(jié)果排序保存查詢結(jié)果SQL查詢語(yǔ)句的總格式vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第76頁(yè)!格式1:insertinto表名;values(表達(dá)式1,表達(dá)式2,…,表達(dá)式n)格式2:insertinto表名(字段名1,字段名2,…);values(表達(dá)式1,表達(dá)式2,…)一、插入記錄vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第77頁(yè)!格式:update表名;set字段名1=表達(dá)式1,字段名2=表達(dá)式2….;[where…]說(shuō)明:(1)當(dāng)不使用where時(shí),則更新全部記錄二、更新記錄vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第78頁(yè)!例3:將course表中課程編號(hào)為“01”的課程的學(xué)分加2分。例4:將成績(jī)大于70分的的所有課程的成績(jī)提高10%。updatecourseset學(xué)分=學(xué)分+2where課程編號(hào)="01"updatescoreset成績(jī)=成績(jī)*1.1;Where成績(jī)>70vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第79頁(yè)!例1:將teacher表中職稱為助教的教師信息刪除。deletefromteacherwhere職稱="助教"vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第80頁(yè)!本節(jié)主要內(nèi)容1、定義表2、刪除表3、修改表4、定義視圖4.3數(shù)據(jù)定義vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第81頁(yè)!例1:用SQLCREATE命令建立“倉(cāng)庫(kù)”表createtable倉(cāng)庫(kù)(;

倉(cāng)庫(kù)號(hào)C(5)primarykey,;

面積N(20),;

城市C(20))vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第82頁(yè)!格式:droptable表名例1:刪除訂貨管理數(shù)據(jù)庫(kù)中的倉(cāng)庫(kù)表droptable倉(cāng)庫(kù)一、表的刪除vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第83頁(yè)!格式二:修改已有字段的類型和寬度altertable表名;alter字段名類型(寬度)例2:將訂購(gòu)單表的訂購(gòu)單號(hào)字段的寬度由原來(lái)5改為6altertable訂購(gòu)單;alter訂購(gòu)單號(hào)C(6)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第84頁(yè)!格式四:刪除已有字段altertable表名dropcolumn字段名例4:刪除訂購(gòu)單1表中的金額字段altertable訂購(gòu)單1;dropcolumn金額vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第85頁(yè)!格式六:刪除有效性規(guī)則altertable表名alter字段名dropcheck例6:刪除總金額字段的有效性規(guī)則altertable訂購(gòu)單1;alter總金額dropcheckvf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第86頁(yè)!2、從多個(gè)表派生出來(lái)的視圖例:建立一個(gè)視圖xuesheng_view,要求該視圖包含1980年1月1日之后出生的學(xué)生的學(xué)號(hào),姓名,平均成績(jī)。

CREATEVIEWxuesheng_viewAS;

SELECTstudent.學(xué)號(hào),姓名,avg(成績(jī))as平均成績(jī);FROMstudent,score;WHEREstudent.學(xué)號(hào)=score.學(xué)號(hào)and;出生日期>{^1980-01-01};GROUPBYscore.學(xué)號(hào)vf結(jié)構(gòu)化查詢語(yǔ)言SQL共99頁(yè),您現(xiàn)在瀏覽的是第87頁(yè)!復(fù)習(xí)1---學(xué)生管理1.查詢student表中學(xué)生的姓名和年齡。2.查詢出生日期在1983年2月2日到1985年2月2日之間的學(xué)生的信息。3.查詢“計(jì)算機(jī)科學(xué)與技術(shù)系”和“中文系”學(xué)生的信息。4、從student表中檢索出性別為“男”且入學(xué)時(shí)間為1996年9月7日的學(xué)生

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論