《第7章 關(guān)系數(shù)據(jù)庫標準語言SQL》由會員分享,可在線閱讀,更多相關(guān)《第7章 關(guān)系數(shù)據(jù)庫標準語言SQL(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,學生表,.dbf,關(guān)系數(shù)據(jù)庫標準語言,SQL,SQL(structured query language),是結(jié)構(gòu)化查詢語言。,SQL,已經(jīng)成為關(guān)系數(shù)據(jù)庫的標準語言,所以現(xiàn)在所有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持,SQL,,,它包括一下三部分:,一、查詢功能,(SELECT),二、操作功能,(INSERT,UPDATE,DELETE),三、定義功能,(CREATE,DROP,ALTER),一、查詢功能,SQL,的核心是查詢。,SQL,的查詢命令也稱作,select,命令,它的基本形式由,select-from-wh
2、ere,查詢塊組成。,其中主要短語的含義如下:,Select,:,說明要查詢的數(shù)據(jù)項;,(FIELDS ),From,:,說明要查詢的數(shù)據(jù)來自哪個或哪些表;,Where,:,說明查詢條件;,(FOR),order by,:,可以將查詢結(jié)果排序。,第五章 關(guān)系數(shù)據(jù)庫標準語言,SQL,一、查詢功能,1,、簡單查詢,2,、簡單的聯(lián)接查詢,3,、幾個特殊的運算符,4,、排序,5,、簡單的計算查詢,6,、分組與計算查詢,(1)select *from,學生表,use,學生表,browse,(2)select,姓名,入學成績,from,學生表,(3)select *from,學生表,where,性別,=“
3、,男”,select,姓名,入學成績,班級,from,學生表,where,入學成績,500,(5)select,姓名,班級,from,學生表,where,班級,in(,計算機,會計,),1,、簡單查詢(單表查詢操作),select,學生表,.,學號,學生表,.,姓名,成績表,.,課程號,成績表,.,成績,from,學生表,inner join,成績表,on,學生表,.,學號,=,成績表,.,學號,2,、簡單的聯(lián)接查詢,(,多表操作類似與,join,命令,),例題:連接顯示“學生表”和“成績表”中學號,姓名,課程號,成績字段,3,、幾個特殊的運算符,(between,like),例,1,、顯示入
4、學成績在,480,到,500,范圍內(nèi)的學生信息。,Select*from,學生表,where,入學成績,between 480 and 500,例,2,、顯示出會計系的學生信息,select *from,學生表,where,班級,like ,會計,select *from,學生表,where,班級,=,會計,例,3,、顯示出不是會計系的全部部門信息,。,select *from,學生表,where,部門,!=,會計,4,、排序(,ORDER BY,),order by,后必須對應(yīng)查詢結(jié)果的一個列,,asc,升序,desc,降序,默認為升序。,例,1,、按學生的入學成績值升序顯示出全部學生信息,
5、Select *from,學生表,order by,入學成績,例,2,、按學生的入學成績值降序顯示出全部學生信息,Select *from,學生表,order by,入學成績,desc,例,3,、先按班級排序,再按入學成績排序并輸出全部學生信息,Select *from,學生表,order by,班級,入學成績,5,、簡單的計算查詢,例,1,、找出學生所在班級的數(shù)目,。,select count (*)from,學生表,select count (dist,班級,)from,學生表,select count (dist,班級,)as,班級數(shù),from,學生表,例,2,、求所有同學入學成績總和,
6、。,select sum(,入學成績,)from,學生表,例,3,、求會計系學生的最高入學成績,。,select max(,入學成績,)from,學生表,where,部門,=“,會計”,例,4,、求所有同學的平均入學成績和最高、最低入學成績,select,avg,(,入學成績,)as,平均成績,max(,入學成績,)as,最高分,min(,入學成績,)as,最低分,from,學生表,6,、分組與計算查詢,例,1,、求每個班級的學生的平均入學成績。,Select,班級,avg,(,入學成績,)from,學生表,group by,班級,例,2,、統(tǒng)計各班級的學生人數(shù),Select,班級,count
7、(*)as,人員數(shù),from,學生表,group by,班級,例,3,、統(tǒng)計各班級的女生人數(shù),Select,班級,count(*)as,女生人數(shù),from,學生表,group by,班級,where,性別,=,女,在查詢結(jié)果中,可以使用庫函數(shù)進行查詢:,Counst,():,對一列中的值計算個數(shù)。,Counst,(*):,計算表中記錄的個數(shù)。,Sum():,求某一列數(shù)值型字段的總和。,Avg,():,求某一列數(shù)值型字段的平均值。,Max():,求一列數(shù)值的最大值。,Min():,求一列數(shù)值的最小值。,Select,sql,命令的基本結(jié)構(gòu):,Select ,范圍限制,as,標題,;,from ,
8、聯(lián)接方式,join,表名,on,聯(lián)接條件,;,where ,;,order by ,group by ,二、,操作功能(插入、更新、刪除),1,、插入,例 向?qū)W生表中插入元組,。(王明,,503,,計算機),Insert into,學生表,(,姓名,入學成績,班級,)values(“,王明立”,503,“,計算機”,),2,、更新,例,1,、給“學生表”的計算機系學生的入學成績,10%,。,Update,學生表,set,入學成績,=,入學成績*,1.10 where,班級,=“,計算機”,例,2,、給所有職工的工資增加,100,元。,Update,學生表,set,工資,=,工資,+100,3,
9、、刪除,例,1,、刪除計算機班同學的記錄。,Delete from,學生表,where,部門,=“,計算機”,三、定義功能,1,、表的定義,例,1,、,create table,成績表,(,學號,c(8),課程號,c(4),成績,n(6),2,、,表的刪除,例,1,、,drop table,成績表,3,、表結(jié)構(gòu)的修改,例,1,、將“成績表”的“課程號”字段的寬度由原來的,4,改為,6,。,Alter table,成績表,alter,課程號,c(6),例,2,、將“學生表”中的“班級”字段改為“系別,”。,Alter table,學生表,rename column,班級,to,系別,例,3,、刪除“學生表”中的“入學成績”字段。,Alter table,學生表,drop column,入學成績,例,4,、為“學生表”增加一個年齡字段。,Alter table,學生表,add,年齡,n,限定詞有:,All:,所有符合條件的,Distinct:,符合條件重復(fù)的只出現(xiàn)一次,Top n:,限定符合條件的前,n,條,(,必須與,order by,連用,),Top n percent:,限定符合條件的前,n%,條。,