-SQL必知必會(huì)_第1頁
-SQL必知必會(huì)_第2頁
-SQL必知必會(huì)_第3頁
-SQL必知必會(huì)_第4頁
-SQL必知必會(huì)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、SQL必知必會(huì)是一本 200頁不到,32開的handbook可方便隨身帶。里面的很多內(nèi)容是以前知道但沒有 理解,這本書內(nèi)容通俗易懂的,如形容數(shù)據(jù)表就像是一個(gè)文件夾,數(shù)據(jù)庫實(shí)例就像是一個(gè)文件柜這樣容易理解。 這本書的原作者寫得不錯(cuò),翻譯的水平也極佳。這本書的定位是入門,所以一切都以點(diǎn)到就為止了。比如存儲(chǔ)過程那一章原作者就說了只以簡(jiǎn)單的講一 講。我們平時(shí)實(shí)際工作中寫得就復(fù)雜多了 。而且原作者把各種主流DBMS的區(qū)別與一般常見的實(shí)踐技巧全部傳授給了你,我覺得這本書正是我們這些 SQL 菜鳥非常需要的知識(shí)。1 創(chuàng)建示例表業(yè)并操作操作表中的數(shù)據(jù) 2 使用INSERT語句插入數(shù)據(jù) 3 使用UPDATE語句

2、更新數(shù)據(jù) 4 使用DELETE語句刪除數(shù)據(jù) 5 使用SELECT語句查詢數(shù)據(jù) 列名列名數(shù)據(jù)類型數(shù)據(jù)類型是否為空是否為空商品編號(hào)商品編號(hào)IntIntNoNo商品名稱商品名稱Varchar(20)Varchar(20)NoNo生產(chǎn)廠商生產(chǎn)廠商Varchar(30)Varchar(30)NoNo進(jìn)貨價(jià)進(jìn)貨價(jià)MoneyMoneyNoNo零售價(jià)零售價(jià)MoneyMoneyNoNo數(shù)量數(shù)量IntIntNoNo進(jìn)貨時(shí)間進(jìn)貨時(shí)間DateTimeDateTimeNoNo進(jìn)貨員工編號(hào)進(jìn)貨員工編號(hào)Varchar(20)Varchar(20)NoNo主鍵:主鍵:商品編號(hào)商品編號(hào) ,自增字段,自增字段CREATE TAB

3、LE Goods CREATE TABLE Goods ( ( 商品編號(hào)商品編號(hào) Int IDENTITY (1, 1) Int IDENTITY (1, 1) primary key NOT NULL, NOT NULL,商品名稱商品名稱 Varchar(20) NOT NULL, Varchar(20) NOT NULL,生產(chǎn)廠商生產(chǎn)廠商 Varchar(20) NOT NULL, Varchar(20) NOT NULL,進(jìn)貨價(jià)進(jìn)貨價(jià) Money NOT NULL, Money NOT NULL,零售價(jià)零售價(jià) Money NOT NULL, Money NOT NULL,數(shù)量數(shù)量 Int

4、 NOT NULL, Int NOT NULL,進(jìn)貨時(shí)間進(jìn)貨時(shí)間 DateTime NOT NULL, DateTime NOT NULL,進(jìn)貨員工編號(hào)進(jìn)貨員工編號(hào) Char(6) NOT NULL Char(6) NOT NULL) )列名列名數(shù)據(jù)類型數(shù)據(jù)類型是否為空是否為空編號(hào)編號(hào)Char(6)Char(6)NoNo姓名姓名Char(8)Char(8)NoNo性別性別BitBitNoNo部門部門Varchar(16)Varchar(16)YesYes電話電話Varchar(20)Varchar(20)NoNo地址地址Varchar(50)Varchar(50)YesYes主鍵:編號(hào)主鍵:編

