SQL基礎(chǔ)培訓(xùn)課件_第1頁
SQL基礎(chǔ)培訓(xùn)課件_第2頁
SQL基礎(chǔ)培訓(xùn)課件_第3頁
SQL基礎(chǔ)培訓(xùn)課件_第4頁
SQL基礎(chǔ)培訓(xùn)課件_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2023-10-26sql基礎(chǔ)培訓(xùn)課件contents目錄sql語言概述數(shù)據(jù)查詢插入、更新、刪除數(shù)據(jù)數(shù)據(jù)庫操作表的操作索引與約束事務(wù)處理與鎖機(jī)制安全控制01sql語言概述01SQL(StructuredQueryLanguage)是一種用于操作關(guān)系數(shù)據(jù)庫的語言,它用于執(zhí)行各種數(shù)據(jù)庫操作,包括創(chuàng)建、插入、刪除和更新數(shù)據(jù)。sql的定義02SQL是一種聲明性語言,這意味著用戶只需指定他們想要的結(jié)果,而不需要關(guān)注如何實(shí)現(xiàn)。03SQL語言是許多數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)組件,如MySQL、Oracle、SQLServer等。SQL最初由IBM在1970年代開發(fā),用于管理大型主機(jī)的關(guān)系數(shù)據(jù)庫。1980年代,關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)開始流行,這使得SQL成為一種廣泛使用的數(shù)據(jù)庫語言。1990年代,隨著互聯(lián)網(wǎng)的興起,SQL得到了進(jìn)一步的發(fā)展和普及。sql的發(fā)展歷程SQL語句通常由SELECT、FROM、WHERE等關(guān)鍵字組成。SELECT語句用于選擇數(shù)據(jù),它通常包括一個(gè)或多個(gè)列名。FROM子句指定要查詢的表名。WHERE子句用于篩選滿足特定條件的數(shù)據(jù)行。除了SELECT、FROM和WHERE,SQL還包含其他關(guān)鍵字和語法,如INSERT、UPDATE、DELETE等,用于插入、更新和刪除數(shù)據(jù)。sql的基本語法010203040502數(shù)據(jù)查詢查詢語句的基本結(jié)構(gòu)SELECT列名FROM表名WHERE條件查詢語句的語法規(guī)則區(qū)分大小寫,標(biāo)識(shí)符使用反引號(hào)(``)括起來,關(guān)鍵字使用小寫,等號(hào)表示等于,大于/小于號(hào)表示大于/小于,大于等于/小于等于號(hào)表示大于等于/小于等于,邏輯運(yùn)算符AND/OR表示邏輯與/邏輯或,括號(hào)用于優(yōu)先級(jí)調(diào)整查詢語句的執(zhí)行順序FROM子句確定表,WHERE子句確定行,SELECT子句確定列簡單查詢復(fù)雜查詢要點(diǎn)三多表查詢通過JOIN關(guān)鍵字將多個(gè)表連接起來,使用ON關(guān)鍵字指定連接條件,使用別名為每個(gè)表起一個(gè)別名要點(diǎn)一要點(diǎn)二聚合函數(shù)的使用COUNT()函數(shù)用于計(jì)算行數(shù),SUM()函數(shù)用于計(jì)算數(shù)值總和,AVG()函數(shù)用于計(jì)算平均值,MAX()函數(shù)用于查找最大值,MIN()函數(shù)用于查找最小值GROUPBY子句用于對(duì)數(shù)據(jù)進(jìn)行分組,使用HAVING關(guān)鍵字對(duì)分組結(jié)果進(jìn)行篩選要點(diǎn)三子查詢的使用將一個(gè)查詢嵌套在另一個(gè)查詢中作為條件使用子查詢的概念嵌套子查詢、相關(guān)子查詢、標(biāo)量子查詢、多行子查詢、使用EXISTS關(guān)鍵字的相關(guān)子查詢、使用IN關(guān)鍵字的相關(guān)子查詢、使用NOTIN關(guān)鍵字的相關(guān)子查詢、使用EXISTS關(guān)鍵字的多行子查詢、使用UNION關(guān)鍵字的多行子查詢子查詢的類型03插入、更新、刪除數(shù)據(jù)插入單行數(shù)據(jù):使用INSERTINTO語句,指定要插入的表名和要插入的數(shù)據(jù)列及對(duì)應(yīng)值。例如INSERTINTOtable_name(column1,column2,column3)VALUES(value1,value2,value3);插入多行數(shù)據(jù):使用INSERTINTO語句和VALUES子句可以一次插入多行數(shù)據(jù)。例如INSERTINTOtable_name(column1,column2,column3)VALUES(value1,value2,value3),(value4,value5,value6),(value7,value8,value9);·插入單行數(shù)據(jù):使用INSERTINTO語句,指定要插入的表名和要插入的數(shù)據(jù)列及對(duì)應(yīng)值。例如·```sql·INSERTINTOtable_name(column1,column2,column3)VALUES(value1,value2,value3);·```·插入多行數(shù)據(jù):使用INSERTINTO語句和VALUES子句可以一次插入多行數(shù)據(jù)。例如·```sql·INSERTINTOtable_name(column1,column2,column3)VALUES(value1,value2,value3),(value4,value5,value6),(value7,value8,value9);·```插入數(shù)據(jù)更新單行數(shù)據(jù):使用UPDATE語句,指定要更新的表名、要更新的列及新的值,并使用WHERE子句指定要更新的行。例如UPDATEtable_nameSETcolumn1=value1,column2=value2WHEREcondition;更新多行數(shù)據(jù):使用UPDATE語句和SET子句可以一次更新多行數(shù)據(jù),并使用WHERE子句指定要更新的行。例如UPDATEtable_nameSETcolumn1=value1,column2=value2WHEREcondition;·更新單行數(shù)據(jù):使用UPDATE語句,指定要更新的表名、要更新的列及新的值,并使用WHERE子句指定要更新的行。例如·```sql·UPDATEtable_nameSETcolumn1=value1,column2=value2WHEREcondition;·```·更新多行數(shù)據(jù):使用UPDATE語句和SET子句可以一次更新多行數(shù)據(jù),并使用WHERE子句指定要更新的行。例如·```sql·UPDATEtable_nameSETcolumn1=value1,column2=value2WHEREcondition;·```更新數(shù)據(jù)刪除單行數(shù)據(jù):使用DELETEFROM語句,指定要?jiǎng)h除的表名和WHERE子句指定要?jiǎng)h除的行。例如DELETEFROMtable_nameWHEREcondition;刪除多行數(shù)據(jù):使用DELETEFROM語句和WHERE子句可以一次刪除多行數(shù)據(jù)。例如DELETEFROMtable_nameWHEREcondition;·刪除單行數(shù)據(jù):使用DELETEFROM語句,指定要?jiǎng)h除的表名和WHERE子句指定要?jiǎng)h除的行。例如·```sql·DELETEFROMtable_nameWHEREcondition;·```·刪除多行數(shù)據(jù):使用DELETEFROM語句和WHERE子句可以一次刪除多行數(shù)據(jù)。例如·```sql·DELETEFROMtable_nameWHEREcondition;·```刪除數(shù)據(jù)04數(shù)據(jù)庫操作創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫:CREATEDATABASE指定數(shù)據(jù)庫的名稱和所有者。創(chuàng)建一個(gè)新的數(shù)據(jù)庫??梢园渌x項(xiàng),如數(shù)據(jù)文件和日志文件的大小和位置。修改數(shù)據(jù)庫修改數(shù)據(jù)庫:ALTERDATABASE可以更改數(shù)據(jù)庫的大小、添加或刪除文件、更改文件的大小等。修改現(xiàn)有數(shù)據(jù)庫的屬性??梢詧?zhí)行其他操作,如更改數(shù)據(jù)庫的名稱。刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫:DROPDATABASE這是一個(gè)不可逆的操作,需要謹(jǐn)慎使用。刪除現(xiàn)有的數(shù)據(jù)庫及其所有內(nèi)容??梢愿鶕?jù)需要選擇刪除特定的表、視圖、索引等。05表的操作確定表名和字段:在創(chuàng)建表之前,需要明確表名和所需的字段,以及每個(gè)字段的數(shù)據(jù)類型和約束。創(chuàng)建表:使用CREATETABLE語句來創(chuàng)建表,并按照設(shè)計(jì)好的表結(jié)構(gòu)定義每個(gè)字段的名稱、數(shù)據(jù)類型和約束。示例sql`CREATETABLEemployees(idINTPRIMARYKEY,nameVARCHAR(100),ageINT,salaryDECIMAL(10,2));`·確定表名和字段:在創(chuàng)建表之前,需要明確表名和所需的字段,以及每個(gè)字段的數(shù)據(jù)類型和約束。·創(chuàng)建表:使用`CREATETABLE`語句來創(chuàng)建表,并按照設(shè)計(jì)好的表結(jié)構(gòu)定義每個(gè)字段的名稱、數(shù)據(jù)類型和約束?!な纠``·sql`CREATETABLEemployees(·idINTPRIMARYKEY,·nameVARCHAR(100),·ageINT,·salaryDECIMAL(10,2)·);`創(chuàng)建表添加字段:使用ALTERTABLE語句來添加新的字段,可以選擇指定字段的默認(rèn)值或約束。修改字段:使用ALTERTABLE語句來修改現(xiàn)有字段的數(shù)據(jù)類型或約束。刪除字段:使用ALTERTABLE語句來刪除不需要的字段。示例添加字段sqlALTERTABLEemployeesADDemailVARCHAR(100);修改字段sqlALTERTABLEemployeesALTERCOLUMNageDECIMAL(10,2);刪除字段sqlALTERTABLEemployeesDROPCOLUMNemail;·添加字段:使用`ALTERTABLE`語句來添加新的字段,可以選擇指定字段的默認(rèn)值或約束?!ば薷淖侄危菏褂胉ALTERTABLE`語句來修改現(xiàn)有字段的數(shù)據(jù)類型或約束?!h除字段:使用`ALTERTABLE`語句來刪除不需要的字段?!な纠?添加字段·```·sql`ALTERTABLEemployeesADDemailVARCHAR(100);`·```·+修改字段·```·sql`ALTERTABLEemployeesALTERCOLUMNageDECIMAL(10,2);`·```·+刪除字段·```·sql`ALTERTABLEemployeesDROPCOLUMNemail;`·```修改表結(jié)構(gòu)刪除表刪除表:使用`DROPTABLE`語句來永久刪除一個(gè)表及其關(guān)聯(lián)的索引、約束等。```示例sql`DROPTABLEemployees;`06索引與約束索引的概述索引是數(shù)據(jù)庫管理系統(tǒng)中一個(gè)重要的結(jié)構(gòu),通過索引可以讓數(shù)據(jù)庫系統(tǒng)不必全盤掃描數(shù)據(jù)表,而是直接找到所需要的數(shù)據(jù),從而提高查詢速度。索引的創(chuàng)建在SQL中,可以使用CREATEINDEX語句來創(chuàng)建索引。索引的維護(hù)定期對(duì)索引進(jìn)行優(yōu)化和維護(hù),以保證其性能和效率。索引的原理索引的工作原理類似于圖書的索引,通過索引可以快速地定位到所需的數(shù)據(jù),而不需要逐行查找。索引的使用約束的概述約束是用來保證數(shù)據(jù)的完整性和一致性的一種機(jī)制。常見的約束類型包括主鍵約束、外鍵約束、唯一約束、檢查約束等。在SQL中,可以使用ALTERTABLE語句來添加約束??梢允褂肁LTERTABLE語句來刪除約束。定期對(duì)約束進(jìn)行優(yōu)化和維護(hù),以保證其性能和效率。約束的使用約束的類型約束的刪除約束的維護(hù)約束的創(chuàng)建07事務(wù)處理與鎖機(jī)制事務(wù)定義事務(wù)是一組一起執(zhí)行的SQL語句,它們要么全部成功執(zhí)行,要么全部失敗回滾。ACID是指原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。SQL標(biāo)準(zhǔn)定義了四個(gè)隔離級(jí)別,分別為讀未提交、讀提交、可重復(fù)讀和串行化。通過鎖機(jī)制、時(shí)間戳等手段來避免并發(fā)操作引起的數(shù)據(jù)不一致問題。事務(wù)處理事務(wù)的ACID屬性事務(wù)的隔離級(jí)別事務(wù)的并發(fā)控制鎖的類型SQL中主要有兩種類型的鎖,即行鎖和表鎖。行鎖是對(duì)數(shù)據(jù)庫表中的某一行進(jìn)行加鎖,而表鎖則是整個(gè)表進(jìn)行加鎖。鎖的級(jí)別根據(jù)加鎖的范圍,可以將鎖分為共享鎖和排他鎖。共享鎖可以被多個(gè)事務(wù)同時(shí)持有,而排他鎖只能由一個(gè)事務(wù)持有。鎖的粒度根據(jù)加鎖的對(duì)象,可以將鎖分為頁鎖、行鎖和元素鎖。頁鎖是對(duì)數(shù)據(jù)庫頁進(jìn)行加鎖,行鎖是對(duì)數(shù)據(jù)庫表中的某一行進(jìn)行加鎖,元素鎖則是對(duì)數(shù)據(jù)庫表中的某一列進(jìn)行加鎖。死鎖的解決當(dāng)多個(gè)事務(wù)互相等待對(duì)方釋放資源時(shí),就會(huì)產(chǎn)生死鎖。解決死鎖的方法有檢測并解除死鎖、避免死鎖和允許死鎖等。鎖機(jī)制的使用0102030408安全控制1用戶權(quán)限管理23管理員可以創(chuàng)建和刪除用戶,設(shè)置用戶名和密碼。用戶創(chuàng)建與刪除針對(duì)不同用戶,分配不同的數(shù)據(jù)庫權(quán)限,如查詢、插入、更新、刪除等。權(quán)

溫馨提示

  • 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)論