




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)培訓(xùn)資料目錄數(shù)據(jù)庫(kù)培訓(xùn)資料1一、數(shù)據(jù)庫(kù)簡(jiǎn)介21、數(shù)據(jù)庫(kù)分類22、數(shù)據(jù)庫(kù)界面2二、T-SQL數(shù)據(jù)庫(kù)基礎(chǔ)操作語句31、SQL語言的構(gòu)成32、數(shù)據(jù)庫(kù)語句操作32.1創(chuàng)建數(shù)據(jù)庫(kù)32.2刪除數(shù)據(jù)庫(kù)42.3創(chuàng)建數(shù)據(jù)表42.5創(chuàng)建視圖72.6刪除視圖7三、數(shù)據(jù)庫(kù)數(shù)據(jù)操控語句81、查詢語句81.1一般查詢81.2帶條件查詢91.3模糊查詢91.4 ORDER BY用法101.5 TOP 用法101.6 IN 用法111.7別名的用法111.8多表查詢121.9 JOIN用法131.10 UNION用法151.11UNION ALL 用法151.12臨時(shí)表162、插入語句163、更新語句174、刪除語句1
2、8一、數(shù)據(jù)庫(kù)簡(jiǎn)介數(shù)據(jù)庫(kù)(Database)顧名思義就是用來存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù),它是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號(hào)、姓名、年齡、根據(jù)需要隨時(shí)查詢某職工的基本情況,也可以查詢工資在某個(gè)范圍內(nèi)的職工人數(shù)等等。這些工作如果都能在計(jì)算機(jī)上自動(dòng)進(jìn)行,那我們的人事管理就可以達(dá)到極高的水平。此外,在財(cái)務(wù)管理、倉(cāng)庫(kù)管理、生產(chǎn)管理中也需要建立眾多的這種"數(shù)據(jù)庫(kù)",使其可以利用計(jì)算機(jī)實(shí)現(xiàn)財(cái)務(wù)、倉(cāng)庫(kù)、生產(chǎn)的自動(dòng)化管理。數(shù)據(jù)庫(kù)1、數(shù)據(jù)庫(kù)分類 根據(jù)存儲(chǔ)模型劃分,數(shù)據(jù)庫(kù)類型主要可分為:網(wǎng)狀數(shù)據(jù)庫(kù)(Network Database)
3、、關(guān)系數(shù)據(jù)庫(kù)(Relational Database)、樹狀數(shù)據(jù)庫(kù)(Hierarchical Database)、面向?qū)ο髷?shù)據(jù)庫(kù)(Object-oriented Database)等(有興趣的同學(xué)可以自己了解一下不同類型數(shù)據(jù)庫(kù)的區(qū)別),商業(yè)應(yīng)用中主要是關(guān)系數(shù)據(jù)庫(kù),比如Oracle、DB2、Sybase、MS SQL Server、Informax、MySQL等我們公司目前使用的是市面上主流的關(guān)系數(shù)據(jù)庫(kù)MS SQL Server數(shù)據(jù)庫(kù)。2、數(shù)據(jù)庫(kù)界面二、T-SQL數(shù)據(jù)庫(kù)基礎(chǔ)操作語句1、SQL語言的構(gòu)成l DDL語言:數(shù)據(jù)定義,定義基本表、視圖、索引;l DML語言:數(shù)據(jù)操縱,查詢、增加、修改、刪
4、除l DCL語言:權(quán)限這里我們只討論學(xué)習(xí)DDL、DML兩種,其他類型的有興趣的同學(xué)可以自己研究一下。2、數(shù)據(jù)庫(kù)語句操作2.1創(chuàng)建數(shù)據(jù)庫(kù)語法:create database+表名例如:create database learntest在數(shù)據(jù)庫(kù)執(zhí)行后就可以產(chǎn)生一個(gè)名為learntest的數(shù)據(jù)庫(kù)注:數(shù)據(jù)庫(kù)名不要出現(xiàn)中文、特殊符號(hào),遵循原則:數(shù)據(jù)庫(kù)中文名稱首字母大寫例如:建材管理系統(tǒng)(JCGLXT)或者英文單詞縮寫建材管理系統(tǒng)(MMO)2.2刪除數(shù)據(jù)庫(kù)語法:drop database+表名例如:drop database learntest2.3創(chuàng)建數(shù)據(jù)表之前我們創(chuàng)建好了數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)是由很多數(shù)據(jù)表組
5、成的,接下來就要為數(shù)據(jù)庫(kù)添加數(shù)據(jù)表。語法:CREATE TABLE 表名稱(列名稱1 數(shù)據(jù)類型,列名稱2 數(shù)據(jù)類型,列名稱3 數(shù)據(jù)類型,.)說明:1、一張數(shù)據(jù)表由數(shù)據(jù)表名、數(shù)據(jù)列名(也叫字段名)組成,就像我們平時(shí)的EXCEL表格做出來的表格一樣,如下圖,其中員工表就是我們所說的表名,里面的姓名、年齡、愛好、崗位就是其中列名,列名下面的內(nèi)容對(duì)應(yīng)的就是表所存儲(chǔ)的數(shù)據(jù)。2、數(shù)據(jù)類型是用了描述我們字段可以存儲(chǔ)的數(shù)據(jù)類型,數(shù)據(jù)庫(kù)支持的數(shù)據(jù)類型有整數(shù)型、小數(shù)型、字符型、日期型,詳情見下表數(shù)據(jù)類型描述· integer(size)· int(size)· smallint(si
6、ze)· tinyint(size)僅容納整數(shù)。在括號(hào)內(nèi)規(guī)定數(shù)字的最大位數(shù)。· decimal(size,d)· numeric(size,d)容納帶有小數(shù)的數(shù)字。"size" 規(guī)定數(shù)字的最大位數(shù)。"d" 規(guī)定小數(shù)點(diǎn)右側(cè)的最大位數(shù)。char(size)容納固定長(zhǎng)度的字符串(可容納字母、數(shù)字以及特殊字符)。在括號(hào)中規(guī)定字符串的長(zhǎng)度。varchar(size)容納可變長(zhǎng)度的字符串(可容納字母、數(shù)字以及特殊的字符)。在括號(hào)中規(guī)定字符串的最大長(zhǎng)度。date(yyyymmdd)容納日期。3、實(shí)例CREATE TABLE staff(n
7、ame varchar(20),age int,hubby varchar(300),post varchar(50)注:1、表名命名不要出現(xiàn)漢字、特殊符號(hào),命名規(guī)則可以遵循中文表名首字母大寫例如商品檔案(SPDA)或者英文名商品檔案(GOODS)2、字段名命名與表名遵循同一規(guī)則參照上面的表格我們可以使用語句建立一張數(shù)據(jù)表2.4刪除表有時(shí)候我們會(huì)刪除一部分不需要的表,這個(gè)時(shí)候就需要用到表的刪除。語法:drop table+表名例如:drop table staff2.5創(chuàng)建視圖視圖是指數(shù)據(jù)庫(kù)中的視圖,是一個(gè)虛擬表,其內(nèi)容由查詢定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖
8、并不在數(shù)據(jù)庫(kù)中以存儲(chǔ)的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用視圖時(shí)動(dòng)態(tài)生成。語法:create view + 視圖名 + (列名) + as +子查詢例:create view VIEW_STAFF(name,age,hubby,post) as select name,age,hubby,post from staff注:我們公司的視圖統(tǒng)一命名規(guī)則為VIEW_+相關(guān)表名2.6刪除視圖語法:drop view+視圖名例:drop view VIEW_STAFF2.7建立索引索引是對(duì)數(shù)據(jù)庫(kù)表中一個(gè)或多個(gè)列(例如,staff表的姓名 (name) 列)的值進(jìn)行排序的
9、結(jié)構(gòu)。如果想按特定職員的姓來查找他或她,則與在表中搜索所有的行相比,索引有助于更快地獲取信息。索引類似于我們圖書的目錄,對(duì)表的某一列做一個(gè)目錄可以實(shí)現(xiàn)快速檢索的目的。語法:CREATE INDEX + 索引名 + ON STAFF+(字段名)例:CREATE INDEX INDEX_NAME ON STAFF (NAME)注:索引名不允許出現(xiàn)中文、特殊符號(hào),命名規(guī)則遵循:INDEX_+字段名。2.8刪除索引語法:DROP INDEX + 索引名 + ON +表名例: DROP INDEX INDEX_NAME ON STAFF三、數(shù)據(jù)庫(kù)數(shù)據(jù)操控語句1、查詢語句數(shù)據(jù)庫(kù)的作用是用來進(jìn)行數(shù)據(jù)的存儲(chǔ),
10、所以使用存儲(chǔ)的數(shù)據(jù)的過程就叫做數(shù)據(jù)庫(kù)的查詢操作,通過不同的查詢語句和限制條件的限制我們可以使用數(shù)據(jù)庫(kù)語句獲得我們預(yù)期想獲取的數(shù)據(jù)排列展示結(jié)果。1.1一般查詢語法:SELECT 字段名 + 表名例如: 1、SELECT * FROM staff 2、SELECT NAME FROM staff注:* 表示查詢表中的全部字段所有數(shù)據(jù)1.2帶條件查詢?cè)诓樵償?shù)據(jù)的時(shí)候我們有時(shí)候只需要查看一部分?jǐn)?shù)據(jù),這部分?jǐn)?shù)據(jù)通常會(huì)帶有一定的條件,例如只看員工王一的個(gè)人信息、或者只看年齡大于22的員工信息等等。語法:SELECT + 字段名 +FROM +表名 +WHERE條件 例: SELECT * FROM sta
11、ff where name='王一'1.3模糊查詢注:其中如果字段名為數(shù)字型的,字段后面的條件不用加單引號(hào),如果條件是其他類型的,字段值必須加雙引號(hào)。 當(dāng)我們對(duì)查詢的內(nèi)容只知道一部分不知道全部或者我們查詢的內(nèi)容需要包含某些共性條件的時(shí)候,這個(gè)時(shí)候可以進(jìn)行模糊查詢。例如查詢公司姓王的人的信息、查詢公司銷售類崗位的人的信息等等。使用like關(guān)鍵字加上固定格式 '%查詢內(nèi)容%'語法:SELECT * FROM STAFF WHERE 字段名 LIKE '%查詢內(nèi)容%'例: SELECT * FROM STAFF WHERE NAME LIKE '
12、;%王%'注:1、%的用法,如果我們需要查的內(nèi)容是以左邊開頭的,就可以去掉左邊的% ,LIKE '王%'。同樣當(dāng)我們需要查詢的內(nèi)容是右邊結(jié)尾的就可以去掉右邊的%,LIKE '%一',當(dāng)我們查詢的內(nèi)容在中間的位置就需要兩邊都加%才可以查到數(shù)據(jù)。2、切記:如果可以明確要查詢的內(nèi)容時(shí),能不用%就不要用%,因?yàn)槭褂昧?后會(huì)使我們建立好的索引失效導(dǎo)致查詢大量數(shù)據(jù)的情況是查詢速度變慢很多。1.4 ORDER BY用法查詢數(shù)據(jù)的時(shí)候有的情況會(huì)需要對(duì)查詢的數(shù)據(jù)做一個(gè)排序,這個(gè)時(shí)候就會(huì)用到ORDER BY關(guān)鍵字。通過order關(guān)鍵字可以對(duì)數(shù)據(jù)根據(jù)某些字段進(jìn)行排序達(dá)到我們預(yù)
13、期的效果。例如按照年齡大小排序。語法:SELECT * FROM STAFF +ORDER BY +字段例: 1、SELECT * FROM STAFF ORDER BY AGE 2、SELECT * FROM STAFF ORDER BY AGE DESC注:其中在字段后面加了DESC關(guān)鍵字可以讓結(jié)果以倒序的方式展現(xiàn)1.5 TOP 用法在查詢數(shù)據(jù)的時(shí)候我們需要查詢前面固定數(shù)量的數(shù)據(jù)的時(shí)候就可以使用TOP關(guān)鍵字進(jìn)行處理,例如查詢數(shù)據(jù)第一條記錄等。語法:SELECT TOP +數(shù)字 + 字段 +表名例: SELECT TOP 1 * FROM STAFF 1.6 IN 用法 如果需要查找表里的數(shù)
14、據(jù)包含在某一個(gè)范圍的時(shí)候就會(huì)用到IN關(guān)鍵字。例如查詢表里面是否存在叫王一、劉二、孫三這幾個(gè)人,如果有就返回結(jié)果。語法: SELECT 字段 FROM 表名 WHERE + 字段名 IN ('內(nèi)容一','內(nèi)容二','內(nèi)容三',.)例: SELECT * FROM STAFF WHERE NAME IN('王一','劉二','孫三')注:IN后面的括號(hào)里面可以寫子查詢1.7別名的用法通過使用 SQL,可以為表名稱或列名稱指定別名?;旧?,創(chuàng)建別名是為了讓列名稱的可讀性更強(qiáng)。關(guān)鍵字AS。語法:SELECT
15、 字段名 AS 別名 FROM 表名例: 1、 SELECT NAME AS XM FROM STAFF 2、 SELECT NAME FROM STAFF1.8多表查詢?cè)趯?shí)際業(yè)務(wù)中我們經(jīng)常會(huì)遇到需要查詢多張表,這個(gè)時(shí)候就會(huì)進(jìn)行多個(gè)表聯(lián)合起來查詢數(shù)據(jù),一般這種場(chǎng)景下,需要查詢的幾張表之間會(huì)有一些相同的內(nèi)容作為關(guān)聯(lián)的條件。 現(xiàn)在需要對(duì)上圖的兩張表進(jìn)行關(guān)聯(lián)查詢,仔細(xì)觀察可以發(fā)現(xiàn)兩張表有一個(gè)公共的字段就是名字(name),所以我們可以根據(jù)名字來進(jìn)行表的關(guān)聯(lián)。語法: SELECT 表字段 + FROM +表一,表二,. + where +關(guān)聯(lián)條件例: SELECT STAFF. NAME, STAFF
16、.AGE, KQB.KQSJ, KQB.SFCD FROM STAFF,KQB WHERE STAFF.NAME=KQB.NAMETIPS:以上的語句可以做簡(jiǎn)化,簡(jiǎn)化后的語句如下SELECT A.NAME, A.AGE, B.KQSJ, B.SFCD FROM STAFF A,KQB B WHERE A.NAME=B.NAME可以看到其中,STAFF與KQB被分別替換成了A 和B,這種技巧和字段別名類似,是表的別名,這樣可以讓SQL語句看起來結(jié)構(gòu)更清晰,可讀性更強(qiáng)。1.9 JOIN用法SQL JOIN 子句用于把來自兩個(gè)或多個(gè)表的行結(jié)合起來,基于這些表之間的共同字段。最常見的 JOIN 類型:
17、 INNER JOIN(簡(jiǎn)單的 JOIN)、LEFT JOIN(左關(guān)聯(lián))、RIGHT JOIN(右關(guān)聯(lián))。 使用JOIN 從多個(gè)表中返回滿足 JOIN 條件的所有行。INNER JOIN用法:SELECT 字段 + FROM 表一 INNER JOIN 表二 ON 關(guān)聯(lián)條件例:SELECT A.NAME,A.AGE,B.KQSJ,B.SFCD FROM STAFF A INNER JOIN KQB B ON A.NAME=B.NAMELEFT JOIN用法:LEFT JOIN用法:SELECT 字段 + FROM 表一 LEFT JOIN 表二 ON 關(guān)聯(lián)條件例:SELECT A.NAME,A
18、.AGE,B.KQSJ,B.SFCD FROM STAFF A LEFT JOIN KQB B ON A.NAME=B.NAME左關(guān)聯(lián)的特點(diǎn)以左邊表?xiàng)l數(shù)為數(shù)量,關(guān)聯(lián)的時(shí)候,如果右邊的表和左邊表的數(shù)據(jù)關(guān)聯(lián)不到(KQB表里面沒有李四),那么查詢的右邊表的字段值為NULL值。RIGHT JOIN用法:RIGTH JOIN用法:SELECT 字段 + FROM 表一 RIGTH JOIN 表二 ON 關(guān)聯(lián)條件例:SELECT A.NAME,A.AGE,B.KQSJ,B.SFCD FROM STAFF A RIGTH JOINKQB B ON A.NAME=B.NAME右關(guān)聯(lián)的特點(diǎn)以右邊表?xiàng)l數(shù)為數(shù)量,關(guān)
19、聯(lián)的時(shí)候,如果左邊的表和右邊表的數(shù)據(jù)關(guān)聯(lián)不到(KQB表里面有STAFF表里面沒有的信息),那么查詢的左邊表(STAFF)的字段值為NULL值。1.10 UNION用法 UNION 操作符用于合并兩個(gè)或多個(gè) SELECT 語句的結(jié)果集。請(qǐng)注意,UNION 內(nèi)部的每個(gè) SELECT 語句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。同時(shí),每個(gè) SELECT 語句中的列的順序必須相同。語法: 語句一 UNION 語句二SELECT * FROM STAFF WHERE NAME ='王一'UNION SELECT * FROM STAFF WHERE NAME ='趙二&
20、#39;1.11UNION ALL 用法UNION ALL 與UNION 功能相似,唯一的區(qū)別是UNION會(huì)過濾重復(fù)的數(shù)據(jù),UNION ALL會(huì)把結(jié)果全部顯示語法: 語句一 UNION 語句二1、SELECT * FROM STAFF WHERE NAME ='王一'UNION SELECT * FROM STAFF WHERE NAME ='王一'2、SELECT * FROM STAFF WHERE NAME ='王一'UNION ALLSELECT * FROM STAFF WHERE NAME ='王一'1.12臨時(shí)表在訪問頻率較高的數(shù)據(jù)表的時(shí)候,例如系統(tǒng)的銷售、出庫(kù)單的時(shí)候,要盡量學(xué)會(huì)使用臨時(shí)表存儲(chǔ)要取出的數(shù)據(jù),從臨時(shí)表來使用想要的數(shù)據(jù)這樣做可以避免高頻使用的數(shù)據(jù)表死鎖問題發(fā)生。語法 SELECT 字段 INTO 臨時(shí)表名 FROM 數(shù)據(jù)集實(shí)例:SELECT * INTO #TEMPXSDD20161227 FROM (SELECT DH,RQ,KHBM FROM XSDD)a 注:通過以上語句會(huì)在數(shù)據(jù)庫(kù)中產(chǎn)生一個(gè)數(shù)據(jù)表,并且會(huì)將數(shù)據(jù)集查出來的數(shù)據(jù)插入到新建的表中,數(shù)據(jù)表命名規(guī)則#TEMP+表名+時(shí)間。2、插入語句插入語句主要用來給數(shù)據(jù)表添加數(shù)據(jù)。I
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)完美版
- 2025年安徽工商職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)及參考答案
- 裝修材料采購(gòu)合同協(xié)議書
- 云南警官學(xué)院《基礎(chǔ)護(hù)理學(xué)二》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南交通職業(yè)技術(shù)學(xué)院《工程估價(jià)與實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院《幼兒園管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 煙臺(tái)幼兒師范高等??茖W(xué)?!斗敲旱V山開采》2023-2024學(xué)年第二學(xué)期期末試卷
- 岳陽現(xiàn)代服務(wù)職業(yè)學(xué)院《教師口語訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- T-ZJBS 001-2024 城市公共標(biāo)識(shí)系統(tǒng)設(shè)計(jì)規(guī)范
- T-ZSA 230-2024 虛擬數(shù)字人多模態(tài)交互信息規(guī)范
- 2024-2025學(xué)年高一上學(xué)期期末數(shù)學(xué)試卷(新題型:19題)(基礎(chǔ)篇)(含答案)
- 高血壓課件教學(xué)課件
- 《鐵道概論(第二版)》 課件 第8章 鐵路運(yùn)輸組織
- lng加工合同范例
- 2024解析:第十六章電壓和電阻-基礎(chǔ)練(解析版)
- 湖北聯(lián)投集團(tuán)2024校園招聘【298人】管理單位遴選500模擬題附帶答案詳解
- 機(jī)柜 施工方案
- 設(shè)計(jì)質(zhì)量、進(jìn)度、安全、保密等管理方案及保障措施
- 單片機(jī)應(yīng)用技術(shù)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 文藝復(fù)興史學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 產(chǎn)后出血-教學(xué)查房
評(píng)論
0/150
提交評(píng)論