《sql語(yǔ)言入門(mén)教程》word版.doc
《《sql語(yǔ)言入門(mén)教程》word版.doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《《sql語(yǔ)言入門(mén)教程》word版.doc(50頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、SQL語(yǔ)言入門(mén)教程第一課 簡(jiǎn)介SQL是英文Structured Query Language的縮寫(xiě),意思為結(jié)構(gòu)化查詢(xún)語(yǔ)言。 SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句可以用來(lái)執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。 目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語(yǔ)言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫(kù)都對(duì)SQL語(yǔ)句進(jìn)行了再開(kāi)發(fā)和擴(kuò)展,但是包括Select, Insert, Up
2、date, Delete, Create, 以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來(lái)完成幾乎所有的數(shù)據(jù)庫(kù)操作。 下面,我們就來(lái)詳細(xì)介紹一下SQL語(yǔ)言的基本知識(shí)。一個(gè)典型的關(guān)系型數(shù)據(jù)庫(kù)通常由一個(gè)或多個(gè)被稱(chēng)作表格的對(duì)象組成。數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)或信息都被保存在這些數(shù)據(jù)庫(kù)表格中。數(shù)據(jù)庫(kù)中的每一個(gè)表格都具有自己唯一的表格名稱(chēng),都是由行和列組成,其中每一列包括了該列名稱(chēng),數(shù)據(jù)類(lèi)型,以及列的其它屬性等信息,而行則具體包含某一列的記錄或數(shù)據(jù)。以下,是一個(gè)名為太平洋網(wǎng)絡(luò)學(xué)院的數(shù)據(jù)庫(kù)表格的實(shí)例。欄目用戶(hù)群新手上路電腦初學(xué)者軟件教室一般的電腦用戶(hù)設(shè)計(jì)教室電腦設(shè)計(jì)愛(ài)好者開(kāi)發(fā)教室電腦編程人員該表格中“欄目”,
3、“用戶(hù)群”就是兩個(gè)不同的列,而表格中的每一行則包含了具體的表格數(shù)據(jù)。1. 創(chuàng)建表格2. 數(shù)據(jù)查詢(xún)3. 向表格中添加、更新、刪除記錄4. 刪除數(shù)據(jù)庫(kù)表格第二課 創(chuàng)建表格SQL語(yǔ)言中的create table語(yǔ)句被用來(lái)建立新的數(shù)據(jù)庫(kù)表格。create table語(yǔ)句的使用格式如下:create table tablename(column1 data type,column2 data type,column3 data type);如果用戶(hù)希望在建立新表格時(shí)規(guī)定列的限制條件,可以使用可選的條件選項(xiàng):create table tablename(column1 data type constrai
4、nt,column2 data type constraint,column3 data type constraint);舉例如下:create table employee(firstname varchar(15),lastname varchar(20),age number(3),address varchar(30),city varchar(20);簡(jiǎn)單來(lái)說(shuō),創(chuàng)建新表格時(shí),在關(guān)鍵詞create table后面加入所要建立的表格的名稱(chēng),然后在括號(hào)內(nèi)順次設(shè)定各列的名稱(chēng),數(shù)據(jù)類(lèi)型,以及可選的限制條件等。注意,所有的SQL語(yǔ)句在結(jié)尾處都要使用“;”符號(hào)。使用SQL語(yǔ)句創(chuàng)建的數(shù)據(jù)庫(kù)表格和表
5、格中列的名稱(chēng)必須以字母開(kāi)頭,后面可以使用字母,數(shù)字或下劃線(xiàn),名稱(chēng)的長(zhǎng)度不能超過(guò)30個(gè)字符。注意,用戶(hù)在選擇表格名稱(chēng)時(shí)不要使用SQL語(yǔ)言中的保留關(guān)鍵詞,如select, create, insert等,作為表格或列的名稱(chēng)。數(shù)據(jù)類(lèi)型用來(lái)設(shè)定某一個(gè)具體列中數(shù)據(jù)的類(lèi)型。例如,在姓名列中只能采用varchar或char的數(shù)據(jù)類(lèi)型,而不能使用number的數(shù)據(jù)類(lèi)型。SQL語(yǔ)言中較為常用的數(shù)據(jù)類(lèi)型為:char(size):固定長(zhǎng)度字符串,其中括號(hào)中的size用來(lái)設(shè)定字符串的最大長(zhǎng)度。Char類(lèi)型的最大長(zhǎng)度為255字節(jié)。varchar(size):可變長(zhǎng)度字符串,最大長(zhǎng)度由size設(shè)定。number(size
6、):數(shù)字類(lèi)型,其中數(shù)字的最大位數(shù)由size設(shè)定。Date:日期類(lèi)型。number(size,d):數(shù)字類(lèi)型,size決定該數(shù)字總的最大位數(shù),而d則用于設(shè)定該數(shù)字在小數(shù)點(diǎn)后的位數(shù)。最后,在創(chuàng)建新表格時(shí)需要注意的一點(diǎn)就是表格中列的限制條件。所謂限制條件就是當(dāng)向特定列輸入數(shù)據(jù)時(shí)所必須遵守的規(guī)則。例如,unique這一限制條件要求某一列中不能存在兩個(gè)值相同的記錄,所有記錄的值都必須是唯一的。除unique之外,較為常用的列的限制條件還包括not null和primary key等。not null用來(lái)規(guī)定表格中某一列的值不能為空。primary key則為表格中的所有記錄規(guī)定了唯一的標(biāo)識(shí)符。第三課 數(shù)
7、據(jù)查詢(xún)?cè)诒姸嗟腟QL命令中,select語(yǔ)句應(yīng)該算是使用最頻繁的。select語(yǔ)句主要被用來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)并返回符合用戶(hù)查詢(xún)標(biāo)準(zhǔn)的結(jié)果數(shù)據(jù)。Select語(yǔ)句的語(yǔ)法格式如下:select column1 , column2,etc from tablenamewhere condition;( 表示可選項(xiàng))select語(yǔ)句中位于select關(guān)鍵詞之后的列名用來(lái)決定那些列將作為查詢(xún)結(jié)果返回。用戶(hù)可以按照自己的需要選擇任意列,還可以使用通配符“*”來(lái)設(shè)定返回表格中的所有列。select語(yǔ)句中位于from關(guān)鍵詞之后的表格名稱(chēng)用來(lái)決定將要進(jìn)行查詢(xún)操作的目標(biāo)表格。Select語(yǔ)句中的where可選從句用
8、來(lái)規(guī)定哪些數(shù)據(jù)值或哪些行將被作為查詢(xún)結(jié)果返回或顯示。在where條件從句中可以使用以下一些運(yùn)算符來(lái)設(shè)定查詢(xún)標(biāo)準(zhǔn):= 等于 大于= 大于等于= 小于等于 不等于除了上面所提到的運(yùn)算符外,LIKE運(yùn)算符在where條件從句中也非常重要。LIKE運(yùn)算符的功能非常強(qiáng)大,通過(guò)使用LIKE運(yùn)算符可以設(shè)定只選擇與用戶(hù)規(guī)定格式相同的記錄。此外,我們還可以使用通配符“%”用來(lái)代替任何字符串。舉例如下:select firstname, lastname, cityfrom employeewhere firstname LIKE E%;(注意,字符串必須被包含在單括號(hào)內(nèi))上述SQL語(yǔ)句將會(huì)查詢(xún)所有名稱(chēng)以E開(kāi)頭的
9、姓名。或者,通過(guò)如下語(yǔ)句:select * from employeewhere firstname = May;查詢(xún)所有名稱(chēng)為May的行。第四課 向表格中添加、更新、刪除記錄添加新記錄SQL語(yǔ)言使用insert語(yǔ)句向數(shù)據(jù)庫(kù)表格中插入或添加新的數(shù)據(jù)行。Insert語(yǔ)句的使用格式如下:insert into tablename(first_column,.last_column)values (first_value,.last_value);例如:insert into employee(firstname, lastname, age, address, city)values (Li,Mi
10、ng,45, No.77 Changan Road,Beijing);簡(jiǎn)單來(lái)說(shuō),當(dāng)向數(shù)據(jù)庫(kù)表格中添加新記錄時(shí),在關(guān)鍵詞insert into后面輸入所要添加的表格名稱(chēng),然后在括號(hào)中列出將要添加新值的列的名稱(chēng)。最后,在關(guān)鍵詞values的后面按照前面輸入的列的順序?qū)?yīng)的輸入所有要添加的記錄值。更新記錄SQL語(yǔ)言使用update語(yǔ)句更新或修改滿(mǎn)足規(guī)定條件的現(xiàn)有記錄。update語(yǔ)句的格式為:update tablenameset columnname = newvalue , nextcolumn = newvalue2.where columnname OPERATOR value and|or
11、 column OPERATOR value;例如:update employeeset age = age+1where first_name= Maryand last_name= Williams;使用update語(yǔ)句時(shí),關(guān)鍵一點(diǎn)就是要設(shè)定好用于進(jìn)行判斷的where條件從句。刪除記錄SQL語(yǔ)言使用delete語(yǔ)句刪除數(shù)據(jù)庫(kù)表格中的行或記錄。Delete語(yǔ)句的格式為:delete from tablenamewhere columnname OPERATOR value and|or column OPERATOR value;例如:delete from employeewhere la
12、stname = May;簡(jiǎn)單來(lái)說(shuō),蕩需要?jiǎng)h除某一行或某個(gè)記錄時(shí),在delete from關(guān)鍵詞之后輸入表格名稱(chēng),然后在where從句中設(shè)定刪除記錄的判斷條件。注意,如果用戶(hù)在使用delete語(yǔ)句時(shí)不設(shè)定where從句,則表格中的所有記錄將全部被刪除。第五課 刪除數(shù)據(jù)庫(kù)表格在SQL語(yǔ)言中使用drop table命令刪除某個(gè)表格以及該表格中的所有記錄。drop table命令的使用格式為:drop table tablename;例如:drop table employee;如果用戶(hù)希望將某個(gè)數(shù)據(jù)庫(kù)表格完全刪除,只需要在drop table命令后輸入希望刪除的表格名稱(chēng)即可。drop table命
13、令的作用與刪除表格中的所有記錄不同。刪除表格中的全部記錄之后,該表格仍然存在,而且表格中列的信息不會(huì)改變。而使用drop table命令則會(huì)將整個(gè)數(shù)據(jù)庫(kù)表格的所有信息全部刪除。以上,我們對(duì)SQL語(yǔ)言主要的命令和語(yǔ)句進(jìn)行了較為詳細(xì)的介紹。應(yīng)該說(shuō)SQL語(yǔ)句的語(yǔ)法結(jié)構(gòu)和風(fēng)格還是相當(dāng)簡(jiǎn)單和直觀的,只要用戶(hù)結(jié)合實(shí)踐多加練習(xí),一定會(huì)在短期內(nèi)迅速掌握。以Store_Information數(shù)據(jù)表為例,我們可以在GROUP BY一節(jié)中所使用的SQL命令中設(shè)置如下字段和數(shù)據(jù)表別名:SELECT A1.store_name Store, SUM(Sales) Total SalesFROM Store_Inform
14、ation A1GROUP BY A1.store_name查詢(xún)結(jié)果顯示為:Store Total SalesLos Angeles $1800San Diego $250Boston $700SQL循序漸進(jìn)SQL循序漸進(jìn)(目錄)SQL循序漸進(jìn)(1)-介紹SQLSQL循序漸進(jìn)(2)-表的基礎(chǔ)知識(shí)SQL循序漸進(jìn)(3)-數(shù)據(jù)檢索SQL循序漸進(jìn)(4)-創(chuàng)建表SQL循序漸進(jìn)(5)-插入數(shù)據(jù)到表SQL循序漸進(jìn)(6)-刪除表SQL循序漸進(jìn)(7)-更新記錄SQL循序漸進(jìn)(8)-刪除記錄SQL循序漸進(jìn)(9)-SELECT語(yǔ)句SQL循序漸進(jìn)(10)-合計(jì)函數(shù)SQL循序漸進(jìn)(11)-GROUP BY子句SQL循序
15、漸進(jìn)(12)-HAVING子句SQL循序漸進(jìn)(13)-ORDER BY子句SQL循序漸進(jìn)(14)-組合條件和布爾運(yùn)算符SQL循序漸進(jìn)(15)-IN 和 BETWEEN 條件運(yùn)算符SQL循序漸進(jìn)(16)-數(shù)學(xué)運(yùn)算符SQL循序漸進(jìn)(17)-JOIN子句SQL循序漸進(jìn)(18)-索引SQL循序漸進(jìn)(19)-DISTINCT和排除復(fù)制SQL循序漸進(jìn)(20)-Aliases 、In以及子查詢(xún)SQL循序漸進(jìn)(21)-更多的子查詢(xún)SQL循序漸進(jìn)(22)-EXISTS 和 ALLSQL循序漸進(jìn) (23) -UNION 和 外部連接SQL循序漸進(jìn) (24) -嵌入SQL (1)介紹SQLSQL(Structure
16、d Query Language,結(jié)構(gòu)查詢(xún)語(yǔ)言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫(kù)語(yǔ)言。SQL通常使用于數(shù)據(jù)庫(kù)的通訊。ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì))聲稱(chēng),SQL是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句通常用于完成一些數(shù)據(jù)庫(kù)的操作任務(wù),比如在數(shù)據(jù)庫(kù)中更新數(shù)據(jù),或者從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。使用SQL的常見(jiàn)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。雖然絕大多數(shù)的數(shù)據(jù)庫(kù)系統(tǒng)使用SQL,但是它們同樣有它們自立另外的專(zhuān)有擴(kuò)展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的SQL命令,比如Select、 Insert、 Update、 Delete、
17、 Create和 Drop常常被用于完成絕大多數(shù)數(shù)據(jù)庫(kù)的操作。但是,不象其它的語(yǔ)言,如C、Pascal等,SQL沒(méi)有循環(huán)結(jié)構(gòu)(比如if-then-else、do-while)以及函數(shù)定義等等的功能。而且SQL只有一個(gè)數(shù)據(jù)類(lèi)型的固定設(shè)置,換句話(huà)說(shuō),你不能在使用其它編程語(yǔ)言的時(shí)候創(chuàng)建你自己的數(shù)據(jù)類(lèi)型。SQL功能強(qiáng)大,但是概括起來(lái),它可以分成以下幾組:DML(Data Manipulation Language,數(shù)據(jù)操作語(yǔ)言):用于檢索或者修改數(shù)據(jù); DDL(Data Definition Language,數(shù)據(jù)定義語(yǔ)言): 用于定義數(shù)據(jù)的結(jié)構(gòu),比如 創(chuàng)建、修改或者刪除數(shù)據(jù)庫(kù)對(duì)象; DCL(Data
18、 Control Language,數(shù)據(jù)控制語(yǔ)言):用于定義數(shù)據(jù)庫(kù)用戶(hù)的權(quán)限。DML組可以細(xì)分為以下的幾個(gè)語(yǔ)句:SELECT:用于檢索數(shù)據(jù); INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫(kù); UPDATE:用于從數(shù)據(jù)庫(kù)中修改現(xiàn)存的數(shù)據(jù) DELETE:用于從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)。DDL語(yǔ)句可以用于創(chuàng)建用戶(hù)和重建數(shù)據(jù)庫(kù)對(duì)象。下面是DDL命令:CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEXDCL命令用于創(chuàng)建關(guān)系用戶(hù)訪(fǎng)問(wèn)以及授權(quán)的對(duì)象。下面是幾個(gè)DCL命令: ALTER PASSWORD GRANT REVOKE CREATE SYNONYM為了
19、讓你對(duì)SQL有一個(gè)直觀的認(rèn)識(shí),下面先給出一個(gè)簡(jiǎn)單SQL語(yǔ)句的例子:我們使用SQL語(yǔ)句來(lái)從Employees中檢索Department ID為CS的姓名:SELECT Employees.NameFROM EmployeesWHERE Employees.DeptID = CS可能你現(xiàn)在一開(kāi)始不太理解這些語(yǔ)句,也許你會(huì)一頭霧水,不要緊的,通過(guò)本教程的學(xué)習(xí)后,你會(huì)發(fā)現(xiàn)這段語(yǔ)句是多么的普通。為了不讓你困惑,下面我也進(jìn)行一番解釋?zhuān)合葘?duì)FROM子句吧,語(yǔ)句中的FROM Employees意思是從Employees表中檢索數(shù)據(jù)。而語(yǔ)句WHERE Employees.DeptID = CS意思是檢索Empl
20、oyees的DeptID列為”CS”的行,這樣SQL語(yǔ)句檢索的結(jié)果將是DeptID為CS的列的所有數(shù)據(jù),比如:EmpIDNameDept123PurpleCS124ZscCS最后,我們來(lái)解釋一個(gè)SELECT子句,它指定了從Name列檢索來(lái)的所有數(shù)據(jù),比如NamePurpleZsc好吧,開(kāi)始我們下一節(jié)的教程-表的基本知識(shí)。(2)表的基礎(chǔ)知識(shí)關(guān)系數(shù)據(jù)庫(kù)通常包含多個(gè)表。數(shù)據(jù)庫(kù)實(shí)際上是表的集合,數(shù)據(jù)庫(kù)的數(shù)據(jù)或者信息都是存儲(chǔ)在表中的。表是對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和操作的一種邏輯結(jié)構(gòu),每一個(gè)表都代表一個(gè)對(duì)用戶(hù)意義的對(duì)象。例如,一個(gè)公司數(shù)據(jù)庫(kù)中,會(huì)有雇員表、部門(mén)表、庫(kù)存表、銷(xiāo)售表、工資表等等。我們經(jīng)常見(jiàn)到的成績(jī)表就是
21、一種表,它是有行和列組成的,我們并且可以通過(guò)名字來(lái)識(shí)別數(shù)據(jù)。列包含了列的名字、數(shù)據(jù)類(lèi)型以及列的其它屬性;行包含了列的記錄或者數(shù)據(jù)。下面給出一個(gè)成績(jī)單,其中姓名、語(yǔ)文、數(shù)學(xué)、英語(yǔ)都是列,而行包含了這個(gè)表的數(shù)據(jù),即每個(gè)人的各科成績(jī):姓名語(yǔ)文數(shù)學(xué)英語(yǔ)王小童7810087張柳風(fēng)859295紫云飛658986黃天龍986775(3)數(shù)據(jù)檢索在SQL中SELECT語(yǔ)句通常用于檢索數(shù)據(jù)庫(kù),或者檢索滿(mǎn)足你設(shè)定條件的數(shù)據(jù),以下是簡(jiǎn)單的SELECT語(yǔ)句的格式:select column1,column2,etc from tablenamewhere condition; = optional 其中列的名字跟著S
22、ELECT關(guān)鍵字,它決定了哪一列將被作為結(jié)果返回。你可以任意指定多個(gè)列,或者你可以使用*來(lái)選擇所有的列。表的名字是緊跟著FROM關(guān)鍵字的,它指出了哪個(gè)表格將作為最后結(jié)果被查詢(xún)。而WHERE子句(可選)指出哪個(gè)數(shù)據(jù)或者行將被返回或者顯示,它是根據(jù)關(guān)鍵字WHERE后面描述的條件而來(lái)的。在WHERE子句中可以有以下的條件選擇:= 等于 大于= 大于等于= 小于等于 不等于LIKE 參見(jiàn)以下注釋注釋?zhuān)篖IKE 模式匹配操作符同樣可以使用在WHERE子句的條件條件中。LIKE是一個(gè)功能強(qiáng)大的操作符,它可以讓你選擇你喜歡指定的行。百分號(hào)% 可以被用來(lái)匹配任何可能的字符,它可以出現(xiàn)在指定字符的前面或者后面,
23、例如:select first, last, cityfrom empinfowhere first LIKE Er%; 以上這條SQL語(yǔ)句將會(huì)匹配任何名字以Er開(kāi)始的名字,這里必須使用單引號(hào)?;蛘吣阋部梢允褂?在字符的前面,例如: select first, last from empinfowhere last LIKE %s; 這條SQL語(yǔ)句將會(huì)匹配任何名字以s結(jié)尾的名字。這個(gè)%的作用就跟DOS命令的號(hào)很相似。select * from empinfowhere first = Eric; 以上的SQL語(yǔ)句只選擇first名字為Eric的行。(4)創(chuàng)建表這個(gè)create table語(yǔ)句是
24、用于創(chuàng)建一個(gè)新的表格。以下是一個(gè)簡(jiǎn)單創(chuàng)建表格語(yǔ)句的格式: create table tablename(column1 data type,column2 data type, column3 data type);如果你想使用可選的約束,創(chuàng)建表格的格式為: create table tablename(column1 data type constraint,column2 data type constraint,column3 data type constraint); = optional 這里注意:你可以任意創(chuàng)建多列的表格,這個(gè)條件是可選的。為了更好的理解,下面舉個(gè)例子:creat
25、e table employee(first varchar(15),last varchar(20),age number(3),address varchar(30),city varchar(20),state varchar(20);為了創(chuàng)建一個(gè)新表格,你可以在關(guān)鍵字create table之后跟著表的名字,然后一個(gè)圓左括號(hào)”(”,然后是第一列的名字,再是這一列的數(shù)據(jù)類(lèi)型,接著是任意的可選約束,最后是圓右括號(hào)”)”。確保在開(kāi)始表格內(nèi)容之前使用圓左括號(hào)并且在表的最后一列定義之后使用圓右括號(hào)是相當(dāng)重要的。你還要保證每一個(gè)列定義之間有逗號(hào)分隔。最后在SQL語(yǔ)句結(jié)束時(shí)候加上分號(hào);。表格和列名必
26、須以字母開(kāi)頭,第二個(gè)字符開(kāi)始可以是字母、數(shù)字或者下劃線(xiàn),但是要保證名字的總長(zhǎng)度不要超過(guò)30個(gè)字符。在定義表格和列名不要使用不要使用SQL預(yù)定的用于表格或者列名的關(guān)鍵字(比如select、create、 insert等等),以避免錯(cuò)誤的發(fā)生。數(shù)據(jù)類(lèi)型是指在特定的列使用什么樣數(shù)據(jù)的類(lèi)型。如果一個(gè)列的名字為L(zhǎng)ast_Name,它是用來(lái)容納人名的,所以這個(gè)特定列就應(yīng)該采用varchar (variable-length character,變長(zhǎng)度的字符型) 數(shù)據(jù)類(lèi)型。以下是幾種常見(jiàn)的數(shù)據(jù)類(lèi)型:char(size) :固定長(zhǎng)度的字符串型。Size是圓括號(hào)中指定的參數(shù),它可以由用戶(hù)隨意設(shè)置,但是不能超過(guò)2
27、55個(gè)字節(jié)。varchar(size) :變長(zhǎng)度的字符串型。它的最大長(zhǎng)度是由括號(hào)中的參數(shù)size設(shè)定的。number(size):數(shù)值型。最大數(shù)字的位數(shù)由括號(hào)中的參數(shù)size設(shè)置。date :日期數(shù)值型。number(size,d) :數(shù)值型。它的最大數(shù)字的位數(shù)由括號(hào)中的參數(shù)sieze設(shè)定,而括號(hào)中的參數(shù)d是設(shè)置小數(shù)點(diǎn)的位數(shù)。什么是約束呢?當(dāng)表被創(chuàng)建的時(shí)候,可以一列也可以多列共用一個(gè)約束。約束是一個(gè)跟列有關(guān)的基本準(zhǔn)則,返回的數(shù)據(jù)必須遵循這個(gè)準(zhǔn)則。下面舉個(gè)例子,一個(gè)約束指定在一列中不能有兩個(gè)記錄共用一個(gè)數(shù)值。它們必須單獨(dú)的。其它兩個(gè)流行的約束是:not null,它設(shè)置了列不能留空白,即一定要有
28、數(shù)據(jù);以及primary key(主鍵),主鍵約束定義了表中每一個(gè)記錄(或行)的唯一標(biāo)識(shí)。所有的這些將在以后的教程中再作進(jìn)一步闡述。好吧,也許你已經(jīng)有躍躍欲試的沖動(dòng)了。作為本節(jié)練習(xí),下面我們自己來(lái)設(shè)計(jì)和創(chuàng)建表格。你可以開(kāi)始創(chuàng)建一個(gè)公司的雇員表格。你需要?jiǎng)?chuàng)建一個(gè)包含firstname、lastname、 title、 age和 salary的表格。(5)插入數(shù)據(jù)到表Insert語(yǔ)句用于往表格中插入或者增加一行數(shù)據(jù),它的格式為:insert into tablename(first_column,.last_column)values (first_value,.last_value); = op
29、tional 簡(jiǎn)單舉個(gè)例子:insert into employee(first, last, age, address, city)values (Luke, Duke, 45, 2130 Boars Nest, Hazard Co); 這里要注意:每一個(gè)字符竄都要用單引號(hào)括起來(lái)。為了往表中插入數(shù)據(jù),要在關(guān)鍵字insert into之后緊跟著表名,然后是左圓括號(hào),接著是以逗號(hào)分開(kāi)的一系列的列名,再是一個(gè)右圓括號(hào),然后在關(guān)鍵字values之后跟著一系列用圓括號(hào)括起的數(shù)值。這些數(shù)值是你要往表格中填入的數(shù)據(jù),它們必須與指定的列名相匹配。字符串筆譯用單引號(hào)括起來(lái),而數(shù)字就不用。在上面的例子中,Luk
30、e必須與列first相匹配,而45必須與列age相匹配。假如你想往employee表格中插入以下數(shù)據(jù);Zhang Weiguo,28,北京601信箱,北京那么你要使用以下的SQL語(yǔ)句:insert into employee(first, last, age, address, city)values ( Zhang, Weiguo ,28, 北京601信箱, 北京);(6)刪除表Drop table命令用于刪除一個(gè)表格或者表中的所有行。其語(yǔ)法格式為:drop table tablename 下面舉個(gè)例子:drop table employee; 為了刪除整個(gè)表(包括所有的行),可以使用dro
31、p table命令后加上tablename。Drop table命令跟從表中刪除所有記錄是不一樣的:刪除表中的所有記錄是留下表格(只是它是空的)以及約束信息;而drop table是刪除表的所有信息,包括所有行、表格以及約束信息等等。(7)更新記錄Update語(yǔ)句用于更新或者改變匹配指定條件的記錄,它是通過(guò)構(gòu)造一個(gè)where語(yǔ)句來(lái)實(shí)現(xiàn)的。其語(yǔ)句格式如下:update tablenameset columnname = newvalue,nextcolumn = newvalue2.where columnname OPERATOR value and|or column OPERATOR va
32、lue; = optional 下面舉個(gè)例子來(lái)說(shuō)明:update phone_bookset area_code = 623where prefix = 979;以上語(yǔ)句是在phone_book表中,在prefix=979的行中將area_code設(shè)置為623。update phone_bookset last_name = Smith, prefix=555, suffix=9292where last_name = Jones;而以上的這段語(yǔ)句是在phone_book中,在last_name= Jones的行中將last_name 設(shè)置為 Smith, prefix為555, suffix
33、為9292。update employeeset age = age+1where first_name=Mary and last_name=Williams;這段語(yǔ)句是在employee表中,在first_name=Mary 和last_name=Williams的行中將age加1。作為每課一練,你在結(jié)束本教程之后要好好作以下的練習(xí):1 因?yàn)镴onie Weber 已經(jīng)跟Bob Williams結(jié)婚,所以它需要將它的last名更新為Weber-Williams。2 Dirk Smith的生日是今天,所以他的年齡應(yīng)該加1。3 所有的秘書(shū)都叫做Administrative Assistant.
34、所以要將所有的標(biāo)題標(biāo)題都相應(yīng)地修改。就作這幾個(gè)練習(xí),千萬(wàn)不可大意喲。(8)刪除記錄Delete語(yǔ)句是用來(lái)從表中刪除記錄或者行,其語(yǔ)句格式為:delete from tablenamewhere columnname OPERATOR value and|or column OPERATOR value; = optional 下面還是舉個(gè)例子:delete from employee;這條語(yǔ)句沒(méi)有where語(yǔ)句,所以它將刪除所有的記錄,因此如果沒(méi)有使用where的時(shí)候,要千萬(wàn)小心。如果你只要?jiǎng)h除其中一行或者幾行,可以參考以下的語(yǔ)句:delete from employeewhere lastn
35、ame = May; 這條語(yǔ)句是從emplyee表中刪除lastname為May的行。delete from employeewhere firstname = Mike or firstname = Eric; 這條語(yǔ)句是從emplyee表中刪除firstname為Mike或者Eric的行。為了從表中刪除一個(gè)完整的記錄或者行,就直接在delete from后面加上表的名字,并且利用where指明符合什么條件的行要?jiǎng)h除即可。如果你沒(méi)有使用where子句,那么表中的所有記錄或者行將被刪除。(9)SELECT語(yǔ)句在上面的教程中已經(jīng)有用到SELECT語(yǔ)句。在本節(jié)教程中將詳細(xì)對(duì)它進(jìn)行闡述。SELECT
36、語(yǔ)句是SQL的核心,在你的SQL語(yǔ)句中可能用的最多的就是SELECT語(yǔ)句了。由于大量的選項(xiàng)可以用于SELECT語(yǔ)句,所以整個(gè)教程好象就是圍這SELECT語(yǔ)句轉(zhuǎn)。當(dāng)我們構(gòu)造SQL查詢(xún)語(yǔ)句(利用了SELECT語(yǔ)句)的時(shí)候,認(rèn)識(shí)所有的可能選項(xiàng)和最好的或者最有效率的方法來(lái)實(shí)現(xiàn)是很有用的。這個(gè)教程將為你提供這些技能。SELECT語(yǔ)句用于查詢(xún)數(shù)據(jù)庫(kù)并檢索匹配你指定條件的選擇數(shù)據(jù)。SELECT語(yǔ)句有五個(gè)主要的子句子你可以選擇,而FROM是唯一必須的子句。每一個(gè)子句有大量的選擇項(xiàng)、參數(shù)等等。這些子句將羅列在下面,而且它們每一個(gè)都將在以后的教程有更為詳細(xì)的描述。以下是SELECT語(yǔ)句的格式:SELECT ALL
37、 | DISTINCT column1,column2FROM table1,table2WHERE conditionsGROUP BY column-listHAVING conditionsORDER BY column-list ASC | DESC 下面舉個(gè)例子:SELECT name, age, salaryFROM employeeWHERE age 50; 上面的這個(gè)語(yǔ)句將從employee表中選擇age大于50的所有的name、age和salary列的數(shù)值。注意:一定要在SQL語(yǔ)句末尾加上一個(gè)分號(hào)。這個(gè)分號(hào)提示SQL語(yǔ)句已經(jīng)結(jié)束并準(zhǔn)備被解釋。以下的表格給出了各種比較運(yùn)算符號(hào):
38、=等于大于=大于等于=小于等于不等于LIKE字符串比較測(cè)驗(yàn)舉個(gè)例子吧:SELECT name, title, deptFROM employeeWHERE title LIKE Pro%;上面的語(yǔ)句是從employee表中選擇title是以Pro為開(kāi)頭的name、title和dept列中的所有行或者數(shù)值。另外ALL和DISTINCT也是SQL中的關(guān)鍵字,它們用于在你的查詢(xún)結(jié)果中選擇ALL(缺?。┗蛘遜istinct或者單一記錄。如果你想在指定的列中檢索單一記錄,你可以使用DISTINCT 關(guān)鍵子。 因?yàn)镈ISTNCT 將會(huì)丟棄所有你在SELECT指定的列復(fù)制的記錄,比如 : SELECT DI
39、STINCT age FROM employee_info; 這條語(yǔ)句將返回所有在employee_info表中單一的age數(shù)據(jù)。而ALL就將顯示所有指定的類(lèi),包括所有的復(fù)制數(shù)據(jù)。在沒(méi)有指定的時(shí)候,這個(gè)ALL關(guān)鍵字是缺省的。(10)合計(jì)函數(shù)所有的合計(jì)函數(shù)如下表所示:MIN返回一個(gè)給定列中最小的數(shù)值MAX返回一個(gè)給定列中最大的數(shù)值SUM返回一個(gè)給定列中所有數(shù)值的總和AVG返回一個(gè)給定列中所有數(shù)值的平均值COUNT返回一個(gè)給定列中所有數(shù)值的個(gè)數(shù)COUNT(*)返回一個(gè)表中的行數(shù)合計(jì)函數(shù)用于從SELECT語(yǔ)句中計(jì)算一個(gè)”返回列的數(shù)據(jù)”。它們是總結(jié)了所選數(shù)據(jù)列的結(jié)果。雖然它們需要GROUP BY子句(
40、后面一個(gè)教程介紹),但是這些函數(shù)也可以在不用使用GROUP BY子句的情況被使用,比如 :SELECT AVG(salary)FROM employee;這條語(yǔ)句將返回單一的結(jié)果,它包含了從employee表中所有salary列數(shù)據(jù)的平均值。為了更好的理解,我們?cè)倥e個(gè)例子:SELECT AVG(salary)FROM employee;WHERE title = Programmer; 以上這條語(yǔ)句將返回employee表中所有title列為Programmer的數(shù)據(jù)的平均值。下面的例子中使用的語(yǔ)句跟其它合計(jì)函數(shù)有點(diǎn)不用,因?yàn)闆](méi)有一個(gè)類(lèi)被指定給COUNT函數(shù)。這條語(yǔ)句實(shí)際上將返回employe
41、e表的行數(shù),如下:SELECT Count(*)FROM employees;最后給出本節(jié)教程的配套練習(xí):1)作一個(gè)公司的銷(xiāo)售表items_ordered,里面有price、product和amount。從items_ordered表中選擇price最大的數(shù)據(jù)。這里提示:使用MAX函數(shù)。 2) 計(jì)算items_ordered表中的行數(shù)。(11)GROUP BY子句GROUP BY子句首先講講GROUP BY 子句語(yǔ)法: SELECT column1, SUM(column2)FROM list-of-tablesGROUP BY column-list; 這個(gè)GROUP BY子句將集中所有的行
42、在一起,它包含了指定列的數(shù)據(jù)以及允許合計(jì)函數(shù)來(lái)計(jì)算一個(gè)或者多個(gè)列。當(dāng)然最好解釋的方法是給出一個(gè)例子啦:假設(shè)我們將從employee表中搜索工資最高的列,可以使用以下的SQL語(yǔ)句:SELECT max(salary), deptFROM employee GROUP BY dept; 這條語(yǔ)句將在每一個(gè)單獨(dú)的部門(mén)中選擇工資最高的工資。結(jié)果他們的salary和dept將被返回。(12)HAVING子句HAVING子句下面先給出HAVING子句的語(yǔ)法:SELECT column1, SUM(column2)FROM list-of-tablesGROUP BY column-listHAVING c
43、ondition; 這個(gè)HAVING子句允許你為每一個(gè)組指定條件,換句話(huà)說(shuō),可以根據(jù)你指定的條件來(lái)選擇行。如果你想使用HAVING子句的話(huà),它應(yīng)該處再GROUP BY子句之后。下面將以一個(gè)例子來(lái)解釋HAVING子句。假設(shè)我們的employee表中包含雇員的name、departmen、salary和age。如果你想為每個(gè)部門(mén)中每個(gè)雇員選擇平均工資的話(huà),你可以使用下面的SQL語(yǔ)句:SELECT dept, avg(salary)FROM employeeGROUP BY dept; 當(dāng)然,如果你還想只計(jì)算和顯示salary大于20000的平均工資的話(huà),你還可以加上HAVING子句:SELECT
44、dept, avg(salary)FROM employeeGROUP BY deptHAVING avg(salary) 20000;(13)ORDER BY子句ORDER BY子句ORDER BY子句的語(yǔ)法為:SELECT column1, SUM(column2)FROM list-of-tablesORDER BY column-list ASC | DESC; = optional ORDER BY是一個(gè)可選的子句,它允許你根據(jù)指定要order by的列來(lái)以上升或者下降的順序來(lái)顯示查詢(xún)的結(jié)果。例如: ASC = Ascending Order 這個(gè)是缺省的DESC = Descend
45、ing Order 下面舉個(gè)例子:SELECT employee_id, dept, name, age, salaryFROM employee_infoWHERE dept = SalesORDER BY salary; 這條SQL語(yǔ)句將從employee_info表中列dept等于Sales選擇employee_id,、dept、 name、 age和 salary,并且根據(jù)他們的salary按升序的順序來(lái)列出檢索結(jié)果。如果你想對(duì)多列排序的話(huà),那么在列與列之間要加上逗號(hào),比如 :SELECT employee_id, dept, name, age, salaryFROM employe
46、e_infoWHERE dept = SalesORDER BY salary, age DESC;(14)組合條件和布爾運(yùn)算符以下的SQL語(yǔ)句中就含有組合條件:SELECT column1, SUM(column2)FROM list-of-tablesWHERE condition1 AND condition2; AND運(yùn)算符可以在WHERE子句中連接兩個(gè)或者多個(gè)條件。AND條件的兩旁必須都為true(真),即兩個(gè)條件都同時(shí)滿(mǎn)足的時(shí)候,這些行才將被顯示。當(dāng)然,你也可以使用OR運(yùn)算符,它也可以在WHERE子句中連接兩個(gè)或者多個(gè)條件。但是,只要OR運(yùn)算符兩旁有一個(gè)為true的時(shí)候條件就滿(mǎn)足了
47、,因此行才會(huì)被顯示。所以你使用OR運(yùn)算符的時(shí)候,可以是OR運(yùn)算符兩旁只有一個(gè)為true或者兩旁都為true。下面舉個(gè)例子吧:SELECT employeeid, firstname, lastname, title, salaryFROM employee_infoWHERE salary = 50000.00 AND title = Programmer; 這條SQL語(yǔ)句是從employee_info表中選擇salary大于等于50000.00并且title等于Programmer的列employeeid、 firstname、 lastname、 title和 salary。此時(shí)必須AND
48、運(yùn)算符兩旁的條件都為真,行才會(huì)最為檢索結(jié)果返回。如果其中有一個(gè)條件為假,那么就什么都沒(méi)有顯示。你可以使用圓括號(hào)將條件括起來(lái),雖然它們也不一定是必須的,但是括起來(lái)看起來(lái)更清晰一些,這是一個(gè)編程習(xí)慣的問(wèn)題。比如 :SELECT employeeid, firstname, lastname, title, salaryFROM employee_infoWHERE (salary = 50000.00) AND (title = Programmer); 下面再舉個(gè)例子:SELECT firstname, lastname, title, salaryFROM employee_infoWHERE
49、 (title = Sales) OR (title = Programmer); 這條語(yǔ)句將從employee_info表中選擇title等于Sales或者等于Programmer的列firstname、 lastname, title和 salary。(15)IN 和 BETWEEN 條件運(yùn)算符下面是IN條件運(yùn)算符的SQL語(yǔ)句:SELECT column1, SUM(column2)FROM list-of-tablesWHERE column3 IN (list-of-values); 下面是BETWEEN條件運(yùn)算符的SQL語(yǔ)句:SELECT column1, SUM(column2)F
50、ROM list-of-tablesWHERE column3 BETWEEN value1 AND value2; 實(shí)際上,IN條件運(yùn)算符是一個(gè)設(shè)置成員測(cè)試運(yùn)算符,也就是說(shuō),它用于測(cè)試是否一個(gè)數(shù)值處在IN關(guān)鍵字之后提供的數(shù)值之中。舉個(gè)例子如下:SELECT employeeid, lastname, salaryFROM employee_infoWHERE lastname IN (Hernandez, Jones, Roberts, Ruiz); 這條語(yǔ)句是從employee_info表中選擇lastname等于Hernandez、Jones、 Roberts或者 Ruiz名字之一的列e
51、mployeeid、 lastname和 salary。如果它在其中就將返回行。IN條件運(yùn)算符可以使用混合條件來(lái)替代,比如你可以使用等號(hào)運(yùn)算符或者使用OR運(yùn)算符等等,但是結(jié)果是一樣的,例如:SELECT employeeid, lastname, salaryFROM employee_infoWHERE lastname = Hernandez OR lastname = Jones OR lastname = Roberts OR lastname = Ruiz; 你可以觀察到,利用IN運(yùn)算符時(shí)語(yǔ)句會(huì)更加簡(jiǎn)短并且容易讀,特別是在你測(cè)試兩個(gè)或者三個(gè)數(shù)值以上的時(shí)候尤為突出。當(dāng)然你也可以使用NO
52、T IN 來(lái)在你的列表中排除行的。而B(niǎo)ETWEEN條件運(yùn)算符是用與測(cè)試一個(gè)數(shù)值是否處在BETWEEN關(guān)鍵字兩邊指定數(shù)值的中間,比如:SELECT employeeid, age, lastname, salaryFROM employee_infoWHERE age BETWEEN 30 AND 40; 這條SQL語(yǔ)句是從employee_info表中選擇age處于30到40歲之間(包括30歲和40歲)的列employeeid、age、 lastname和salary。這條語(yǔ)句同樣可以不用BETWEEN運(yùn)算符,而使用混合條件來(lái)替代,例如:SELECT employeeid, age, last
53、name, salaryFROM employee_infoWHERE age = 30 AND age = 40; 當(dāng)然,你也可以類(lèi)似于NOT IN的方法,使用NOT BETWEEN來(lái)排除一些數(shù)據(jù)。(16)數(shù)學(xué)運(yùn)算符標(biāo)準(zhǔn)的ANSI SQL-92支持下面四個(gè)基本的算術(shù)運(yùn)算符:+加-減*乘/除%求余其中求余運(yùn)算符決定除法的余數(shù)。這個(gè)運(yùn)算符不是ANSI SQL支持的,但是,絕大多數(shù)的數(shù)據(jù)庫(kù)支持他。下面是一些有用的數(shù)學(xué)函數(shù),因?yàn)榭赡芤玫剿?,所以我這里要集中提一下。在ANSI SQL-92中不支持這些函數(shù),但是它們可能對(duì)于某些特殊的RDBMS是有效的。然而它們對(duì)于幾個(gè)主要的數(shù)據(jù)庫(kù)系統(tǒng)都是有效的。下面
54、就說(shuō)說(shuō)這些數(shù)學(xué)函數(shù)吧:ABS(x)返回x的絕對(duì)值SIGN(x)當(dāng)x為負(fù)數(shù)、零、正數(shù)的時(shí)候分別返回x的符號(hào)-1、0或者1MOD(x,y)返回x除以y的余數(shù),跟x%y作用一樣FLOOR(x)返回小于等于x的最大整數(shù)CEILING(x) 或 CEIL(x)返回大于等于x的最小整數(shù)POWER(x,y)返回x的y次方的數(shù)值ROUND(x)返回最接近于x的數(shù)ROUND(x,d)返回小數(shù)點(diǎn)數(shù)為4的接近于x的數(shù)SQRT(x)返回x的平方根下面舉個(gè)例子:SELECT round(salary), firstnameFROM employee_info 上面這條語(yǔ)句將從employee_info表中選擇salar
55、y最接近的數(shù)以及firstname列。(17)JOIN子句不知你有沒(méi)有發(fā)現(xiàn)直到現(xiàn)在我們利用SELECT語(yǔ)句來(lái)檢索的時(shí)候只能從一個(gè)表中進(jìn)行。如果你想從兩個(gè)表或者更多的表中進(jìn)行檢索,該怎么辦呢?好在我們可以使用SQL和關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)很有用的特性,即Join。為了簡(jiǎn)單說(shuō)明,實(shí)際上Join就是使得關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)的東東。Join允許你從兩個(gè)表或者更多的表連接數(shù)據(jù)進(jìn)行數(shù)據(jù)檢索,而只需要利用一個(gè)SELECT語(yǔ)句。如果在FROM關(guān)鍵字之后有多個(gè)表的話(huà),Join可以在SQL SELECT語(yǔ)句中識(shí)別它們。下面舉個(gè)例子:SELECT list-of-columnsFROM table1,table2WHE
56、RE search-condition(s) Join通過(guò)示范當(dāng)你只處理一個(gè)表的時(shí)候會(huì)發(fā)生什么事情可以使得Join的解釋更簡(jiǎn)單,所以這里我沒(méi)有使用Join。這個(gè)單一的數(shù)據(jù)庫(kù)有事也被稱(chēng)為flat table(平表)?,F(xiàn)在你有一個(gè)表的數(shù)據(jù)庫(kù)用來(lái)檢索所有顧客的信息以及他們從你的商店買(mǎi)了什么,下面就是這個(gè)表的所有列:每次一個(gè)新行被插入到表中,所有的列都將被更新,這樣就導(dǎo)致了不必要的”多余數(shù)據(jù)”。比如,每次Jenny買(mǎi)東西,下面的行都將被插入到表中:為了避免”多余數(shù)據(jù)”,一個(gè)最好的方法:讓數(shù)據(jù)庫(kù)有兩個(gè)表: 其中一個(gè)用來(lái)對(duì)顧客保持跟蹤;另外一個(gè)用來(lái)對(duì)他們買(mǎi)什么東西保持跟蹤。 即有Customer_info
57、 表和Purchases 表:Customer_info 表為:customer_number firstname lastname address city state zip Purchases 表為:customer_number date item price 現(xiàn)在開(kāi)始,不管顧客什么時(shí)候進(jìn)行重復(fù)的購(gòu)物,只有第二個(gè)表Purchases 需要更新。這樣我們就減少了多余的數(shù)據(jù),也就是說(shuō)我們規(guī)格化了這個(gè)數(shù)據(jù)庫(kù)。你仔細(xì)點(diǎn)就會(huì)發(fā)現(xiàn)兩個(gè)表中還是有一個(gè)cusomer_number列是相同的。這個(gè)列包含了單獨(dú)的顧客號(hào),它將用來(lái)JOIN(連接)兩個(gè)表。下面舉個(gè)例子來(lái)使用這兩個(gè)表,假如你想搜索顧客的名字以及
58、他們所買(mǎi)的東西,你可以使用以下的語(yǔ)句來(lái)實(shí)現(xiàn):SELECT customer_info.firstname, customer_info.lastname, purchases.itemFROM customer_info, purchasesWHERE customer_info.customer_number = purchases.customer_number; 特殊的Join有為Inner Join 或者Equijoin,這是一個(gè)最常見(jiàn)的Join類(lèi)型,以后我們經(jīng)常用使用到或者看到。這里要注意每列總是在表名之前,這卻也不是必需的。這是一個(gè)好的練習(xí)對(duì)于幫助你澄清列后面跟著表的認(rèn)識(shí)有很大幫助
59、。如果兩個(gè)表之間有一個(gè)相同的列,它就是必須的。我這里推薦在使用JOIN的時(shí)候最好在所有列之后加上表名。注意;上面描述的這個(gè)語(yǔ)法將在絕大多數(shù)的數(shù)據(jù)庫(kù)系統(tǒng)起作用,本教程的也是一樣。但是結(jié)果你會(huì)發(fā)現(xiàn)你上面的語(yǔ)句并不起作用,請(qǐng)仔細(xì)檢查一下吧。當(dāng)然你可以試一試修改以上的代碼,你可以使用JOIN(ANSI SQL-92語(yǔ)法規(guī)范中的INNER JOIN):SELECT customer_info.firstname, customer_info.lastname, purchases.itemFROM customer_info INNER JOIN purchasesON customer_info.cu
60、stomer_number = purchases.customer_number; 再舉另外一個(gè)例子:SELECT employee_info.employeeid, employee_info.lastname, employee_issionFROM employee_info, employee_salesWHERE employee_info.employeeid = employee_sales.employeeid; 這個(gè)例子將從employee_info和employee_sales表中選擇當(dāng)employee_info表的employeeid等于employee_sales表的employeeid的employeeid 、emply
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024《增值稅法》全文學(xué)習(xí)解讀(規(guī)范增值稅的征收和繳納保護(hù)納稅人的合法權(quán)益)
- 2024《文物保護(hù)法》全文解讀學(xué)習(xí)(加強(qiáng)對(duì)文物的保護(hù)促進(jìn)科學(xué)研究工作)
- 銷(xiāo)售技巧培訓(xùn)課件:接近客戶(hù)的套路總結(jié)
- 20種成交的銷(xiāo)售話(huà)術(shù)和技巧
- 銷(xiāo)售技巧:接近客戶(hù)的8種套路
- 銷(xiāo)售套路總結(jié)
- 房產(chǎn)銷(xiāo)售中的常見(jiàn)問(wèn)題及解決方法
- 銷(xiāo)售技巧:值得默念的成交話(huà)術(shù)
- 銷(xiāo)售資料:讓人舒服的35種說(shuō)話(huà)方式
- 汽車(chē)銷(xiāo)售績(jī)效管理規(guī)范
- 銷(xiāo)售技巧培訓(xùn)課件:絕對(duì)成交的銷(xiāo)售話(huà)術(shù)
- 頂尖銷(xiāo)售技巧總結(jié)
- 銷(xiāo)售技巧:電話(huà)營(yíng)銷(xiāo)十大定律
- 銷(xiāo)售逼單最好的二十三種技巧
- 銷(xiāo)售最常遇到的10大麻煩