版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫操作歸納SqlServer數(shù)據(jù)庫操作語句(步驟):1. 新建數(shù)據(jù)庫:create database 數(shù)據(jù)庫名稱 ; 例:create database LianXi;use 數(shù)據(jù)庫名稱 ; 例:use LianXi;2. 新建表:create table 表名稱(屬性名/字段名 屬性/字段類型 identity(1,1) primary key not null,屬性名/字段名 屬性/字段類型 not null,屬性名/字段名 屬性/字段類型);例:create table yonghu(uid int identity(1,1) primary key not null,uname c
2、har(10) not null,upass char(10) not null,gender char(2),shouru int,birthday datetime,note text );3. 查詢數(shù)據(jù) : 基本查詢:-簡單查詢- select * from 表名稱; 例:select * from yonghu; SELECT DISTINCT 表中字段名 AS 字段名別名, YEAR(GETDATE()-YEAR(字段名如生日) AS 如年齡FROM 表名例:select distinct uname as 姓名 , year(getdate()-year(birthday) as
3、年齡 from yonghu; 如下圖所示: SELECT COUNT(*) AS 總數(shù) FROM 表名 -獲取表中行的總數(shù)例:select count(*) as 總數(shù) from yonghu;SELECT AVG(字段名) AS 平均值 FROM 表名 -獲取平均值例:select avg(shouru) as 平均收入 from yonghu;-帶條件查詢-條件表達(dá)式:可以是單表的條件表達(dá)式,又可以是多表之間的條件表達(dá)式。比較符:=(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、<>(不等于) 例:在用戶表中,列出
4、收入在2000元以上的員工記錄SELECT * FROM yonghu WHERE shouru > 2000; 例:在用戶表中,查出男用戶的平均收入SELECT AVG(shouru) AS 平均收入 FROM yonghu WHERE gender=男; 例:某表如employee表,查詢出市場部和銷售部的員工名單SELECT d.employee_name, e.employee_name FROM employee.e INNER JOIN department d ON e.department_id = d.department_id WHERE d.department_n
5、ame IN (市場部,銷售部)-或-SELECT d.employee_name, e.employee_name FROM employee.e INNER JOIN department d ON e.department_id = d.department_id WHERE (d.department_name = 市場部) OR (d.department_name = 銷售部 ) 對(duì)yonghu表,查出月工資在2000-3000元之間的員工名單SELECT * FROM yonghu WHERE shouru BETWEEN 2000 AND 3000-或-SELECT * FRO
6、M yonghu WHERE shouru >= 2000 AND shouru <= 3000 對(duì)yonghu 表,查出所有姓“張”的員工名單SELECT * FROM yonghu WHERE uname LIKE 張%-或-SELECT * FROM yonghu WHERE LEFT(uname,1) = 張 -查詢結(jié)果處理- 排序輸出(ORDER BY) -ASC:(默認(rèn)) 按升序排列;DESC:按降序排列SELECT uid,uname,upass, shouru FROM yonghu ORDER BY gender , shouru DESC 重定向輸出(INTO)
7、INTO子句用于把查詢結(jié)果放到一個(gè)新建的表中例:某表如,對(duì)部門表department和員工表employee,查詢出市場部所有員工的信息,并將結(jié)果存入newtable中。SELECT employee.* INTO newtable FROM employee INNER JOIN department ON employee .department_id = department.department_id WHERE department.department_name = 市場部 輸出合并(UNION)合并查詢就是使用UNION操作符將來自不同查詢的數(shù)據(jù)組合起來,形成一個(gè)具有綜合信息的查
8、詢結(jié)果,UNION操作會(huì)自動(dòng)將重復(fù)的數(shù)據(jù)剔除。必須注意的是,參加合并查詢的各子查詢使用的表結(jié)構(gòu)應(yīng)該相同,即各子查詢中的數(shù)據(jù)數(shù)目和對(duì)應(yīng)的數(shù)據(jù)類型都必須相同。 例:對(duì)某表:如employee表,列出部門編號(hào)為D001或D002的所有員工姓名SELECT employee_name,department_id FROM employee WHERE department_id = D001UNION SELECT employee_name,department_id FROM employee WHERE department_id = D002 如下圖示 分組統(tǒng)計(jì)(GROUP BY)與篩選(HA
9、VING)例:對(duì)某表,如對(duì)employee表,分別統(tǒng)計(jì)男女員工人數(shù)SELECT sex,COUNT(sex) as 人數(shù) FROM employee GROUP BY sex 如下圖所示例:某表,如對(duì)employee表,分別統(tǒng)計(jì)個(gè)部門男女員工的人數(shù)SELECT department_id,sex,COUNT(*) AS 人數(shù) FROM employee GROUP BY department_id,sex 如下圖所示例:某表,如對(duì)employee表,查出部門平均工資大于2000元的部門編號(hào)SELECT department_id,AVG(wages) AS 平均工資FROM employee
10、GROUP BY department_id HAVING AVG(wages)>=2000 使用COMPUTE和COMPUTE BY子句匯總:使用COMPUTE子句可以在查詢的結(jié)果集中產(chǎn)生成匯總行的同時(shí),還生成明細(xì)行,可以計(jì)算子組的匯總值。使用COMPUTE BY子句可以對(duì)結(jié)果集數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì),即計(jì)算分組的匯總值。例:某表,如對(duì)employee表中部門編號(hào)臥位D001的員工工資,按照其部門編號(hào)生成匯總行和明細(xì)行SELECT department _id ,wages FROM employee WHERE department_id = D001ORDER BY department
11、_id COMPUTE sum(wages) 如下圖所示例:某表,如對(duì)employee表中的部門編號(hào)為D001或D002的員工工資,按照其部門編號(hào)生成分組匯總行和明細(xì)行SELECT department_id,wages FROM employee WHERE department_id = D001OR department_id = D002 ORDER BY department_id COMPUTE sum(wages) BY department_id 如下圖所示 嵌套查詢:(由里向外處理。子查詢的SELECT語句中不能使用ORDER BY子句,ORDER BY子句只能對(duì)最終查詢結(jié)果
12、排序) 單值嵌套查詢-子查詢的返回結(jié)果是一個(gè)值的嵌套查詢例:某表,如對(duì)Sales數(shù)據(jù)庫,查詢出市場部的所有員工的編號(hào)SELECT employee_id FROM employee WHERE department_id = (SELECT department_id FROM department WHERE department_name=市場部) 多值嵌套查詢-子查詢的返回結(jié)果是一列值的嵌套查詢 a. ANY運(yùn)算符用法:例:某表,如對(duì)Sales數(shù)據(jù)庫,列出D001號(hào)部門中工資比D002號(hào)部門的員工最低工資高的員工和工資SELECT employee_id,wages FROM emplo
13、yee WHERE department_id = D001AND wages>ANY (SELECT wages FROM employee WHERE department_id = D002)b. All運(yùn)算符的用法:例:某表,如對(duì)Sales數(shù)據(jù)庫,查詢出部門編號(hào)為D001的員工,這些員工的工資比部門為D002的員工的最高工資還要高的員工的編號(hào)和工資。SELECT employee_id,wages FROM employee WHERE department_id =D001AND wages>All(SELECT wages FROM employee WHERE dep
14、artment_id =D002) c. IN運(yùn)算符的用法:例:某表,如對(duì)Sales數(shù)據(jù)庫,列出部門為市場部或銷售部的所有員工的編號(hào)SELECT employee_id FROM employee WHERE department_id IN (SELECT department_id FROM department WHERE department_name = 市場部 OR department_name=銷售部) 連接查詢:(通過連接運(yùn)算符可以實(shí)現(xiàn)多個(gè)表查詢。連接是關(guān)系數(shù)據(jù)庫模型的主要特點(diǎn),也是它區(qū)別于其它類型數(shù)據(jù)庫管理系統(tǒng)的一個(gè)標(biāo)志。)例:某表,如對(duì)Sales數(shù)據(jù)庫輸出所有員工的銷售單
15、,要求給出員工編號(hào)、姓名、商品編號(hào)、商品名和銷售數(shù)量。SELECTemployee.employee_id,employee.employee_name,goods.goods_id,goods.goods_name,sell_order.order_num FROM employee,sell_order,goods WHERE employee.employee_id = sell_order.employee_id and sell_order.goods_id = goods.goods_id 如下圖所示 內(nèi)連接a. 等值連接:在連接條件中使用等號(hào)(=)運(yùn)算符比較被連接列的列值,按對(duì)應(yīng)
16、列的共同值將一個(gè)表中的記錄與另一個(gè)表中的記錄相連接,包括其中的重復(fù)列。例:某表,如Sales數(shù)據(jù)庫中部門表department和員工表employee的等值連接。SELECT * FROM department INNER JOIN employee ON employee.department_id = department.department_idb. 不等值連接:在連接條件中用除等于(=)運(yùn)算符以外的其他比較運(yùn)算符比較被鏈接的列的列值。這些運(yùn)算符包括>、>=、<=、<、!>、!<和<>。例:某表,如Sales數(shù)據(jù)庫,列出銷售G00001產(chǎn)
17、品的員工中,銷售數(shù)量大于編號(hào)為E001的員工銷售該類產(chǎn)品銷售數(shù)量的那些員工的編號(hào)和銷售數(shù)量。SELECT a.employee_id,a.order_num FROMsell_order a INNER JOIN sell_order b ON a.order_num> b.order_num AND a.goods_id = b.goods_id WHERE(b.goods_id = G00001)AND (b.employee_id = E001)c. 自然連接:在連接條件中使用等于(=)運(yùn)算符比較被連接列的列值,它使用選擇列表方式來指出查詢結(jié)果集合中所包括的列,并刪除連接表中的重復(fù)
18、列。例:某表,如Sales數(shù)據(jù)庫中部門表department和員工表employee的自然連接。SELECT a.department_name,b.*FROM department a INNER JOIN employee b ON b.department_id = a.department_id 外連接:在內(nèi)連接查詢時(shí),返回查詢結(jié)果集合中的僅是符合查詢條件(WHERE搜索條件或HAVING條件)和連接條件的行。而采用外連接時(shí),它返回到查詢結(jié)果集合中的不僅包含符合連接條件的行,而且還包括左表(左外連接時(shí))、右表(右外連接時(shí))或兩個(gè)連接表(全外連接)中的所有數(shù)據(jù)行。a. 使用作外連接:左外
19、連接通過左向外連接引用左表的所有行。例:某表,如員工表employee做外連接銷售表sell_order.SELECTa.employee_id,a.employee_name,b.goods_id,b.order_num,b.send_date FROM employee a LEFT OUTER JOIN sell_order b ON a.employee_id = b.employee_id 如圖所示b. 使用右外連接:右外連接通過右向外連接引用右表的所有行例:某表,如員工表employee右外連接銷售表sell_order。為了說明方便,先在sell_order表中插入一條銷售信息。
20、INSERT INTO sell_order(order_id1,goods_id,employee_id,customer_id,transporter_id,order_num,discount,order_date,send_date,arrival_date,cost)VALUES(S0006,G0005,C0006,T0002,21,0.5,GETDATE(),GETDATE(),100)SELECT a.employee_id,a.employee_name,b.goods_id,b.order_num,b.send_date,b.order_id1 FROM employee a
21、 RIGHT OUTER JOIN sell_order b ON a.employee_id = b.employee_idb. 使用全外連接全外連接返回兩個(gè)表的所有行。不管兩個(gè)表的行是否滿足連接條件,均返回查詢結(jié)果集。對(duì)不滿足連接條件的記錄,另一個(gè)表相對(duì)應(yīng)字段用NULL代替。SELECT a.employee_id,a.employee_name,b.goods_id,b.order_num,b.send_date,b.order_id1 FROM employee a FULL OUTER JOIN sell_order b ON a.employee_id = b.employee_i
22、d 如下圖所示 交叉連接:交叉連接不帶WHERE子句,它返回被連接的兩個(gè)表所有數(shù)據(jù)行的笛卡爾積,返回到結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)。例:SELECT a.department_id,a.department_name,b.employee_id,b.employee_name FROM department a CROSS JOIN employee b 如下圖所示 4插入數(shù)據(jù)INSERT INTO 表名 (屬性1,屬性2,屬性3,) VALUES (屬性值1,屬性值2,屬性值3,) 。注:into 可省略。例:INSERT IN
23、TO yonghu (uname,upass) VALUES ('土豆','321');5. 刪除數(shù)據(jù)DELETE FROM 表名 WHERE 條件例:DELETE FROM yonghu WHERE uid=1;例:在DELETE中使用聯(lián)接或子查詢某表操作,如下:-基于Transact-SQL,使用表的聯(lián)接DELETE Sell_Order FROM Sell_Order SO INNER JOIN customer2 C ON SO.customer_id = C.customer_id WHERE C.address LIKE 東方市% 注:SO,C均為別名-等同于下列命令DELETE Sell_Order FROM Sell_Order SO,customer2 C WHERE SO.customer_id = C.customer_id AND C.address LIKE 東方市%-基于SQL-92標(biāo)準(zhǔn),須使用子查詢DELETE FROM Sell_Order WHERE customer_id IN (SELECT customer_id FROM customer2 WHERE address LIKE 東方市%)6. 更新數(shù)據(jù)UPDATE 表名 SET 屬性名=屬性值,屬性名=屬
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度安徽電信合同管理創(chuàng)新項(xiàng)目合同2篇
- 2024年標(biāo)準(zhǔn)設(shè)計(jì)委托解除合同版
- 2025年度花卉市場發(fā)展趨勢研究報(bào)告合同3篇
- 二零二五年度電子產(chǎn)品陳列展示合作協(xié)議合同3篇
- 2025年度蔬菜種植基地與農(nóng)業(yè)產(chǎn)業(yè)基金合作投資合同3篇
- 2024版承包場地經(jīng)營合同范本
- 2025年度罐體定制變更管理合同3篇
- 2024年限量版名貴樹木買賣合同范本
- 2025年度航天器零部件制造合同3篇
- 2024年離婚合同標(biāo)準(zhǔn)格式樣本版B版
- 提高感染性休克集束化治療完成率工作方案
- 突發(fā)事件緊急醫(yī)學(xué)救援中的煙花爆竹傷處理培訓(xùn)
- 產(chǎn)品質(zhì)量監(jiān)控方案
- 《白夜行》名著導(dǎo)讀讀書分享
- 新起點(diǎn),新發(fā)展心得體會(huì)
- 區(qū)域分析與規(guī)劃課件
- 第11章-膠體化學(xué)
- 財(cái)經(jīng)基礎(chǔ)知識(shí)課件
- 技術(shù)支持資料投標(biāo)書
- 靜壓管樁施工技術(shù)交底
- 綠植花卉租擺及園林養(yǎng)護(hù)服務(wù) 投標(biāo)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論