計(jì)算機(jī)二級(jí)vfp-SQL命令集合_第1頁(yè)
計(jì)算機(jī)二級(jí)vfp-SQL命令集合_第2頁(yè)
計(jì)算機(jī)二級(jí)vfp-SQL命令集合_第3頁(yè)
計(jì)算機(jī)二級(jí)vfp-SQL命令集合_第4頁(yè)
計(jì)算機(jī)二級(jí)vfp-SQL命令集合_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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)介

1、Vf講義第二部分第一節(jié) 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言1、 SQL概述(1 SQL(structured query language)是結(jié)構(gòu)化查詢語(yǔ)言的縮寫,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。SQL的核心是查詢,主要功能為:數(shù)據(jù)查詢(Select、數(shù)據(jù)定義(Create、Drop,Alter、數(shù)據(jù)操縱(Insert ,Update , Delete、數(shù)據(jù)控制(Grant , Revoke(2 特點(diǎn):A: 是一種一體化的語(yǔ)言B: 是一種高度非過(guò)程化的語(yǔ)言C: 非常簡(jiǎn)潔D: 既可在命令窗口中使用,也可在程序中使用2、 數(shù)據(jù)查詢(1 簡(jiǎn)單查詢A: 格式:select distinct 字段名列表 from 表名 whe

2、re 條件 select 姓名,性別,出生日期 from zgdaselect * from zgdaselect distinct 職稱 from zgdaselect distinct 性別,職稱from zgdaselect * from zgda where 性別=”女”select * from zgda where 職稱="教授"select * from zgda where 工資>700select 姓名,性別,婚否 from zgda where 婚否=.t.select * from zgda where 職稱="教授" and

3、 性別="男"select * from zgda where 性別="男" or 出生日期<=1975-01-01B: 注釋:Ø 可用通配符“*”來(lái)代表所有字段Ø distinct 表示唯一顯示,各個(gè)字段值完全一致的相同記錄只顯示一條記錄Ø where 條件構(gòu)成了條件查詢,如果缺省默認(rèn)為所有記錄Ø 查詢窗口可以按ESC鍵關(guān)閉(2 幾種特殊的運(yùn)算符A: inØ 格式:字段名 not in (表達(dá)式1,表達(dá)式2,)select * from zgda where 職稱 in("教授"

4、;,"助教"select * from zgda where 職稱 not in("助教","講師"B: betweenØ 格式1(函數(shù):not between(字段名,表達(dá)式1,表達(dá)式2)select * from zgda where between(工資,500,700Ø 格式2(短語(yǔ)): 字段名 not between 表達(dá)式1 and 表達(dá)式2字段的取值范圍在 或 不在:>=表達(dá)式1并且<=表達(dá)式2select * from zgda where not between(獎(jiǎng)金,100,200C

5、: likeØ 格式1(函數(shù): like(表達(dá)式,字段名select * from zgda where like("王*",姓名格式2(短語(yǔ)): 字段名 like 表達(dá)式select * from zgda where 姓名 like “_小_”(3 排序Ø 格式:select top n percent all / distinct 字段表達(dá)式 as 新字段名 from 表名 order by 排序字段列表 asc / desc order by 短語(yǔ)的使用,asc 表示升序,desc 表示降序,默認(rèn)升序select * from zgda orde

6、r by 工資select * from zgda order by 出生日期 descselect * from zgda order by 獎(jiǎng)金,工資 descselect * from zgda where 性別="女" order by 獎(jiǎng)金 desctop n percent 表示在符合查詢條件的所有記錄中,選取指定數(shù)量或百分比的記錄,Top短語(yǔ)必須與order by短語(yǔ)同時(shí)使用select top 3 * from zgda order by 出生日期select top 2 * from zgda where 婚否=.t. order by 工資 desc產(chǎn)生

7、新字段的方法,字段表達(dá)式 as 新字段名 select 姓名,職稱,工資+獎(jiǎng)金 as 實(shí)發(fā)工資 from zgdaselect 姓名,性別,year(date(-year(出生日期 as 年齡 from zgda where 職稱="助教" order by 年齡 desc(4 分組與計(jì)算查詢A: 計(jì)算查詢Ø sum(求和字段名 Ø avg(字段名Ø count(*Ø max(字段名Ø min(字段名select sum(工資 as 工資合計(jì) from zgda select sum(工資 as 工資合計(jì),avg(工資 as

8、 平均工資,max(工資 as 最高工資,min(工資 as 最低工資 from zgda where 性別=”男”select count(* as 職工人數(shù) from zgdaselect count(* as 職工人數(shù) from zgda where 職稱=”教授”注釋:以上函數(shù)均為列項(xiàng)求值;查詢中只要有任一個(gè)(也可為多個(gè))函數(shù),如果沒有g(shù)roup by 分組,則查詢結(jié)果只有表中最后一條記錄,如果有g(shù)roup by 分組,則查詢結(jié)果留下每一類最后一條記錄。如果使用了以上函數(shù),則在查詢結(jié)果中只有分組字段和統(tǒng)計(jì)字段有效,其他字段均無(wú)實(shí)際意義。B: 分組查詢:格式:select 字段表達(dá)式 a

9、s 新字段名 from 表名 where 條件 Group by 分類字段 having 條件注釋:Group by 按列的值對(duì)查詢的行進(jìn)行分組,查詢結(jié)果留下每一類最后一條記錄select 職稱,sum(工資 as 工資合計(jì) from zgda group by 職稱select 性別,count(* as 職工人數(shù) from zgda group by 性別select 職稱,性別,sum(工資 as 工資合計(jì),count(* as 人數(shù) from zgda group by 職稱,性別 order by 職稱 descwhere短語(yǔ)是指在原表中進(jìn)行條件篩選,也就是說(shuō),只有滿足條件的記錄才參

10、與分組。Select 職稱,count(* as 人數(shù) from zgda where 性別=”女” group by 職稱 Select 性別,sum(工資 as 工資合計(jì) from zgda where 職稱=”講師” group by 性別 select 職稱,性別,sum(工資+獎(jiǎng)金 as 工資總和,max(工資+獎(jiǎng)金 as 最高工資,avg(工資+獎(jiǎng)金 as 平均工資 from zgda group by 職稱,性別Having 包含在查詢結(jié)果中的組必須滿足的條件,即對(duì)分組的結(jié)果進(jìn)行篩選,去掉不滿足條件的分組,必須與Group by 同時(shí)使用select 職稱,count(* as

11、職工人數(shù) from zgda group by 職稱select 職稱,count(* as 職工人數(shù) from zgda group by 職稱 having 職工人數(shù)>=2如果有Group by短語(yǔ),而無(wú)order by 短語(yǔ)時(shí),查詢的結(jié)果默認(rèn)以分組字段的升序排列如果Where 和 Having 同時(shí)使用時(shí),先執(zhí)行Where ,再執(zhí)行Having補(bǔ)充:在查詢的過(guò)程當(dāng)中使用了統(tǒng)計(jì)函數(shù),并且查詢結(jié)果可能有多個(gè)值,此時(shí)使用group by 短語(yǔ)進(jìn)行分組,在分組了以后,每組對(duì)應(yīng)一條記錄(5 集合的并運(yùn)算(union)A: 是將兩個(gè)select 語(yǔ)句的查詢結(jié)果合并成一個(gè)查詢結(jié)果,默認(rèn)情況下,合

12、并的結(jié)果刪除重復(fù)的記錄。用all表示顯示所有記錄(包含重復(fù)記錄)B: 合并條件:Ø 列數(shù)相同,并且對(duì)應(yīng)字段的數(shù)據(jù)類型和寬度相同Ø 對(duì)應(yīng)字段的取值范圍相同合并格式:第一條完整的sql語(yǔ)句 union 第二條完整的sql 語(yǔ)句例如:sele * from zgda where 性別=”女” union sele * from zgda where 職稱=”教授”(6 利用空值查詢注:查詢空值時(shí)用: 字段名 is nullselect * from 訂購(gòu)單 where 訂購(gòu)日期 is null查詢不為空值時(shí)用: 字段名 is not nullselect * from 訂購(gòu)單 w

13、here 訂購(gòu)日期 is not null(7 保存查詢結(jié)果格式:select all / distinct 字段表達(dá)式 as 新字段名 top n percent from 表名 Group by 分類字段 having 條件 order by 排序字段列表asc / desc A: 輸出到臨時(shí)表中:into cursor 表名Ø 執(zhí)行完select 語(yǔ)句后,臨時(shí)表仍然保持打開和活動(dòng)狀態(tài),但為只讀Ø 一旦關(guān)閉臨時(shí)表,查詢結(jié)果則自動(dòng)被刪除B: 輸出到永久表中:into dbf / table 表名Ø 執(zhí)行完select 語(yǔ)句后,此表依然處于打開和活動(dòng)狀態(tài)Ø

14、; 這個(gè)表將永遠(yuǎn)保存在默認(rèn)目錄下C: 輸出到數(shù)組中: into array 數(shù)組名Ø 這里的數(shù)組為二維數(shù)組,每行一條記錄,每列對(duì)應(yīng)查詢結(jié)果的一列,數(shù)組中有幾行幾列由查詢結(jié)果中記錄以及字段來(lái)確定Ø 數(shù)組中可以存放n個(gè)值,但他只屬于一個(gè)內(nèi)存變量Ø 數(shù)組的下標(biāo)是從1開始的。D: 輸出到文本文件中:to file 文件名 additiveØ 擴(kuò)展名為 .txt,無(wú)格式僅是純文本Ø 有 additive表示將查詢結(jié)果追加到此文件內(nèi)容的后面3、 數(shù)據(jù)定義(1 建立表(若建立數(shù)據(jù)庫(kù)表,則必須事先建立或打開數(shù)據(jù)庫(kù))格式:create table 表名 free

15、 (字段名1 類型(寬度,小數(shù)位數(shù)) check 條件 error字符串 default 默認(rèn)值 NULL NOT NULL primary key unique, ,foreign key 索引表達(dá)式 tag 索引名 references 父表名 tag 父表的索引名 注釋:Ø free 說(shuō)明此表為自由表。 create table 注冊(cè) free(姓名 c(6,性別 c(2,出生年月 dØ 類型只能用代表字母。Ø check 為字段指定有效性規(guī)則;error 表示出錯(cuò)時(shí)的提示信息create table student(姓名 c(6,性別 c(2,年齡 i c

16、heck 年齡>=10 error "年齡超范圍"Ø Default 表示默認(rèn)值create table score(學(xué)號(hào) c(10,成績(jī) n(7,2 default 40create table 教師(姓名 c(6,性別 c(2 default "女",基本工資 n(8,2Ø NULL 表示字段中允許取空值;NOT NULL 表示字段中不能取空值。create table 職工(編號(hào) c(5,姓名 c(6,工資 n(5,2 null default .null.Ø primary key 表示建立主索引Ø

17、unique 表示建立候選索引Ø foreign key 表示建立普通索引,但不能單獨(dú)使用,在此之前必須先給父表建立主索引或侯選索引,建立普通索引的同時(shí)和父表建立永久性關(guān)系。若無(wú) tag 父表的索引名 選項(xiàng),則表示將關(guān)系建立在父表的主索引上。Ø 不能建立唯一索引(2 修改表結(jié)構(gòu)A: 字段Ø 修改字段名alter table 表名 rename column 原字段名 to 新字段名Ø 修改字段的寬度和類型alter table 表名 alter column 字段名 類型(寬度,小數(shù)位數(shù))Ø 添加新字段alter table 表名 add co

18、lumn 字段名 類型(寬度,小數(shù)位數(shù))Ø 刪除字段名alter table 表名 drop column 字段名B: 修改字段有效性Ø 修改規(guī)則及提示信息alter table 表名 alter 字段名 set check 條件 error 字符串Ø 修改字段的默認(rèn)值alter table 表名 alter 字段名 set default 默認(rèn)值 Ø 刪除規(guī)則及提示信息alter table 表名 alter 字段名 drop checkØ 刪除字段的默認(rèn)值alter table 表名 alter 字段名 drop default補(bǔ)充:添加新

19、字段的同時(shí)設(shè)置有效性規(guī)則C: 索引(表事先存在)Ø 建立主索引alter table 表名 add primary key 索引表達(dá)式 tag 索引名Ø 刪除主索引alter table 表名 drop primary keyØ 建立侯選索引alter table 表名 add unique 索引表達(dá)式 tag 索引名Ø 刪除侯選索引alter table 表名 drop unique tag 索引名Ø 建立兩表之間的永久關(guān)系(建立普通索引)alter table 當(dāng)前表(子表) add foreign key 索引表達(dá)式 tag 索引名 re

20、ferences 父表 tag父表的索引名Ø 刪除兩表之間的永久關(guān)系(刪除普通索引alter table 表名(子表 drop foreign key tag 索引名(3 表的刪除(物理刪除)A: 刪除自由表: drop table 表名B: 刪除數(shù)據(jù)庫(kù)表:Ø 打開數(shù)據(jù)庫(kù)Ø drop table 表名5、 操作功能(1 插入記錄A: 插入單條記錄insert into 表名 (字段名1,字段名2,) values (表達(dá)式1,表達(dá)式2,Ø 注釋:如果要向當(dāng)前表所有字段中插入所有值,則第一部分可以省略Ø 第二部分表達(dá)式的值必須與對(duì)應(yīng)的字段類型相同

21、B: 將數(shù)組中的值插入到表中Ø insert into 表名 from array 數(shù)組名(2 刪除記錄(邏輯刪除Ø delete from 表名 where 條件(3 有規(guī)律的修改記錄或替換記錄Ø update 表名 set 要修改的字段名=用誰(shuí)來(lái)修改 where 條件6、 聯(lián)接查詢(1 簡(jiǎn)單聯(lián)接查詢select 多表中字段名列表 from 多表列表 where 聯(lián)接條件Ø 基于多個(gè)表的查詢,查詢的結(jié)果可以出自多個(gè)表中找出工資多于1230元的職工號(hào)和他們所在的城市Select 職工號(hào),城市 from 職工,倉(cāng)庫(kù) where (工資>1230 and (職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào)找出工作面積大于400的倉(cāng)庫(kù)的職工號(hào)一級(jí)這些職工工作的城市Select 職工號(hào),城市 from 倉(cāng)庫(kù),職工 where (面積>400 and (職工.倉(cāng)庫(kù)號(hào)=倉(cāng)庫(kù).倉(cāng)庫(kù)號(hào)(2)嵌套查詢select 字段列表 f

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論