5、號(hào)CREATE TABLE Employees CREATE TABLE Employees ( (編號(hào)編號(hào) char(6) primary key NOT NULL , char(6) primary key NOT NULL ,姓名姓名 char(8) NOT NULL , char(8) NOT NULL ,性別性別 bit NULL , bit NULL ,部門部門 varchar(16) NULL , varchar(16) NULL ,電話電話 varchar(20) NULL , varchar(20) NULL ,地址地址 varchar(50) NULL varchar(50

6、) NULL ) ) 列名列名數(shù)據(jù)類型數(shù)據(jù)類型是否為空是否為空銷售編號(hào)銷售編號(hào)IntIntNoNo商品編號(hào)商品編號(hào)IntIntNoNo數(shù)量數(shù)量Int Int NoNo售出時(shí)間售出時(shí)間DateTimeDateTimeNoNo售貨員工編號(hào)售貨員工編號(hào)Char(6)Char(6)NoNoCREATE TABLE Sell CREATE TABLE Sell ( ( 銷售編號(hào)銷售編號(hào) Int primary key NOT NULL, Int primary key NOT NULL,商品編號(hào)商品編號(hào) Int NOT NULL , Int NOT NULL ,數(shù)量數(shù)量 Int NOT NULL, In

7、t NOT NULL,售出時(shí)間售出時(shí)間 DateTime NOT NULL, DateTime NOT NULL,售貨員工編號(hào)售貨員工編號(hào) Char(6) NOT NULL Char(6) NOT NULL) ) INSERT INTO Employees INSERT INTO Employees ( (編號(hào)編號(hào), ,姓名姓名, ,性別性別) ) VALUES(000016,李明李明,1) 使用使用INSERT語句插入數(shù)據(jù)語句插入數(shù)據(jù) SELECT SELECT 編號(hào)編號(hào), ,姓名姓名, ,性別性別INTO Employees2 INTO Employees2 FROM Employees

8、WHERE 性別性別=1 INSERT INTO Employees1 INSERT INTO Employees1 SELECT SELECT * * FROM EmployeesFROM Employees WHERE Employees.性別性別=1 UPDATE table_name | view_nameSETcolumn_name = expression | DEFAULT | NULL ,.n WHERE search_condition UPDATE EmployeesUPDATE Employees SET SET 電話電話= =0431587965450431587965

9、45 WHERE 編號(hào)編號(hào)=000016 Select Select 電話電話 from Employees from EmployeesWhere Where 編號(hào)編號(hào)=000016 5.5.1 DELETE語句DELETE FROM table_name WITH ( .n ) | view_name WHERE DELETE Sell where 售出時(shí)間 2004-12-01Select * from Sellwhere 售出時(shí)間 2004-12-01TRUNCATE語句其語句格式為:TRUNCATE TABLE name 快速刪除數(shù)據(jù)庫表記錄快速刪除數(shù)據(jù)庫表記錄它和無條件的它和無條件

10、的 DELETE 有同有同樣的效果,不過因?yàn)樗蛔鰳拥男Ч?,不過因?yàn)樗蛔霰頀呙?,因而快得多。在大表掃描,因而快得多。在大表上最有效。表上最有效。SELECT語句的基本格式如下:SELECT prod_name,prod_name, FROM table_ WHERE search_condition(條件) GROUP BY group_by_expression(分組) ORDER BY order_expression(排序) ASC(升序) | DESC(降序) 1、查詢員工表中所有員工的姓名和聯(lián)系電話SELECT 姓名,電話 FROM employees SELECT * FROM

11、employeesSELECT * FROM employees where 部門=財(cái)務(wù)部 SELECT DISTINCT SELECT DISTINCT 生產(chǎn)廠商生產(chǎn)廠商 FROM goodsFROM goods SELECT TOP 4 商品名稱,進(jìn)貨價(jià),數(shù)量 FROM goods SELECT 編號(hào) as number,姓名 as name,電話 as telephone FROM employeesSELECT 商品名稱,進(jìn)貨價(jià)*數(shù)量 AS 總金額 FROM goods注意:* 字段類行必須 整形、浮點(diǎn)形SELECT 姓名,電話 FROM employees as c WHERE c.

12、姓名=王峰SELECT 商品名稱 FROM goods WHERE 進(jìn)貨價(jià)*數(shù)量10000SELECT 商品名稱 FROM goods WHERE 進(jìn)貨時(shí)間1000SELECT * FROM employees WHERE 姓名 LIKE 李%注意:注意:likelike查詢后面必須有查詢后面必須有% % _ _% %表示若干字符表示若干字符 _ _表示一個(gè)字符表示一個(gè)字符查詢零售價(jià)格在查詢零售價(jià)格在2000到到3000元之間的所有商品元之間的所有商品 SELECT SELECT 商品名稱商品名稱, ,零售價(jià)零售價(jià) FROM goods FROM goods WHERE WHERE 零售價(jià)零售

13、價(jià) BETWEEN 2000 AND 3000 BETWEEN 2000 AND 3000SELECT SELECT 商品名稱商品名稱, ,進(jìn)貨價(jià)進(jìn)貨價(jià) FROM goods FROM goods WHERE WHERE 商品名稱商品名稱 IN ( IN (打印機(jī)打印機(jī), ,攝像機(jī)攝像機(jī)) )(注:(注:( (集合集合1)IN(1)IN(集合集合2),2),表示集合表示集合1 1的每個(gè)元素的每個(gè)元素均在集合均在集合2 2中則結(jié)果為真;把中則結(jié)果為真;把ININ改成改成NOT IN,NOT IN,則則意思相反。)意思相反。)查詢電話不為空的員工信息查詢電話不為空的員工信息 : :SELECT S

