




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫的增刪改查第1頁,共37頁,2023年,2月20日,星期六第二章數(shù)據(jù)庫的增刪改查第2頁,共37頁,2023年,2月20日,星期六回顧數(shù)據(jù)類型分哪兩種類型裝箱和拆箱的關(guān)系簡單類型以及其字節(jié)數(shù)與范圍變量命名規(guī)則聲明變量方法第3頁,共37頁,2023年,2月20日,星期六課程目標(biāo)使用insert語句向表中插入數(shù)據(jù)使用update語句更新表中數(shù)據(jù)使用delete語句刪除表中數(shù)據(jù)使用select語句進(jìn)行查詢第4頁,共37頁,2023年,2月20日,星期六示例數(shù)據(jù)庫:學(xué)生--課程數(shù)據(jù)庫學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept)課程表:Course(Cno,Cname)學(xué)生選課表:SC(Sno,Cno,Grade)
第5頁,共37頁,2023年,2月20日,星期六2.1添加數(shù)據(jù)使用insert語句添加數(shù)據(jù)的一般格式:insert[into]<表名>[列名]values<值列表>省略列名--指定值的順序必須與表中的列順序一致
只有部分列包含值insertinto員工信息表(姓名,性別,職務(wù))values(‘張三','男','經(jīng)理')insertinto員工信息表values(‘張三','經(jīng)理','男')insertinto員工信息表(姓名,職務(wù))values(‘李四',null)第6頁,共37頁,2023年,2月20日,星期六使用selectinto語句復(fù)制表的結(jié)構(gòu)和數(shù)據(jù)select*into普通職員表from員工信息表where職務(wù)='職員'selectinto和insertinto都可以添加多行數(shù)據(jù),兩者的區(qū)別insertinto語句中用于添加數(shù)據(jù)的目標(biāo)表要求已經(jīng)存在selectinto語句會(huì)創(chuàng)建新表,要求不存在同名的表第7頁,共37頁,2023年,2月20日,星期六2.2更新數(shù)據(jù)update語句:可更新表中單行,行組或所有行的數(shù)據(jù)一般格式為:update表名set列名1=新值1,列名2=新值2…where條件
update員工信息表 set職務(wù)='職員' where姓名=‘張三’
update圖書信息 set庫存數(shù)量=庫存數(shù)據(jù)+20 where出版社編號(hào)=1第8頁,共37頁,2023年,2月20日,星期六2.3刪除數(shù)據(jù)使用delete語句刪除行 delete[from]表名where條件deletefrom教師信息表where職務(wù)isnull注意:如果delete語句沒有where條件,則刪除表中所有行,但保留表的結(jié)構(gòu)delete新職員表使用truncatetable刪除表中所有行truncatetable新職員表用truncate和delete都可以刪除表的所有行,兩者的區(qū)別truncate語句不寫日志,執(zhí)行速度比delete語句快,但不可回滾第9頁,共37頁,2023年,2月20日,星期六數(shù)據(jù)查詢是數(shù)據(jù)庫中最常見的操作。SQL語言提供SELECT語句,通過查詢操作可得到所需的信息。
SELECT語句的一般格式為:
2.4查詢數(shù)據(jù)SELECT<列名>FROM<表名>[WHERE<查詢條件表達(dá)式>][GROUPBY<分組的列名>[HAVING<條件表達(dá)式>]][ORDERBY<排序的列名>[ASC或DESC]]第10頁,共37頁,2023年,2月20日,星期六
SELECT語句的執(zhí)行過程是:根據(jù)WHERE子句的檢索條件,從FROM子句指定的基本表或視圖中選取滿足條件的元組,再按照SELECT子句中指定的列,投影得到結(jié)果表。如果有GROUP子句,則將查詢結(jié)果按照<列名1>相同的值進(jìn)行分組。如果GROUP子句后有HAVING短語,則只輸出滿足HAVING條件的元組。如果有ORDER子句,查詢結(jié)果還要按照<列名2>的值進(jìn)行排序。第11頁,共37頁,2023年,2月20日,星期六[例3-23]查詢?nèi)w學(xué)生的學(xué)號(hào)、姓名和年齡。SELECTSNo,SN,AgeFROMS[例3-24]查詢學(xué)生的全部信息。SELECT*FROMS[例3-25]查詢選修了課程的學(xué)生號(hào)。SELECTDISTINCTSNoFROMSC[例3-26]查詢?nèi)w學(xué)生的姓名、學(xué)號(hào)和年齡。SELECTSNName,SNo,AgeFROMSSELECTSNASName,SNo,Age第12頁,共37頁,2023年,2月20日,星期六2.4.2條件查詢運(yùn)算符含義=,>,<,>=,<=,!=,<>比較大小AND,OR,NOT多重條件BETWEENAND確定范圍IN確定集合LIKE字符匹配ISNULL空值第13頁,共37頁,2023年,2月20日,星期六2.4.2.1比較大小
例2.5查詢選修課程號(hào)為‘C1‘的學(xué)生的學(xué)號(hào)和成績SELECTSNO,SCOREFROMSCWHERECNO=‘C1’
例2.6查詢成績高于85分的學(xué)生的學(xué)號(hào)、課程號(hào)和成績。SELECTSNO,CNO,SCOREFROMSCWHERESCORE>85
第14頁,共37頁,2023年,2月20日,星期六2.4.2.2多重條件查詢當(dāng)WHERE子句需要指定一個(gè)以上的查詢條件時(shí),則需要使用邏輯運(yùn)算符AND、OR和NOT將其連結(jié)成復(fù)合的邏輯表達(dá)式。其優(yōu)先級(jí)由高到低為:NOT、AND、OR,用戶可以使用括號(hào)改變優(yōu)先級(jí)。例2.7查詢選修C1或C2且分?jǐn)?shù)大于等于85分學(xué)生的的學(xué)號(hào)、課程號(hào)和成績。SELECTSNO,CNO,SCOREFROMSCWHERE(CNO=’C1’ORCNO=’C2’ANDSCORE>=85))
第15頁,共37頁,2023年,2月20日,星期六2.4.2.3確定范圍例2.8查詢工資在1000至1500間的教師的教師號(hào)姓名及職稱SELECTTNO,TN,PROFFROMTWHERESALBETWEEN1000AND1500等價(jià)于
SELECTTNO,TN,PROFFROMTWHERESAL>1000ANDSAL<1500
例3.9查詢工資不在1000至1500之間的教師的教師號(hào)、姓名及職稱。SELECTTNO,TN,PROFFROMTWHERESALNOTBETWEEN1000AND1500第16頁,共37頁,2023年,2月20日,星期六2.4.2.4確定集合利用“IN”操作可以查詢屬性值屬于指定集合的元組。例3.10查詢選修C1或C2的學(xué)生的學(xué)號(hào)、課程號(hào)和成績。SELECTSNO,CNO,SCOREFROMSCWHERECNOIN(‘C1’,‘C2’)此語句也可以使用邏輯運(yùn)算符“OR”實(shí)現(xiàn)。SELECTSNO,CNO,SCOREFROMSCWHERECNO=‘C1’ORCNO=‘C2’利用“NOTIN”可以查詢指定集合外的元組。
第17頁,共37頁,2023年,2月20日,星期六例2.11查詢沒有選修C1,也沒有選修C2的學(xué)生的學(xué)號(hào)、課程號(hào)和成績。SELECTSNO,CNO,SCOREFROMSCWHERECNONOTIN(‘C1’,‘C2’)等價(jià)于:SELECTSNO,CNO,SCOREFROMSCWHERECNO!=‘C1’ANDCNO!=‘C2’
最后一行也可以寫成:WHERE(CNO<>‘C1’)AND(CNO<>‘C2’)第18頁,共37頁,2023年,2月20日,星期六2.4.2.5部分匹配查詢
上例均屬于完全匹配查詢,當(dāng)不知道完全精確的値時(shí),用戶還可以使用LIKE或NOTLIKE進(jìn)行部分匹配查詢(也稱模糊查詢)。
LIKE定義的一般格式為:
<屬性名>LIKE<字符串常量>
屬性名必須為字符型,字符串常量的字符可以包含如下兩個(gè)特殊符號(hào):通配符功能實(shí)例%代表0個(gè)或多個(gè)字符‘a(chǎn)b%’,’ab’后可連接任意字符串_下劃線代表一個(gè)字符‘a(chǎn)_b’,’a’與‘b’間可以有一個(gè)字符[]表示在某一范圍內(nèi)的字符[0-9],0~9之間的字符[^]表示不在某一范圍內(nèi)的字符[^0-9],不在0~9之間的字符第19頁,共37頁,2023年,2月20日,星期六
%:表示任意知長度的字符串;_:表示任意單個(gè)字符。例3.12查詢所有姓張的教師的教師號(hào)和姓名。SELECTTNO,TNFROMTWHERETNLIKE‘張%’例3.13查詢姓名中第二個(gè)漢字是“力”的教師號(hào)和姓名。SELECTTNO,TNFROMTWHERETNLIKE‘_力%’第20頁,共37頁,2023年,2月20日,星期六2.4.2.6空值查詢
某個(gè)字段沒有值稱之為具有空值(NULL)。通常沒有為一個(gè)列輸入值時(shí),該列的值就是空值。空值不同于零和空格,它不占任何存儲(chǔ)空間。例如,某些學(xué)生選課后沒有參加考試,有選課記錄,但沒有考試成績,考試成績?yōu)榭罩担@與參加考試,成績?yōu)榱惴值牟煌?。?.14查詢沒有考試成績的學(xué)生的學(xué)號(hào)和相應(yīng)的課程號(hào)。SELECTSNO,CNOFROMSCWHERESCOREISNULL注意:這里的空值條件為ISNULL,不能寫成SCORE=NULL。
第21頁,共37頁,2023年,2月20日,星期六2.4.3
常用庫函數(shù)及統(tǒng)計(jì)匯總查詢SQL提供了許多庫函數(shù)增強(qiáng)了基本檢索能力。常用的庫函數(shù),如表3.2所示:
函數(shù)名稱功能AVG按列計(jì)算平均值SUM按列計(jì)算值的總和MAX求一列中的最大值MIN求一列中的最小值COUNT按列值同濟(jì)個(gè)數(shù)例3.15求學(xué)號(hào)為S1學(xué)生的總分和平均分。SELECTSUM(SCORE)ASTotalScore,AVG(SCORE)ASAveScoreFROMSCWHERE(SNO='S1')注意:函數(shù)SUM和AVG只能對(duì)數(shù)值型字段進(jìn)行計(jì)算。第22頁,共37頁,2023年,2月20日,星期六例2.16求選修C1號(hào)課程的最高分、最低分及之間相差的分?jǐn)?shù)SELECTMAX(SCORE)ASMaxScore,MIN(SCORE)ASMinScore,MAX(SCORE)-MIN(SCORE)ASDiffFROMSCWHERE(CNO='C1')例3.17求計(jì)算機(jī)系學(xué)生的總數(shù)SELECTCOUNT(*)FROMSWHEREDEPT='計(jì)算機(jī)'例3.18求學(xué)校中共有多少個(gè)系SELECTCOUNT(DISTINCTDEPT)ASDeptNumFROMS注意:加入關(guān)鍵字DISTINCT后表示消去重復(fù)行,可計(jì)算字段“DEPT“不同值的數(shù)目。COUNT函數(shù)對(duì)空值不計(jì)算,但對(duì)零進(jìn)行計(jì)算。第23頁,共37頁,2023年,2月20日,星期六例2.19統(tǒng)計(jì)有成績同學(xué)的人數(shù)SELECTCOUNT(DISTINCTSNO)FROMSCWHERESCOREISNOTNULL上例中成績?yōu)榱愕耐瑢W(xué)計(jì)算在內(nèi),沒有成績(即為空值)的不計(jì)算。例2.20利用特殊函數(shù)COUNT(*)求計(jì)算機(jī)系學(xué)生的總數(shù)SELECTCOUNT(*)FROMSWHEREDEPT=‘計(jì)算機(jī)’COUNT(*)用來統(tǒng)計(jì)元組的個(gè)數(shù),不消除重復(fù)行,不允許使用DISTINCT關(guān)鍵字。第24頁,共37頁,2023年,2月20日,星期六
2.4.4分組查詢GROUPBY子句可以將查詢結(jié)果按屬性列或?qū)傩粤薪M合在行的方向上進(jìn)行分組,每組在屬性列或?qū)傩粤薪M合上具有相同的值。例3.21查詢各位教師的教師號(hào)及其任課的門數(shù)。SELECTTNO,COUNT(*)ASC_NUMFROMTCGROUPBYTNOGROUPBY子句按TNO的值分組,所有具有相同TNO的元組為一組,對(duì)每一組使用函數(shù)COUNT進(jìn)行計(jì)算,統(tǒng)計(jì)出各位教師任課的門數(shù)。若在分組后還要按照一定的條件進(jìn)行篩選,則需使用HAVIN子句。第25頁,共37頁,2023年,2月20日,星期六例2.22查詢選修兩門以上課程的學(xué)生學(xué)號(hào)和選課門數(shù)SELECTSNO,COUNT(*)ASSC_NUMFROMSCGROUPBYSNOHAVINGCOUNT(*)>=2GROUPBY子句按SNO的值分組,所有具有相同SNO的元組為一組,對(duì)每一組使用函數(shù)COUNT進(jìn)行計(jì)算,統(tǒng)計(jì)出每位學(xué)生選課的門數(shù)。HAVING子句去掉不滿足COUNT(*)>=2的組。當(dāng)在一個(gè)SQL查詢中同時(shí)使用WHERE子句,GROUPBY子句和HAVING子句時(shí),其順序是WHERE-GROUPBY-HAVING。WHERE與HAVING子句的根本區(qū)別在于作用對(duì)象不同:WHERE子句作用于基本表或視圖,從中選擇滿足條件的元組;HAVING子句作用于組,選擇滿足條件的組,必須用于GROUPBY子句之后,但GROUPBY子句可沒有HAVING子句。
第26頁,共37頁,2023年,2月20日,星期六2.4.5查詢的排序當(dāng)需要對(duì)查詢結(jié)果排序時(shí),應(yīng)該使用ORDERBY子句ORDERBY子句必須出現(xiàn)在其他子句之后。排序方式可以指定,DESC為降序,ASC為升序,缺省時(shí)為升序例3.23查詢選修C1的學(xué)生學(xué)號(hào)和成績,并按成績降序排列。SELECTSNO,SCOREFROMSCWHERECNO='C1'ORDERBYSCOREDESC例3.24查詢選修C2、C3、C4或C5課程的學(xué)號(hào)、課程號(hào)和成績,查詢結(jié)果按學(xué)號(hào)升序排列,學(xué)號(hào)相同再按成績降序排列。SELECTSNO,CNO,SCOREFROMSCWHERECNOIN('C2','C3','C4','C5')ORDERBYSNO,SCOREDESC第27頁,共37頁,2023年,2月20日,星期六例2.25求選課在三門以上且各門課程均及格的學(xué)生的學(xué)號(hào)及其總成績,查詢結(jié)果按總成績降序列出。SELECTSNO,SUM(SCORE)ASTotalScoreFROMSCWHERESCORE>=60GROUPBYSNOHAVINGCOUNT(*)>=3ORDERBYSUM(SCORE)DESC
此語句為分組排序,執(zhí)行過程如下:1.(FROM)取出整個(gè)SC2.(WHERE)篩選SCORE>=60的元組3.(GROUPBY)將選出的元組按SNO分組4.(HAVING)篩選選課三門以上的分組5.(SELECT)以剩下的組中提取學(xué)號(hào)和總成績6.(ORDERBY)將選取結(jié)果排序
第28頁,共37頁,2023年,2月20日,星期六練習(xí)查詢年齡不在20-23歲之間的學(xué)生姓名、系別和年齡。SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;書店來了一位新員工杜康,職務(wù)為部門主管,如何向員工信息表(員工編號(hào),姓名,職務(wù))中添加他的信息?杜康從部門主管升為部門經(jīng)理,如何更新他的信息?杜康離職了,如何刪除他的信息?第29頁,共37頁,2023年,2月20日,星期六在一個(gè)SQL語句中,groupby、where、having這三部分正確使用次序是什么?selectinto和insertinto者可以添加多行數(shù)據(jù),兩者的區(qū)別是什么?用truncate和delete都可以刪除表的所有行,兩者的區(qū)別是什么?where和having的作用都是篩選數(shù)據(jù),它們的區(qū)別是什么?第30頁,共37頁,2023年,2月20日,星期六小結(jié)第31頁,共37頁,2023年,2月20日,星期六第32頁,共37頁,2023年,2月20日,星期六3.3變量3.3.1變量及其作用域
1.變量命名規(guī)則在C#2005中,變量命名規(guī)則如下:1)變量名的第首字符必須是字母、漢字或下劃線。2)變量名中不能包含空格、小數(shù)點(diǎn)以及各種符號(hào)。3)組成變量名的字符數(shù)不要太長,應(yīng)控制在3~30個(gè)字符。4)變量名不能是關(guān)鍵字。如:int,object等不能用作變量名。5)變量名在同一范圍內(nèi)必須是唯一的。第33頁,共37頁,2023年,2月20日,星期六3.3變量與常量3.3.1變量及其作用域
2.為變量命名時(shí)的注意事項(xiàng)
在為變量命名時(shí)注意以下幾點(diǎn):1)變量名應(yīng)該能夠標(biāo)識(shí)事物的特性,如用于存放姓名的字符串變量可使用strName命名。2)變量名應(yīng)使用英文單詞,而不能為漢語拼音。3)變量名盡量不使用縮寫,除非它是眾所周知的。4)若在變量名中使用了多個(gè)單詞,則應(yīng)大寫每個(gè)單詞的第一個(gè)字母,其它字母小寫。例如:IsSuperUser。5)變量名應(yīng)使用說明數(shù)據(jù)類型的前綴縮寫,如str、i等。6)變量名中的單詞盡量使用名詞。如有動(dòng)詞要盡量放在后面。第34頁,共37頁,2023年,2月20日,星期六3.3變量與常量3.3.1變量及其作用域
2.為變量命名時(shí)的注意事項(xiàng)變量有兩種典型的命名方法:駱駝表示法和匈牙利表示法。駱駝表示
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC TR 63502:2024 EN Guidelines for parameters measurement of HVDC transmission line
- 2025-2030年中國鉛鋅行業(yè)十三五投資分析及發(fā)展風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025-2030年中國針織面料市場(chǎng)運(yùn)營狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國酵母核糖核酸市場(chǎng)運(yùn)行趨勢(shì)及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國速溶固體飲料市場(chǎng)發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 2025-2030年中國豆腐市場(chǎng)運(yùn)行狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國血液透析機(jī)市場(chǎng)運(yùn)營現(xiàn)狀及發(fā)展前景規(guī)劃分析報(bào)告
- 2025-2030年中國脫咖啡因綠茶市場(chǎng)發(fā)展策略規(guī)劃分析報(bào)告
- 2025-2030年中國美白護(hù)膚市場(chǎng)運(yùn)行狀況及投資戰(zhàn)略研究報(bào)告
- 2025年上海市建筑安全員-A證考試題庫及答案
- 2025年中華工商時(shí)報(bào)社事業(yè)單位招聘12人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 安全生產(chǎn)事故調(diào)查與案例分析(第3版)課件 呂淑然 第1-4章 緒論-應(yīng)急預(yù)案編制與應(yīng)急管理
- 《職業(yè)技能等級(jí)評(píng)價(jià)規(guī)范編制指南編制說明》
- 中小學(xué)課件人造衛(wèi)星課件
- 新版冀教版(冀人版)科學(xué)五年級(jí)下冊(cè)全冊(cè)教案
- 鋼樓梯計(jì)算(自動(dòng)版)
- 個(gè)人所得稅稅率表【自動(dòng)提取稅率計(jì)算】
- 浙美版小學(xué)美術(shù)五年級(jí)下冊(cè)課件1畫家故居
- 中國作家協(xié)會(huì)入會(huì)申請(qǐng)表
- 熒光綠送貨單樣本excel模板
- 水土保持治理效益計(jì)算
評(píng)論
0/150
提交評(píng)論