




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目4數(shù)據(jù)操作教材編寫組任務(wù)1MySQL運算符和表達(dá)式一、
算術(shù)運算符和算術(shù)表達(dá)式運算符描述+加法運算-減法運算*乘法運算/(DIV)除法運算,返回商%(MOD)求余運算,返回余數(shù)在MySQL中,靈活地使用算術(shù)運算符,是衡量MySQL用戶水平高低的標(biāo)準(zhǔn)之一。MySQL支持的算術(shù)運算符見表4-1。表4-1算術(shù)運算符任務(wù)1
MySQL運算符和表達(dá)式算術(shù)運算符及使用示例在對數(shù)值進(jìn)行除法和求余運算時,除數(shù)不能為0,如果為0,那么MySQL計算的結(jié)果將返回null。二、比較運算符和關(guān)系表達(dá)式任務(wù)1MySQL運算符和表達(dá)式運算符描述=等于<=>安全等于<>/(!=)不等于<=小于等于>=大于等于>
大于isnull字段是否為nullisnotnull字段是否不為nullbetween…and…是否在某個閉區(qū)間,適用于數(shù)值型、日期時間型等[not]in是否在/不在集合中l(wèi)ike匹配…格式,通常和通配符“%”和“_”配合使用“%”表示0個或任意個字符,“_”表示單個字符表4-2常用比較運算符比較運算符是查詢數(shù)據(jù)時最常用的一類運算符。一個比較運算符的結(jié)果總是1、0或null。select語句中的條件語句經(jīng)常要使用比較運算符,通過這些比較運算符,來查詢滿足指定條件的記錄。MySQL中的常用比較運算符見表4-2。比較運算符使用示例任務(wù)1MySQL運算符和表達(dá)式任務(wù)1MySQL運算符和表達(dá)式三、
邏輯運算符和邏輯表達(dá)式運算符描述非(NOT)單目運算符。運算規(guī)則:真為假,假為真與(AND)雙目運算符。運算規(guī)則:全真為真,有假即假或(OR)雙目運算符。運算規(guī)則:全假為假,有真即真表4-3邏輯運算符任務(wù)1MySQL運算符和表達(dá)式邏輯運算符使用示例任務(wù)1MySQL運算符和表達(dá)式四、
運算符優(yōu)先級優(yōu)先級運算符1()2*、/、%3+、-4比較運算符5NOT6AND7OR表4-4運算符優(yōu)先級當(dāng)一個復(fù)雜的表達(dá)式有多個運算符時,運算符優(yōu)先級決定執(zhí)行運算的先后次序。執(zhí)行順序可能對結(jié)果值有明顯的影響。運算符優(yōu)先級見表4-4。在較低級別的運算符之前先對較高級別的運算符進(jìn)行求值。任務(wù)2MySQL內(nèi)置函數(shù)一、
數(shù)學(xué)函數(shù)表4-5部分常用的數(shù)學(xué)函數(shù)函數(shù)功能ABS(x)返回x的絕對值CEIL(x)/CEILING(x)返回大于或等于x的最小整數(shù),即向上取整FLOOR(x)返回小于或等于x的最大整數(shù),即向下取整GREATEST(expr1,expr2,expr3,……)返回列表中的最大值LEAST(exprl,expr2,expr3,……)返回列表中的最小值POWER(x,y)返回x的y次方SQRT(x)返回x的算術(shù)平方根RAND()返回0到1的隨機float數(shù)ROUND(x)返回離x最近的整數(shù)ROUND(x,y)返回離x最近的值,保留小數(shù)位數(shù)y位TRUNCATE(x,y)對數(shù)值x進(jìn)行截取,保留小數(shù)點后y位數(shù)字?jǐn)?shù)學(xué)函數(shù)的使用示例任務(wù)2MySQL內(nèi)置函數(shù)truncate()和round()的區(qū)別在于truncate()僅僅是截斷,而不進(jìn)行四舍五入。二、
日期時間函數(shù)表4-6MySQL中常用的日期與時間函數(shù)任務(wù)2MySQL內(nèi)置函數(shù)函數(shù)功能NOW()以YYYY-MM-DDHH:MM:SS格式返回當(dāng)前的日期時間CURRENT_TIMESTAMP()以YYYY-MM-DDHH:MM:SS格式返回當(dāng)前的日期時間CURDATE()/CURRENT_DATE()以YYYY-MM-DD格式返回當(dāng)前日期CURTIME()/CURRENT_TIME()以HH:MM:SS格式返回當(dāng)前時間ADDDATE(d,n)計算起始日期d加上n天的日期ADDT1ME(t,n)時間t加上n秒的時間DATEDIFF(dl,d2)計算日期d1-d2之間相隔的天數(shù)(d1>d2)DATE_ADD(d,INTERVALexprtype)在日期上加指定的時間間隔,type可以是year、month、day、week、hour等。如DATE_ADD(d1,INTERVAL1year)就是計算對日期d1向后推算1年后的日期DATE_SUB(date,INTERVALexprtype)在日期上減去指定的時間間隔,type含義同DATE_ADD()YEAR(d)返回日期d的年份MONTH(d)返回日期d的月份MONTHNAME(d)以字符串格式返回日期d的月份DAY(d)返回日期d的日期DAYNAME(d)返回日期d是星期幾,如MondayDAYOFMONTH(d)計算日期d是本月的第幾天DAYOFWEEK(d)返回日期d是星期幾,1星期日,2星期一,以此類推DAYOFYEAR(d)計算日期d是本年的第幾天表4-6MySQL中常用的日期與時間函數(shù)1.獲取日期和時間任務(wù)2MySQL內(nèi)置函數(shù)執(zhí)行curdate()、curtime()和now()函數(shù),具體SQL語句如下selectcurdate(),curtime(),now();執(zhí)行上述語句,其輸出結(jié)果如下。任務(wù)2MySQL內(nèi)置函數(shù)2.操作指定日期可以對指定的日期進(jìn)行操作,如獲取日期所對應(yīng)的年份、月份、星期幾、當(dāng)前日期是本年的第幾天等。分別獲得當(dāng)前日期,當(dāng)前日期的月份,當(dāng)前日期是星期幾、是本年的第幾天、本月的第幾天、與0000年1月1日之間間隔的天數(shù)、是第幾季度,具體SQL語句如下selectcurdate()當(dāng)前日期,monthname(curdate())月份,dayname(curdate())星期幾,dayofyear(curdate())本年的第幾天,dayofmonth(curdate())本月的第幾天,to_days(curdate())間隔的天數(shù),quarter(curdate())第幾季度;任務(wù)2MySQL內(nèi)置函數(shù)3.日期間隔、時間間隔函數(shù)日期間隔函數(shù)to_days(x)函數(shù)用于計算日期x距離0000年1月1日的天數(shù);from_days(x)函數(shù)用于計算從0000年1月1日開始x天后的日期;datediff(x1,x2)函數(shù)計算日期d1與d2之間相隔的天數(shù)。adddate(x,n)函數(shù)返回起始日期x加上n天的日期;subdate(x,n)函數(shù)返回起始日期x減去n天的日期。任務(wù)2MySQL內(nèi)置函數(shù)例:執(zhí)行datediff(x1,x2)、adddate(x,n)函數(shù),具體SQL語句如下。select
datediff(‘2024-5-12’,’2023-10-25’),adddate(‘2024-5-12’,
20);練練:selectcurdate(),
to_days(curdate(),
from_days(600000),subdate(curdate(),365);任務(wù)2MySQL內(nèi)置函數(shù)三、
字符串函數(shù)表4-7MySQL中常用的字符串函數(shù)及其功能函數(shù)功能LENGTH(s)返回字符串占用的字節(jié)數(shù)CHAR_LENGTH(s)返回字符串s的字符個數(shù)REVERSE(str)反轉(zhuǎn)字符串LOCATE(sl,s)從字符串s中獲取s1第1個字符的開始位置,從1開始計數(shù)CONCAT(sl,s2,…)字符串s1,s2等多個字符申合并為一個字符串REPEAT(str,n)返回字符串str重復(fù)n次的結(jié)果REPLACE(str,s1,s2)用字符串s2替換字符串str中的字符串s1LEFT(str,n)返回字符串str最左邊的n個字符RIGHT(str,n)返回字符串str最右邊的n個字符SUMSTRING(str,m,n)返回字符串str從左邊第m個字符開始的n個字符LOWER(str)將字符串str的所有字母變成小寫字母UPPER(str)將字符串str中的字母全部轉(zhuǎn)換為大寫STRCMP(s1,s2)比較字符串s1和s2,相等返回0,若str1<str2返回-1,否則返回1;不區(qū)分大小寫任務(wù)2MySQL內(nèi)置函數(shù)1、字符串操作函數(shù)任務(wù)2MySQL內(nèi)置函數(shù)2、字符串比較函數(shù)strcmp(str1,str2)函數(shù)用來比較兩個字符串str1和str2。selectstrcmp('ABCD',‘ABBC'
),strcmp('ABCD','adcd'),strcmp('AB'
,ba'
);任務(wù)2MySQL內(nèi)置函數(shù)3、子字符串操作函數(shù)substring(str,start,length)函數(shù)從字符串str的第start個位置開始獲取長度為length的字符串。任務(wù)3插入表數(shù)據(jù)一、
插入單條記錄1.插入全部字段值語法格式:INSERTINTO表名[(字段名列表)]VALUES(字段值列表)說明:(字段名列表)可以省略,VALUES子句中的字段值必須和各字段名一一對應(yīng)。字段值類型要與對應(yīng)字段的數(shù)據(jù)類型一致。若字段為字符串類型和日期類型,插入的字段值必須要用英文半角單引號或雙引號括起來。如果某個字段值為空,其值必須設(shè)置為null或NULL,否則會出錯。命令中所有符號均為英文半角符號。要遵守表的相關(guān)約束輸入數(shù)據(jù),如主鍵約束、檢查約束、外鍵約束等。尤其當(dāng)兩表之間存在主外鍵約束關(guān)系時,必須要先輸入主表內(nèi)容,再輸入從表內(nèi)容。如class表和student表,要先輸入主鍵所在表class的內(nèi)容,然后才能輸入外鍵所在表student的內(nèi)容。例1:采用保留字段名向數(shù)據(jù)庫dbschool中的班級表class插入第1條記錄的全部內(nèi)容,采用省略字段名方式插入第2-5條記錄的全部內(nèi)容。任務(wù)3插入表數(shù)據(jù)usedbschoolinsertintoclass(classid,classname,department)values('211101','21大數(shù)據(jù)與會計1班','會計學(xué)院');insertintoclassvalues('221101','22大數(shù)據(jù)與會計1班','會計學(xué)院');insertintoclassvalues('211201','21會計信息管理1班','會計學(xué)院');insertintoclassvalues('221301','22大數(shù)據(jù)與財管1班','會計學(xué)院');insertintoclassvalues('221302','22大數(shù)據(jù)與財管2班','會計學(xué)院');練練:向course表中插入前11條記錄的全部內(nèi)容2.插入部分字段內(nèi)容語法格式:INSERTINTO表名(字段名列表)VALUES(字段值列表)或者INSERTINTO表名SET字段名1=值1,字段名1=值2,…說明:字段值與字段名要一一對應(yīng)。任務(wù)3插入表數(shù)據(jù)例2:向student表插入姓名為“吳鑫”和“孫月茹”2條記錄的內(nèi)容,民族字段nation由默認(rèn)值自動填入。任務(wù)3插入表數(shù)據(jù)usedbschoolinsertintostudent(sno,sname,gender,birthday,subject,classid)values('22320401','吳鑫','男','2004-2-2','空中乘務(wù)','223204');insertintostudent(sno,sname,gender,birthday,subject,classid)values('22420101','孫月茹','女','2004-6-29','金融科技應(yīng)用','224201');可以使用“select*fromstudent”查詢結(jié)果,該命令的詳細(xì)用法在項目5中學(xué)習(xí)。任務(wù)3插入表數(shù)據(jù)例3:采用插入部分字段內(nèi)容的兩種方法向course表插入課程名為“數(shù)據(jù)庫基礎(chǔ)”、“平面設(shè)計”和“Python數(shù)據(jù)分析”3門課程的內(nèi)容。usedbschoolinsertintocoursesetcno=‘21004’,cname=‘?dāng)?shù)據(jù)庫基礎(chǔ)’;insertintocourse(cno,cname,period,credit)values(‘21005’,’’平面設(shè)計’,64,4);insertintocourse(cno,cname,period,credit)values(‘21006’,’’Python數(shù)據(jù)分析’,64,4);思考:采用合適的方法向course表中插入剩余的所有記錄任務(wù)3插入表數(shù)據(jù)二、
同時插入多條記錄內(nèi)容例4:不省略表字段名,使用一條INSERT命令向study表中插入前6條記錄。usedbschoolinsertintostudy(sno,cno,score)values(‘21110101’,’11003’,80),(‘21110101’,’11004’,66),(‘21110102’,’11003’,52),(‘21110102’,’11004’,85),(‘21120101’,’11003’,73),(‘21120101’,’21004’,88);任務(wù)3插入表數(shù)據(jù)例5:省略表字段名,使用一條INSERT命令向study表中插入6條記錄。usedbschoolinsertintostudy(sno,cno,score)values(‘21211101’,’21002’,62),(‘21211101’,’11004’,77),(‘21211101’,’11003’,82),(‘21211001’,’11004’,78),(‘21220101’,’11003’,72),(‘21220101’,’21004’,71);任務(wù)4修改表數(shù)據(jù)一、單表數(shù)據(jù)修改語法格式:UPDATE表名SET字段名1=表達(dá)式1[,字段名2=表達(dá)式2,…][WHERE條件表達(dá)式]說明:SET短語是對指定的字段按滿足WHERE子句中的條件表達(dá)式進(jìn)行修改,可以同時對多個字段的值進(jìn)行修改,它們之間用英文半角逗號分隔。省略WHERE子句時,修改表中所有記錄的指定字段值。表達(dá)式可以是常量、變量、函數(shù)或表達(dá)式。更新后的數(shù)據(jù)不能違背原表的相關(guān)約束條件。一般情況下,不建議修改主鍵的值,特別是被從表引用的主鍵值。任務(wù)4修改表數(shù)據(jù)1.修改表中的全部數(shù)據(jù)例1:對student表進(jìn)行復(fù)制,副本表名為s。將s表中所有學(xué)生的民族字段的內(nèi)容在原來的數(shù)據(jù)后加上“族”字。復(fù)制student表,得到副本表s。createtablesasselect*fromstudent;對s表中所有學(xué)生的民族字段值進(jìn)行修改。updatessetnation=concat(nation,'族');任務(wù)4修改表數(shù)據(jù)2.修改表中的部分?jǐn)?shù)據(jù)例2:備份course表為c;在c表中,將第1學(xué)期開設(shè)課程的課時增加4。復(fù)制course表,得到副本表c。createtablecasselect*fromcourse;修改前,查看s表第1學(xué)期開設(shè)課程的課時。select*fromcwhereterm='1';使用where子句,限定只修改第1學(xué)期開設(shè)課程的課時。updatecsetperiod=period+4whereterm='1';任務(wù)4修改表數(shù)據(jù)二、
多表數(shù)據(jù)修改例3:備份study表為cj;將s表中的學(xué)生吳鑫的專業(yè)由原來的“空中乘務(wù)”調(diào)整為“數(shù)字媒體”,學(xué)號改為22250302,并自動修改cj表中的對應(yīng)學(xué)號。將第1學(xué)期開設(shè)課程的課時增加4。復(fù)制study表,得到副本表cj。createtablecjasselect*fromstudy;分別在主表s和從表cj的sno字段上創(chuàng)建主鍵約束和可以級聯(lián)更新的外鍵約束。altertablesaddprimarykey(sno);altertablecjaddforeignkey(sno)referencess(sno)onupdatecascade;修改前,查看s表中吳鑫的學(xué)號和專業(yè)名。selectsno,subjectfromswheresname='吳鑫';查看cj表中吳鑫的課程成績。(吳鑫的原學(xué)號是22320401)select*fromcjwheresno='22320401';修改s表中吳鑫的專業(yè)名和學(xué)號,where子句中的學(xué)號是吳鑫的原學(xué)號。updatessetsubject='數(shù)字媒體',sno='22250302'wheresno='22320401';修改后,查看s表中吳鑫的學(xué)號和專業(yè)名。selectsno,subjectfromswheresname='吳鑫';
任務(wù)5刪除表數(shù)據(jù)
一、使用DELETE命令刪除單表數(shù)據(jù)語法格式:DELETEFROM表名[WHERE條件表達(dá)式]說明:WHERE子句是可選項,若省略該子句,會刪除指定表中所有數(shù)據(jù),否則,刪除滿足WHERE條件的記錄行。任務(wù)5刪除表數(shù)據(jù)例1:刪除cj表中成績不及格的成績信息。deletefromcjwherescore<60;例2:刪除cj表中的所有成績信息,并從數(shù)據(jù)庫dbschool中刪除cj表。deletefromcj;droptablecj;任務(wù)5刪除表數(shù)據(jù)
二、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西省忻州市部分學(xué)校2025-2026學(xué)年高三8月階段性測試地理試題(解析版)
- 山東省百師聯(lián)考2024-2025學(xué)年高一上學(xué)期10月聯(lián)考地理試題(解析版)
- 2025-2026學(xué)年吉林省通化市梅河口市某中學(xué)高二上學(xué)期開學(xué)英語試卷(解析版)
- 企業(yè)合同審查與執(zhí)行流程表
- 2025哈爾濱“丁香人才周”(春季)引才現(xiàn)場招聘活動考前自測高頻考點模擬試題附答案詳解(完整版)
- 2025年合肥市第一人民醫(yī)院雙鳳院區(qū)招聘31人考前自測高頻考點模擬試題附答案詳解(完整版)
- 產(chǎn)品開發(fā)流程標(biāo)準(zhǔn)化模板跨行業(yè)適用版
- 湖南省株洲市炎陵縣部分學(xué)校2024-2025學(xué)年高二上學(xué)期10月月考地理試題(解析版)
- 動物村莊的變遷:童話寓言作文8篇范文
- 租船課件及反思
- 屋面干鋪保溫板施工方案
- 第二單元維護(hù)社會秩序 檢測題(含答案)-2025-2026學(xué)年八年級上冊道德與法治
- 2025年秋季新改版冀人版科學(xué)三年級上冊分組實驗報告單
- 2025標(biāo)準(zhǔn)版勞務(wù)勞動合同范本
- 地球科學(xué)概論-專業(yè)課筆記
- 建設(shè)項目環(huán)境影響評價收費標(biāo)準(zhǔn)
- 四年級勞動教育-學(xué)做水果拼盤(課件)
- 1二年級上冊小學(xué)生經(jīng)典誦讀校本課程教材
- 城市軌道交通乘客服務(wù)課件(完整版)
- 2022年公務(wù)員申論答題標(biāo)準(zhǔn)格子紙Word版A4打印版
- 農(nóng)產(chǎn)品食品檢驗員理論知識競賽題庫
評論
0/150
提交評論