14、ELECT * * FROM employees FROM employees WHERE WHERE 電話電話 IS NOT NULL IS NOT NULL 查詢商品的進(jìn)貨價(jià)格并按從大到小排序查詢商品的進(jìn)貨價(jià)格并按從大到小排序SELECT SELECT 商品名稱商品名稱, ,進(jìn)貨價(jià)進(jìn)貨價(jià) FROM goods FROM goods ORDER BY ORDER BY 進(jìn)貨價(jià)進(jìn)貨價(jià) DESC DESC/ASC/ASC 查詢財(cái)務(wù)部的員工人數(shù)查詢財(cái)務(wù)部的員工人數(shù)SELECT COUNT(SELECT COUNT(* *) AS ) AS 人數(shù)人數(shù) FROM employees FROM empl

15、oyees WHERE WHERE 部門部門= =財(cái)務(wù)部財(cái)務(wù)部 SELECT SELECT * * FROM employees FROM employees WHERE WHERE 部門部門=財(cái)務(wù)部財(cái)務(wù)部 查詢商品編號(hào)為查詢商品編號(hào)為2的商品的銷售數(shù)量的商品的銷售數(shù)量 SELECT SUM(數(shù)量) as 銷售數(shù)量 FROM sell WHERE 商品編號(hào)=2SELECT * FROM sell WHERE 商品編號(hào)=2 統(tǒng)計(jì)各部門的人數(shù)統(tǒng)計(jì)各部門的人數(shù)SELECT SELECT 部門部門,COUNT(,COUNT(* *) AS ) AS 人數(shù)人數(shù) FROM FROM Employees G

16、ROUP BY Employees GROUP BY 部門部門select select * * from employees from employees 對(duì)員工表按性別統(tǒng)計(jì)各部門人數(shù),可以寫為:SELECT 性別,部門,COUNT(部門) FROM Employees GROUP BY 性別,部門 通過為作為一個(gè)整體的組指定條件(即通過為作為一個(gè)整體的組指定條件(即 HAVING HAVING 子句),可限定查詢中出現(xiàn)子句),可限定查詢中出現(xiàn)的組。在對(duì)數(shù)據(jù)進(jìn)行分組和聚合后,將用到的組。在對(duì)數(shù)據(jù)進(jìn)行分組和聚合后,將用到 HAVING HAVING 子句中的條件。只有符子句中的條件。只有符合條

17、件的組才出現(xiàn)在查詢中合條件的組才出現(xiàn)在查詢中SELECT SELECT 性別性別, ,部門部門,COUNT(,COUNT(部門部門) AS ) AS 人數(shù)人數(shù) FROM Employees GROUP BY FROM Employees GROUP BY 性別性別, ,部門部門 HAVING HAVING 性別性別=1=1SELECT SELECT 性別性別, ,部門部門,COUNT(,COUNT(性別)性別) AS AS 人數(shù)人數(shù) FROM Employees where FROM Employees where 性別性別= =1 1 GROUP BY GROUP BY 性別性別, ,部門部

18、門 -HAVING -HAVING 性別性別=1=1某些時(shí)候某些時(shí)候having與與where的功能相同的功能相同SELECT 銷售編號(hào),商品名稱,sell.數(shù)量 as 銷售數(shù)量FROM goods,sell WHERE goods.商品編號(hào)=sell.商品編號(hào)SELECT 銷售編號(hào),商品名稱,sell.數(shù)量 as 銷售數(shù)量 FROM goods LEFT JOIN sell ON goods.商品編號(hào)=sell.商品編號(hào)注意:查看與關(guān)聯(lián)的區(qū)別注意:查看與關(guān)聯(lián)的區(qū)別SELECT 銷售編號(hào),商品名稱,sell.數(shù)量 as 銷售數(shù)量 FROM goods LEFT JOIN sell ON goods.商品編號(hào)=sell.商品編號(hào)SELECT 銷售編號(hào),商品名稱,sell.數(shù)量 as 銷售數(shù)量 FROM goods RIGHT JOIN sell ON goods.商品編號(hào)=sell.商品編號(hào)聯(lián)合查詢進(jìn)貨員工和銷售員工,可以寫為:SELECT 售貨員工編號(hào) AS 業(yè)務(wù)員 FROM sell UNION SELECT 進(jìn)貨員工編號(hào)FROM goo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論