




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章MySQL語(yǔ)言——MySQL語(yǔ)言簡(jiǎn)介MySQL教程(第2版)MySQL語(yǔ)言簡(jiǎn)介(1)數(shù)據(jù)定義語(yǔ)言(DDL)。用于執(zhí)行數(shù)據(jù)庫(kù)的任務(wù),對(duì)數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)中的各種對(duì)象進(jìn)行創(chuàng)建、刪除、修改等操作。如前所述,數(shù)據(jù)庫(kù)對(duì)象主要包括表、默認(rèn)約束、規(guī)則、視圖、觸發(fā)器和存儲(chǔ)過(guò)程等。DDL主要語(yǔ)句及功能如表。語(yǔ)
句功
能說(shuō)
明CREATE創(chuàng)建數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象不同數(shù)據(jù)庫(kù)對(duì)象,其CREATE語(yǔ)句的語(yǔ)法形式不同ALTER對(duì)數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象進(jìn)行修改不同數(shù)據(jù)庫(kù)對(duì)象,其ALTER語(yǔ)句的語(yǔ)法形式不同DROP刪除數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)對(duì)象不同數(shù)據(jù)庫(kù)對(duì)象,其DROP語(yǔ)句的語(yǔ)法形式不同MySQL語(yǔ)言簡(jiǎn)介(2)數(shù)據(jù)操縱語(yǔ)言(DML)。用于操縱數(shù)據(jù)庫(kù)中各種對(duì)象,檢索和修改數(shù)據(jù)。DML主要語(yǔ)句及功能如表。語(yǔ)
句功
能說(shuō)
明SELECT從表或視圖中檢索數(shù)據(jù)是使用最頻繁的SQL語(yǔ)句之一INSERT將數(shù)據(jù)插入到表或視圖中
UPDATE修改表或視圖中的數(shù)據(jù)既可修改表或視圖的一行數(shù)據(jù),也可修改一組或全部數(shù)據(jù)DELETE從表或視圖中刪除數(shù)據(jù)可根據(jù)條件刪除指定的數(shù)據(jù)(3)數(shù)據(jù)控制語(yǔ)言(DCL)。用于安全管理,確定哪些用戶(hù)可以查看或修改數(shù)據(jù)庫(kù)中的數(shù)據(jù),DCL包括的主要語(yǔ)句及功能如表。語(yǔ)
句功
能說(shuō)
明GRANT授予權(quán)限可把語(yǔ)句許可或?qū)ο笤S可的權(quán)限授予其他用戶(hù)和角色REVOKE收回權(quán)限與GRANT的功能相反,但不影響該用戶(hù)或角色從其他角色中作為成員繼承許可權(quán)限第5章MySQL語(yǔ)言——常量和變量01常
量1.字符串常量2.數(shù)值常量3.十六進(jìn)制常量4.日期時(shí)間常量5.位列值6.布爾值7.NULL值常
量1.字符串常量字符串是指用單引號(hào)或雙引號(hào)括起來(lái)的字符序列,分為ASCII字符串常量和Unicode字符串常量。ASCII字符串常量是用單引號(hào)括起來(lái)的,由ASCII字符構(gòu)成的符號(hào)串,例如:‘hello’ ‘Howareyou!’Unicode字符串常量與ASCII字符串常量相似,但它前面有一個(gè)N標(biāo)志符(N代表SQL-92標(biāo)準(zhǔn)中的國(guó)際語(yǔ)言(NationalLanguage))。N前綴必須為大寫(xiě)。只能用單引號(hào)括起字符串,例如:N‘hello’ N‘Howareyou!’Unicode數(shù)據(jù)中的每個(gè)字符用兩個(gè)字節(jié)存儲(chǔ),而每個(gè)ASCII字符用一個(gè)字節(jié)存儲(chǔ)。常
量在字符串中不僅可以使用普通的字符,也可使用轉(zhuǎn)義序列,它們用來(lái)表示特殊的字符,如表。序
列含
義\0一個(gè)ASCII0(NUL)字符\n一個(gè)換行符\r一個(gè)回車(chē)符(Windows中使用\r\n作為新行標(biāo)志)\t一個(gè)定位符\b一個(gè)退格符\Z一個(gè)ASCII26字符(CTRL+Z)\'一個(gè)單引號(hào)(“'”)\"一個(gè)雙引號(hào)(“"”)\\一個(gè)反斜線(xiàn)(“\”)\%一個(gè)“%”符。它用于在正文中搜索“%”的文字實(shí)例,否則這里“%”將解釋為一個(gè)通配符\_一個(gè)“_”符。它用于在正文中搜索“_”的文字實(shí)例,否則這里“_”將解釋為一個(gè)通配符常
量【例5.1】執(zhí)行如下語(yǔ)句:
SELECT'This\nis\nfour\nlines';執(zhí)行結(jié)果如圖。有以下幾種方式可以在字符串中包括引號(hào):(1)在字符串內(nèi)用單引號(hào)“'”引用的單引號(hào)“'”可以寫(xiě)成“''”(兩個(gè)單引號(hào));(2)在字符串內(nèi)用雙引號(hào)“"”引用的雙引號(hào)“"”可以寫(xiě)成“""”(兩個(gè)雙引號(hào));(3)可以在引號(hào)前加轉(zhuǎn)義字符(“\”);(4)在字符串內(nèi)用雙引號(hào)“"”引用的單引號(hào)“'”不需要特殊處理,不需要用雙字符或轉(zhuǎn)義字符。同樣,在字符串內(nèi)用單引號(hào)“'”引用的雙引號(hào)“"”也不需要特殊處理。執(zhí)行下面的語(yǔ)句:SELECT'hello','"hello"','""hello""','hel''lo','\'hello';執(zhí)行結(jié)果如圖。常
量2.?dāng)?shù)值常量數(shù)值常量可以分為整數(shù)常量和浮點(diǎn)數(shù)常量。整數(shù)常量即不帶小數(shù)點(diǎn)的十進(jìn)制數(shù),例如:1894,2,+145345234,–2147483648。浮點(diǎn)數(shù)常量是使用小數(shù)點(diǎn)的數(shù)值常量,例如:5.26,
1.39,101.5E5,0.5E
2。3.十六進(jìn)制常量十六進(jìn)制數(shù)值不區(qū)分大小寫(xiě),其前綴“X”或“x”可以被“0x”取代而且不用引號(hào)。即X'41'可以替換為0x41,注意,“0x”中x一定要小寫(xiě)。十六進(jìn)制值的默認(rèn)類(lèi)型是字符串。如果想要確保該值作為數(shù)字處理,可以使用CAST(...ASUNSIGNED)。執(zhí)行如下語(yǔ)句:SELECT0x41,CAST(0x41ASUNSIGNED);執(zhí)行結(jié)果如圖。常
量【例5.2】將字符串CAT轉(zhuǎn)換為16進(jìn)制常量。
SELECTHEX('CAT');執(zhí)行結(jié)果如圖。常
量4.日期時(shí)間常量日期時(shí)間常量:由用單引號(hào)將表示日期時(shí)間的字符串括起來(lái)的形式構(gòu)成。日期型常量包括年、月、日,數(shù)據(jù)類(lèi)型為DATE,按年-月-日的順序表示,中間的間隔符“-”也可以使用如“\”“@”或“%”等特殊符號(hào)。例如:“2024-06-17”。時(shí)間型常量包括小時(shí)、分鐘、秒及微秒數(shù),數(shù)據(jù)類(lèi)型為T(mén)IME,按“時(shí)-分-秒.微秒”的格式表示。例如:“12:30:43.00013”。5.位列值使用BIN函數(shù)可以將位列值顯示為二進(jìn)制常量。使用OCT函數(shù)可以將位列值顯示為數(shù)值常量。執(zhí)行下列語(yǔ)句:SELECTBIN(b'111101'+0),OCT(b'111101'+0);執(zhí)行結(jié)果如圖。常
量6.布爾值布爾值只包含兩個(gè)可能的值:TRUE和FALSE。FALSE的數(shù)字值為“0”,TRUE的數(shù)字值為“1”?!纠?.3】獲取TRUE和FALSE的值。SELECTTRUE,FALSE;執(zhí)行結(jié)果如圖。7.NULL值NULL值可適用于各種列類(lèi)型,它通常用來(lái)表示“沒(méi)有值”“無(wú)數(shù)據(jù)”等意義,并且不同于數(shù)字類(lèi)型的“0”或字符串類(lèi)型的空字符串。02變
量1.用戶(hù)變量2.系統(tǒng)變量變量1.用戶(hù)變量用戶(hù)變量與連接有關(guān)。也就是說(shuō),一個(gè)客戶(hù)端定義的變量不能被其他客戶(hù)端看到或使用。當(dāng)退出客戶(hù)端時(shí),該客戶(hù)端連接的所有變量將被自動(dòng)釋放??梢允褂肧ET語(yǔ)句定義和初始化一個(gè)變量。語(yǔ)法格式如下:SET@用戶(hù)變量=expr1[,@用戶(hù)變量2=expr2,…]其中,用戶(hù)變量名可以由當(dāng)前字符集的文字?jǐn)?shù)字字符、“.”“_”和“$”組成。Expr表示要給變量賦的值,可以是常量、變量或表達(dá)式?!纠?.4】創(chuàng)建用戶(hù)變量和查詢(xún)用戶(hù)變量的值。SET@name='王林';SET@user1=1,@user2=2,@user3=3;SET@user4=@user3+1;SELECT@name;其中:(1)創(chuàng)建用戶(hù)變量name并賦值為“王林”;(2)創(chuàng)建用戶(hù)變量user1并賦值為1,user2賦值為2,user3賦值為3;(3)創(chuàng)建用戶(hù)變量user4,它的值為user3的值加1;(4)查詢(xún)用戶(hù)變量name的值。執(zhí)行結(jié)果如圖。變量【例5.5】使用查詢(xún)給變量賦值。USExscjSET@student=(SELECT姓名FROMxsWHERE學(xué)號(hào)='221101');【例5.6】查詢(xún)表xs中名字等于student值的學(xué)生信息。SELECT學(xué)號(hào),姓名,專(zhuān)業(yè)名,出生日期 FROMxs WHERE姓名=@student;執(zhí)行結(jié)果如圖。對(duì)于SET語(yǔ)句,可以使用“=”或“:=”作為分配符。分配給每個(gè)變量的值可以為整數(shù)、實(shí)數(shù)、字符串或NULL值?!纠?.7】執(zhí)行如下語(yǔ)句:SELECT@t2:=(@t2:=2)+5ASt2;結(jié)果t2的值為7。變量2.系統(tǒng)變量和用戶(hù)變量一樣,系統(tǒng)變量也是一個(gè)值和一個(gè)數(shù)據(jù)類(lèi)型,但不同的是,系統(tǒng)變量在MySQL服務(wù)器啟動(dòng)時(shí)就被引入并初始化為默認(rèn)值?!纠?.8】獲得現(xiàn)在使用的MySQL版本。SELECT@@version;執(zhí)行結(jié)果如圖?!纠?.9】獲得系統(tǒng)當(dāng)前時(shí)間。SELECTCURRENT_TIME;執(zhí)行結(jié)果如圖。變量在MySQL中,有些系統(tǒng)變量的值是不可以改變的,例如VERSION和CURRENT_DATE。而有些系統(tǒng)變量是可以通過(guò)SET語(yǔ)句來(lái)修改的,例如SQL_WARNINGS。SET語(yǔ)句的語(yǔ)法格式如下:SET系統(tǒng)變量名=expr |[GLOBAL|SESSION]系統(tǒng)變量名=expr |@@[global.|session.]系統(tǒng)變量名=expr(1)全局系統(tǒng)變量。當(dāng)啟動(dòng)MySQL的時(shí)候,全局系統(tǒng)變量就被初始化了,并且應(yīng)用于每個(gè)啟動(dòng)的會(huì)話(huà)。如果使用GLOBAL(要求SUPER權(quán)限)來(lái)設(shè)置系統(tǒng)變量,則該值被記住,并被用于新的連接,直到服務(wù)器重新啟動(dòng)為止。【例5.10】將全局系統(tǒng)變量sort_buffer_size的值改為25000。SET@@global.sort_buffer_size=25000;變量(2)會(huì)話(huà)系統(tǒng)變量。會(huì)話(huà)系統(tǒng)變量只適用于當(dāng)前的會(huì)話(huà)。大多數(shù)會(huì)話(huà)系統(tǒng)變量的名字和全局系統(tǒng)變量的名字相同。當(dāng)啟動(dòng)會(huì)話(huà)的時(shí)候,每個(gè)會(huì)話(huà)系統(tǒng)變量都和同名的全局系統(tǒng)變量的值相同。一個(gè)會(huì)話(huà)系統(tǒng)變量的值是可以改變的,但是這個(gè)新的值僅適用于正在運(yùn)行的會(huì)話(huà),不適用于其他會(huì)話(huà)。【例5.11】將當(dāng)前會(huì)話(huà)的SQL_WARNINGS系統(tǒng)變量設(shè)置為ON。SET@@SQL_WARNINGS=ON;【例5.12】對(duì)于當(dāng)前會(huì)話(huà),把系統(tǒng)變量SQL_SELECT_LIMIT的值設(shè)置為10。這個(gè)變量決定了SELECT語(yǔ)句的結(jié)果集中的最大行數(shù)。SET@@SESSION.SQL_SELECT_LIMIT=10;SELECT@@LOCAL.SQL_SELECT_LIMIT;執(zhí)行結(jié)果如圖。變量MySQL對(duì)于大多數(shù)系統(tǒng)變量都有默認(rèn)值。當(dāng)數(shù)據(jù)庫(kù)服務(wù)器啟動(dòng)的時(shí)候,就使用這些值?!纠?.13】把SQL_SELECT_LIMIT的值恢復(fù)為默認(rèn)值。用戶(hù)使用SHOWVARIABLES語(yǔ)句可以得到系統(tǒng)變量清單,使用SHOWGLOBALVARIABLES可以返回所有全局系統(tǒng)變量,使用SHOWSESSIONVARIABLES可以返回所有會(huì)話(huà)系統(tǒng)變量。要獲得與樣式匹配的具體的變量名稱(chēng)或名稱(chēng)清單,需使用LIKE子句,要得到名稱(chēng)與樣式匹配的變量的清單,需使用通配符“%”?!纠?.14】得到系統(tǒng)變量清單。SET@@LOCAL.SQL_SELECT_LIMIT=DEFAULT;SHOWVARIABLES;SHOWVARIABLESLIKE'max_join_size';SHOWGLOBALVARIABLESLIKE'max_join_size';SHOWVARIABLESLIKE'character%';第5章MySQL語(yǔ)言——運(yùn)算符與表達(dá)式01算術(shù)運(yùn)算符算術(shù)運(yùn)算符(1)“+”運(yùn)算符?!?”運(yùn)算符用于獲得兩個(gè)或多個(gè)值的和:SELECT1.2+3.09345,0.00000000001+0.00000000001;執(zhí)行結(jié)果如圖。(2)“–”運(yùn)算符。“–”運(yùn)算符用于從一個(gè)值中減去另一個(gè)值,并可以更改參數(shù)符號(hào):SELECT200-201,0.14-0.1,-2,-23.4;執(zhí)行結(jié)果如圖?!?”和“-”運(yùn)算符還可用于對(duì)日期時(shí)間值(如DATETIME)進(jìn)行算術(shù)運(yùn)算。例如:SELECT'2024-01-20'+INTERVAL22DAY;執(zhí)行結(jié)果如圖。算術(shù)運(yùn)算符(3)“*”運(yùn)算符?!?”運(yùn)算符用來(lái)獲得兩個(gè)或多個(gè)值的乘積:SELECT5*12,5*0,-11.2*8.2,-19530415*-19540319;執(zhí)行結(jié)果如圖。(4)“/”運(yùn)算符?!?”運(yùn)算符用來(lái)獲得一個(gè)值除以另一個(gè)值得到的商:SELECT12/2,1.6/-0.1,23/7,23.00/7.00000,1/0;執(zhí)行結(jié)果如圖。算術(shù)運(yùn)算符(5)“%”運(yùn)算符?!?”運(yùn)算符用來(lái)獲得一個(gè)或多個(gè)除法運(yùn)算的余數(shù):SELECT12%5,-32%7,3%0;執(zhí)行結(jié)果如圖。在運(yùn)算過(guò)程中,用字符串表示的數(shù)字可以自動(dòng)地轉(zhuǎn)換為字符串。當(dāng)執(zhí)行轉(zhuǎn)換時(shí),如果字符串的第一位是數(shù)字,那么它轉(zhuǎn)換為這個(gè)數(shù)字的值,否則,它轉(zhuǎn)換為零。例如:SELECT'80AA'+'1','AA80'+1,'10x'*2*'qwe';執(zhí)行結(jié)果如圖。02比較運(yùn)算符比較運(yùn)算符比較運(yùn)算符(又稱(chēng)關(guān)系運(yùn)算符),用于比較運(yùn)算符兩邊的值,其運(yùn)算結(jié)果為邏輯值,邏輯值可以為以下3種之一:1(真)、0(假)及NULL(不確定)。表5.5列出了在MySQL中可以使用的各種比較運(yùn)算符。運(yùn)
算
符含
義運(yùn)
算符含
義=等于<=小于等于>
大于<>、!=不等于<
小于<=>相等或都等于空>=大于等于
【例5.15】執(zhí)行下列語(yǔ)句:SELECT5='5ab','5'='5ab';執(zhí)行結(jié)果如圖。比較運(yùn)算符(1)“=”運(yùn)算符?!?”運(yùn)算符用于比較運(yùn)算符的兩邊是否相等,也可以用于對(duì)字符串進(jìn)行比較,示例如下:SELECT3.14=3.142,5.12=5.120,'a'='A','A'='B','apple'='banana';執(zhí)行結(jié)果如圖。使用BINARY關(guān)鍵字示例如下:SELECT'Apple'='apple',BINARY'Apple'='apple';執(zhí)行結(jié)果如圖。比較運(yùn)算符(2)“<>”運(yùn)算符。與“=”運(yùn)算符相對(duì)立的是“<>”運(yùn)算符,它用來(lái)檢測(cè)運(yùn)算符的兩邊是否不相等,如果不相等則返回1,相等則返回0,示例如下:SELECT5<>5,5<>6,'a'<>'a','5a'<>'5b';執(zhí)行結(jié)果如圖。SELECTNULL<>NULL,0<>NULL,0<>0;執(zhí)行結(jié)果如圖。又如:比較運(yùn)算符(3)“<=”“>=”“<”和“>”運(yùn)算符?!?lt;=”“>=”“<”“>”運(yùn)算符用來(lái)比較運(yùn)算符的左邊是小于或等于、大于或等于、小于還是大于運(yùn)算符的右邊,示例如下:SELECT10>10,10>9,10<9,3.14>3.142;執(zhí)行結(jié)果如圖。03邏輯運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算符用于對(duì)某個(gè)條件進(jìn)行測(cè)試,運(yùn)算結(jié)果為T(mén)RUE(1)或FALSE(0)。MySQL提供的邏輯運(yùn)算符如表。運(yùn)
算
符運(yùn)算規(guī)則運(yùn)
算
符運(yùn)算規(guī)則NOT或!邏輯非OR或||邏輯或AND或&&邏輯與XOR邏輯異或(1)NOT運(yùn)算符。邏輯運(yùn)算符中較簡(jiǎn)單的是NOT運(yùn)算符,它對(duì)跟在它后面的邏輯測(cè)試判斷取反,把真變假,把假變真。例如:SELECTNOT1,NOT0,NOT(1=1),NOT(10>9);執(zhí)行結(jié)果如圖。邏輯運(yùn)算符(2)AND運(yùn)算符。AND運(yùn)算符用于測(cè)試兩個(gè)或更多的值(或表達(dá)式求值)的有效性,如果它的所有成分為真,并且不是NULL,它返回1,否則返回0。例如:SELECT(1=1)AND(9>10),('a'='a')AND('c'<'d');執(zhí)行結(jié)果如圖。(3)OR運(yùn)算符。如果包含的值或表達(dá)式有一個(gè)為真,并且不是NULL(不需要所有成分為真),它返回1,若全為假則返回0。例如:SELECT(1=1)OR(9>10),('a'='b')OR(1>2);執(zhí)行結(jié)果如圖。邏輯運(yùn)算符(4)XOR運(yùn)算符。如果包含的值或表達(dá)式一個(gè)為真,而另一個(gè)為假并且不是NULL,那么它返回1,否則返回0。例如:SELECT(1=1)XOR(2=3),(1<2)XOR(9<10);執(zhí)行結(jié)果如圖。04位運(yùn)算符位運(yùn)算符位運(yùn)算符在兩個(gè)表達(dá)式之間執(zhí)行二進(jìn)制位操作,這兩個(gè)表達(dá)式的類(lèi)型可為整型或與整型兼容的數(shù)據(jù)類(lèi)型(如字符型,但不能為image類(lèi)型),位運(yùn)算符如表。運(yùn)
算
符運(yùn)算規(guī)則運(yùn)
算
符運(yùn)算規(guī)則&位AND~位取反|位OR>>
位右移^位XOR<<
位左移(1)“|”運(yùn)算符和“&”運(yùn)算符?!皘”運(yùn)算符用于執(zhí)行一個(gè)位的或操作,而“&”用于執(zhí)行一個(gè)位的與操作。例如:SELECT13|28,3|4,13&28,3&4;執(zhí)行結(jié)果如圖。位運(yùn)算符(2)“<<”“>>”運(yùn)算符?!?lt;<”“>>”運(yùn)算符分別用于向左和向右移動(dòng)位,例如:SELECT1<<7,64>>1;執(zhí)行結(jié)果如圖。(3)“^”運(yùn)算符?!癪”運(yùn)算符用于執(zhí)行位異或(XOR)操作:SELECT1^0,12^5,123^23;執(zhí)行結(jié)果如圖。位運(yùn)算符(4)“~”運(yùn)算符?!啊边\(yùn)算符用于執(zhí)行位取反操作,并返回64位整型結(jié)果:SELECT~18446744073709551614,~1;執(zhí)行結(jié)果如圖。05運(yùn)算符優(yōu)先級(jí)運(yùn)算符優(yōu)先級(jí)當(dāng)一個(gè)復(fù)雜的表達(dá)式中有多個(gè)運(yùn)算符時(shí),運(yùn)算符優(yōu)先級(jí)決定執(zhí)行運(yùn)算的先后次序。執(zhí)行的次序有時(shí)會(huì)影響所得到的運(yùn)算結(jié)果。運(yùn)算符優(yōu)先級(jí)如表。運(yùn)
算
符優(yōu)先級(jí)運(yùn)
算
符優(yōu)先級(jí)+(正)、–(負(fù))、~(按位NOT)1NOT6*(乘)、/(除)、%(模)2AND7+(加)、–(減)3ALL、ANY、BETWEEN、IN、LIKE、OR、SOME8=,>,<,>=,<=,<>,!=,!>,!<比較運(yùn)算符4=(賦值)9^(位異或)、&(位與)、|(位或)5
在一個(gè)表達(dá)式中按先高(優(yōu)先級(jí)數(shù)字?。┖蟮停▋?yōu)先級(jí)數(shù)字大)的順序進(jìn)行運(yùn)算。06表達(dá)式表達(dá)式(1)表達(dá)式就是常量、變量、列名、運(yùn)算符和函數(shù)的組合。一個(gè)表達(dá)式通??梢缘玫揭粋€(gè)值。與常量和變量一樣,表達(dá)式的值也具有某種數(shù)據(jù)類(lèi)型,可能的數(shù)據(jù)類(lèi)型有字符類(lèi)型、數(shù)值類(lèi)型、日期時(shí)間類(lèi)型。(2)表達(dá)式還可以根據(jù)值的復(fù)雜性來(lái)分類(lèi)。①當(dāng)表達(dá)式的結(jié)果只是一個(gè)值,如一個(gè)數(shù)值、一個(gè)單詞或一個(gè)日期,這種表達(dá)式叫作標(biāo)量表達(dá)式。例如:1+2,'a'>'b'。②當(dāng)表達(dá)式的結(jié)果是由不同類(lèi)型數(shù)據(jù)組成的一行值,這種表達(dá)式叫作行表達(dá)式。例如:學(xué)號(hào),'王林','計(jì)算機(jī)',15*10③若是表達(dá)式的結(jié)果為0個(gè)、1個(gè)或多個(gè)行表達(dá)式的集合,那么這個(gè)表達(dá)式就叫作表表達(dá)式。(3)表達(dá)式按照形式還可分為單一表達(dá)式和復(fù)合表達(dá)式。單一表達(dá)式就是一個(gè)單一的值,如一個(gè)常量或列名。復(fù)合表達(dá)式是由運(yùn)算符將多個(gè)單一表達(dá)式連接而成的表達(dá)式,例如:1+2+3,a=b+3,'2008-01-20'+INTERVAL2MONTH第5章MySQL語(yǔ)言——系統(tǒng)內(nèi)置函數(shù)01數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)(1)GREATEST()函數(shù)和LEAST()函數(shù)。GREATEST()函數(shù)和LEAST()函數(shù)的功能分別是獲得一組數(shù)中的最大值和最小值,例如:SELECTGREATEST(10,9,128,1),LEAST(1,2,3);執(zhí)行結(jié)果如圖。數(shù)學(xué)函數(shù)還可以嵌套使用,例如:SELECTGREATEST(-2,LEAST(0,3)),LEAST(1,GREATEST(1,2));執(zhí)行結(jié)果如圖。數(shù)學(xué)函數(shù)(2)FLOOR()函數(shù)和CEILING()函數(shù)。FLOOR()函數(shù)用于獲得小于一個(gè)數(shù)的最大整數(shù)值,CEILING()函數(shù)用于獲得大于一個(gè)數(shù)的最小整數(shù)值,例如:SELECTFLOOR(-1.2),CEILING(-1.2),FLOOR(9.9),CEILING(9.9);執(zhí)行結(jié)果如圖。數(shù)學(xué)函數(shù)(3)ROUND()函數(shù)和TRUNCATE()函數(shù)。ROUND()函數(shù)用于獲得一個(gè)數(shù)經(jīng)四舍五入后的整數(shù)值,例如:SELECTROUND(5.1),ROUND(25.501),ROUND(9.8);執(zhí)行結(jié)果如圖。TRUNCATE()函數(shù)用于把一個(gè)數(shù)字截取為一個(gè)指定小數(shù)位數(shù)的數(shù)字,逗號(hào)后面的數(shù)字表示指定小數(shù)的位數(shù),例如:SELECTTRUNCATE(1.54578,2),TRUNCATE(-76.12,5);執(zhí)行結(jié)果如圖。數(shù)學(xué)函數(shù)(4)ABS()函數(shù)。ABS()函數(shù)用來(lái)獲得一個(gè)數(shù)的絕對(duì)值,例如:SELECTABS(-878),ABS(-8.345);執(zhí)行結(jié)果如圖。(5)SIGN()函數(shù)。SIGN()函數(shù)用于表示數(shù)字的符號(hào),返回的結(jié)果是1(正數(shù))、1(負(fù)數(shù))或者0(零),例如:SELECTSIGN(-2),SIGN(2),SIGN(0);執(zhí)行結(jié)果如圖。數(shù)學(xué)函數(shù)(6)SQRT()函數(shù)。SQRT()函數(shù)用于返回一個(gè)數(shù)的平方根,例如:SELECTSQRT(25),SQRT(15),SQRT(1);執(zhí)行結(jié)果如圖。(7)POW()函數(shù)。POW()函數(shù)用于指數(shù)計(jì)算,以一個(gè)數(shù)作為另外一個(gè)數(shù)的指數(shù),并返回結(jié)果,例如:SELECTPOW(2,2),POW(10,-2),POW(0,3);執(zhí)行結(jié)果如圖。數(shù)學(xué)函數(shù)(8)SIN()函數(shù)、COS()函數(shù)和TAN()函數(shù)。SIN()函數(shù)、COS()函數(shù)和TAN()函數(shù)分別用于返回一個(gè)角度(弧度)的正弦值、余弦值和正切值,例如:SELECTSIN(1),COS(1),TAN(RADIANS(45));執(zhí)行結(jié)果如圖。(9)ASIN()函數(shù)、ACOS()函數(shù)和ATAN()函數(shù)。ASIN()函數(shù)、ACOS()函數(shù)和ATAN()函數(shù)分別用于返回一個(gè)角度(弧度)的反正弦、反余弦和反正切值,例如:SELECTASIN(1),ACOS(1),ATAN(DEGREES(45));執(zhí)行結(jié)果如圖。數(shù)學(xué)函數(shù)(10)BIN()函數(shù)、OTC()函數(shù)和HEX()函數(shù)。BIN()函數(shù)、OTC()函數(shù)和HEX()函數(shù)分別用于返回一個(gè)數(shù)的二進(jìn)制值、八進(jìn)制值和十六進(jìn)制值,這個(gè)值作為字符串返回,例如:SELECTBIN(2),OCT(12),HEX(80);執(zhí)行結(jié)果如圖。02聚合函數(shù)聚合函數(shù)聚合函數(shù)常常用于對(duì)一組值進(jìn)行計(jì)算,然后返回單個(gè)值。通過(guò)把聚合函數(shù)(如COUNT()函數(shù)和SUM()函數(shù))添加到帶有一個(gè)GROUPBY子句的SELECT語(yǔ)句塊中,數(shù)據(jù)就可以聚合。聚合意味著是求一個(gè)和、平均、頻次及子和,而不是單個(gè)的值。03字符串函數(shù)字符串函數(shù)(1)ASCII()函數(shù)。語(yǔ)法格式如下:ASCII(char)返回字符表達(dá)式左端字符的ASCII值。參數(shù)char為字符型的表達(dá)式,返回值類(lèi)型為整型。【例5.16】返回字母A的ASCII值。SELECTASCII('A');執(zhí)行結(jié)果如圖。字符串函數(shù)(2)CHAR()函數(shù)。語(yǔ)法格式如下:CHAR(x1,x2,x3,…)將x1,x2,x3…的ASCII值轉(zhuǎn)換為字符,將結(jié)果組合成一個(gè)字符串。參數(shù)x1,x2,x3,…為0~255的整數(shù),返回值類(lèi)型為字符型?!纠?.17】返回ASCII值為65、66、67的字符,并將其組成一個(gè)字符串。SELECTCHAR(65,66,67);執(zhí)行結(jié)果如圖。字符串函數(shù)(3)LEFT()函數(shù)和RIGHT()函數(shù)。語(yǔ)法格式如下:LEFT|RIGHT(str,x)分別用于返回從字符串str左邊和右邊開(kāi)始指定的x個(gè)字符?!纠?.18】返回kc表中課程名列中左邊的3個(gè)字符。USExscjSELECTLEFT(課程名,3)FROMkc;執(zhí)行結(jié)果如圖。字符串函數(shù)(4)TRIM()函數(shù)、LTRIM()函數(shù)和RTRIM()函數(shù)。語(yǔ)法格式如下:TRIM|LTRIM|RTRIM(str)使用LTRIM()函數(shù)和RTRIM()函數(shù)分別用于刪除字符串中前面的空格和尾部的空格,返回值為字符串。參數(shù)str為字符型表達(dá)式,返回值類(lèi)型為varchar。TRIM()函數(shù)用于刪除字符串首部和尾部的所有空格?!纠?.19】執(zhí)行如下語(yǔ)句:SELECTTRIM('MySQL');執(zhí)行結(jié)果如圖。字符串函數(shù)(5)RPAD()函數(shù)和LPAD()函數(shù)。語(yǔ)法格式如下:RPAD|LPAD(str,n,pad)使用RPAD()函數(shù)和LPAD()函數(shù)意味著分別用字符串pad對(duì)字符串str的右邊和左邊進(jìn)行填補(bǔ),直至str中字符數(shù)目達(dá)到n個(gè),最后返回填補(bǔ)后的字符串。若str中的字符數(shù)目大于n,則返回str的前n個(gè)字符?!纠?.20】執(zhí)行如下語(yǔ)句:SELECTRPAD('中國(guó)夢(mèng)',8,'!'),lpad('welcome',10,'*');執(zhí)行結(jié)果如圖。字符串函數(shù)(6)REPLACE()函數(shù)。語(yǔ)法格式如下:REPLACE(str1,str2,str3)REPLACE()函數(shù)用于用字符串str3替換str1中所有出現(xiàn)的字符串str2,最后返回替換后的字符串。【例5.21】執(zhí)行如下語(yǔ)句:SELECTREPLACE('WELCOMEtoCHINA','o','K');執(zhí)行結(jié)果如圖。字符串函數(shù)(7)CONCAT()函數(shù)。語(yǔ)法格式如下:CONCAT(s1,s2,…sn)CONCAT()函數(shù)用于連接指定的兩個(gè)或多個(gè)字符串?!纠?.22】執(zhí)行如下語(yǔ)句:selectCONCAT('中國(guó)夢(mèng)','我的夢(mèng)');執(zhí)行結(jié)果如圖。字符串函數(shù)(8)SUBSTRING()函數(shù)。語(yǔ)法格式如下:SUBSTRING(expression,Start,Length)用于返回expression中指定的部分?jǐn)?shù)據(jù)。參數(shù)expression可為字符串、二進(jìn)制字符串、text、image列或表達(dá)式等。Start、Length均為整型數(shù)據(jù),前者用于指定子串的開(kāi)始位置,后者用于指定子串的長(zhǎng)度(要返回字節(jié)數(shù))。如果expression類(lèi)型是字符類(lèi)型和二進(jìn)制類(lèi)型,則返回值類(lèi)型與expression的類(lèi)型相同。如果為text類(lèi)型,返回的是varchar類(lèi)型。【例5.23】以下程序用于在一列中返回xs表中所有女學(xué)生的姓氏,在另一列中返回其名字。USExscjSELECTSUBSTRING(姓名,1,1)AS姓,SUBSTRING(姓名,2,LENGTH(姓名)-1)AS名 FROMxs WHERE性別=0 ORDERBY姓名;執(zhí)行結(jié)果如圖。字符串函數(shù)(9)STRCMP()函數(shù)。語(yǔ)法格式如下:STRCMP(s1,s2)STRCMP()函數(shù)用于比較兩個(gè)字符串,s1與s2相等返回0,s1大于s2返回1,s1小于s2返回-1?!纠?.24】執(zhí)行如下語(yǔ)句:SELECTSTRCMP('A','A'),STRCMP('ABC','OPQ'),STRCMP('T','B');執(zhí)行結(jié)果如圖。04日期和時(shí)間函數(shù)日期和時(shí)間函數(shù)(1)NOW()函數(shù)。使用NOW()函數(shù)可以獲得當(dāng)前的日期和時(shí)間,它以“YYYY-MM-DDHH∶MM∶SS”的格式返回當(dāng)前的日期和時(shí)間。語(yǔ)法格式如下:SELECTNOW();(2)CURTIME()函數(shù)和CURDATE()函數(shù)。CURTIME()函數(shù)和CURDATE()函數(shù)比NOW()函數(shù)更為具體化,使用它們分別返回的是當(dāng)前的時(shí)間和日期,沒(méi)有參數(shù)。語(yǔ)法格式如下:SELECTCURTIME(),CURDATE();(3)YEAR()函數(shù)。YEAR()函數(shù)用于分析一個(gè)日期值并返回其中關(guān)于年的部分,例如:SELECTYEAR(20080512142800),YEAR('1982-11-02');執(zhí)行結(jié)果如圖。日期和時(shí)間函數(shù)(4)MOTNTH()函數(shù)和MONTHNAME()函數(shù)。MOTNTH()函數(shù)和MONTHNAME()函數(shù)分別用于以數(shù)值和字符串的格式返回表示月的部分,例如:SELECTMONTH(20080512142800),MONTHNAME('1982-11-02');執(zhí)行結(jié)果如圖。(5)DAYOFYEAR()函數(shù)、DAYOFWEEK()函數(shù)和DAYOFMONTH()函數(shù)。DAYOFYEAR()函數(shù)、DAYOFWEEK()函數(shù)和DAYOFMONTH()函數(shù)分別用于返回其一天在一年、一星期及一個(gè)月中的序數(shù),例如。SELECTDAYOFYEAR(20080512),DAYOFMONTH('2008-05-12');執(zhí)行結(jié)果如圖。SELECTDAYOFWEEK(20080512);執(zhí)行結(jié)果如圖。日期和時(shí)間函數(shù)(6)DAYNAME()函數(shù)。和MONTHNAME()函數(shù)相似,DAYNAME()函數(shù)用于以字符串形式返回星期名,例如:SELECTDAYNAME('2008-06-01');執(zhí)行結(jié)果如圖。(7)WEEK()函數(shù)和YEARWEEK()函數(shù)。WEEK()函數(shù)用于返回指定的日期是該年的第幾個(gè)星期,而YEARWEEK()函數(shù)用于返回指定的日期是哪一年的第幾個(gè)星期,例如:SELECTWEEK('2008-05-01'),YEARWEEK(20080501);執(zhí)行結(jié)果如圖。日期和時(shí)間函數(shù)(8)HOUR()函數(shù)、MINUTE()函數(shù)和SECOND()函數(shù)。HOUR()函數(shù)、MINUTE()函數(shù)和SECOND()函數(shù)分別用于返回指定時(shí)間值的小時(shí)、分鐘和秒的部分,例如:SELECTHOUR(155300),MINUTE('15:53:00'),SECOND(143415);執(zhí)行結(jié)果如圖。日期和時(shí)間函數(shù)(9)DATE_ADD()函數(shù)和DATE_SUB()函數(shù)。使用DATE_ADD()函數(shù)和DATE_SUB()函數(shù)可以對(duì)日期和時(shí)間進(jìn)行算術(shù)操作,它們分別用來(lái)增加和減少日期值,其使用的關(guān)鍵字如表。關(guān)
鍵
字間隔值的格式關(guān)
鍵
字間隔值的格式DAY日期MINUTE分鐘DAY_HOUR日期∶小時(shí)MINUTE_SECOND分鐘∶秒DAY_MINUTE日期∶小時(shí)∶分鐘MONTH月DAY_SECOND日期∶小時(shí)∶分鐘∶秒SECOND秒HOUR小時(shí)YEAR年HOUR_MINUTE小時(shí)∶分鐘YEAR_MONTH年-月HOUR_SECOND小時(shí)∶分鐘∶秒
DATE_ADD()函數(shù)和DATE_SUB()函數(shù)的語(yǔ)法格式為:DATE_ADD|DATE_SUB(date,INTERVALintkeyword)日期和時(shí)間函數(shù)DATE_ADD函數(shù)用于計(jì)算date加上間隔時(shí)間后的值,DATE_SUB則用于計(jì)算date減去時(shí)間間隔后的值。例如:SELECTDATE_ADD('2014-08-08',INTERVAL17DAY);執(zhí)行結(jié)果如圖。SELECTDATE_SUB('2014-08-2010:25:35',INTERVAL20MINUTE);執(zhí)行結(jié)果如圖。日期和時(shí)間函數(shù)【例5.25】求xs表中所有女學(xué)生的年齡。USExscjSELECT學(xué)號(hào),姓名,YEAR(NOW())-YEAR(出生日期)AS年齡 FROMxs WHERE性別=0;執(zhí)行結(jié)果如圖。05加密函數(shù)加密函數(shù)(1)AES_ENCRYPT()函數(shù)和AES_DECRYPT()函數(shù)。語(yǔ)法格式如下:AES_ENCRYPT|AES_DECRYPT(str,key)AES_ENCRYPT()函數(shù)和AES_DECRYPT()函數(shù)可以被看作MySQL中普遍使用的安全的加密函數(shù)。AES_ENCRYPT()函數(shù)返回的是密鑰key對(duì)字符串str利用高級(jí)加密標(biāo)準(zhǔn)(AES)算法加密后的結(jié)果,結(jié)果是一個(gè)二進(jìn)制形式的字符串,以BLOB類(lèi)型存儲(chǔ)。AES_DECRYPT函數(shù)用于對(duì)用高級(jí)加密標(biāo)準(zhǔn)算法加密的數(shù)據(jù)進(jìn)行解密。若檢測(cè)到無(wú)效數(shù)據(jù)或不正確的填充,函數(shù)會(huì)返回NULL。(2)ENCODE()函數(shù)和DECODE()函數(shù)。語(yǔ)法格式如下:ENCODE|DECODE(str,key)ENCODE()函數(shù)用來(lái)對(duì)一個(gè)字符串str進(jìn)行加密,返回的結(jié)果是一個(gè)二進(jìn)制字符串,以BLOB類(lèi)型存儲(chǔ)。加密函數(shù)(3)ENCRYPT()函數(shù)。ENCRYPT()函數(shù)使用UNIX系統(tǒng)加密字符串,接收要加密的字符串和用于加密過(guò)程的salt(一個(gè)可以確定唯一口令的字符串)。該函數(shù)在Windows上不可用。語(yǔ)法格式如下:ENCRYPT(str,salt)(4)PASSWORD()函數(shù)的語(yǔ)法格式如下:PASSWORD(str)返回字符串str加密后的密碼字符串,適合于插入MySQL的安全系統(tǒng)。該加密過(guò)程不可逆,和UNIX密碼加密過(guò)程使用不同的算法。主要用于MySQL的認(rèn)證系統(tǒng)?!纠?.26】返回字符串“MySQL”的加密版本。selectPASSWORD('MySQL');執(zhí)行結(jié)果如圖。06控制流函數(shù)控制流函數(shù)(1)IFNULL()函數(shù)和NULLIF()函數(shù),語(yǔ)法格式為:IFNULL(expr1,expr2)IFNULL()函數(shù)的作用是判斷參數(shù)expr1是否為NULL,當(dāng)參數(shù)expr1為NULL時(shí)返回expr2,不為NULL時(shí)返回expr1。IFNULL()函數(shù)的返回值是數(shù)字或字符串?!纠?.27】執(zhí)行如下語(yǔ)句:SELECTIFNULL(1,2),IFNULL(NULL,'MySQL'),IFNULL(1/0,10);執(zhí)行結(jié)果如圖。語(yǔ)法格式為:NULLIF(expr1,expr2)NULLIF()函數(shù)用于檢驗(yàn)提供的兩個(gè)參數(shù)是否相等,如果相等,則返回NULL,如果不相等就返回第一個(gè)參數(shù)。控制流函數(shù)【例5.28】執(zhí)行如下語(yǔ)句:SELECTNULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,3+4);執(zhí)行結(jié)果如圖。控制流函數(shù)(2)IF()函數(shù)。和許多腳本語(yǔ)言提供的IF()函數(shù)一樣,MySQL中的IF()函數(shù)也可以用于建立一個(gè)簡(jiǎn)單的條件測(cè)試。語(yǔ)法格式如下:IF(expr1,expr2,expr3)這個(gè)函數(shù)中有3個(gè)參數(shù),第一個(gè)是要被判斷的表達(dá)式,如果表達(dá)式為真,IF()將會(huì)返回第二個(gè)參數(shù);如果為假,IF()將會(huì)返回第三個(gè)參數(shù)?!纠?.29】判斷2×4是否大于9-5,是則返回“是”,否則返回“否”。SELECTIF(2*4>9-5,'是','否');執(zhí)行結(jié)果如圖??刂屏骱瘮?shù)【例5.30】返回xs表中名字為兩個(gè)字的學(xué)生的姓名、性別和專(zhuān)業(yè)名。性別值如為0顯示“女”,為1則顯示“男”。SELECT姓名,IF(性別=0,'女','男')AS性別,專(zhuān)業(yè)名 FROMxs WHERE姓名LIKE'__';執(zhí)行結(jié)果如圖。07格式化函數(shù)格式化函數(shù)(1)FORMAT()函數(shù),語(yǔ)法格式如下:FORMAT(x,y)FORMAT()函數(shù)把數(shù)值格式化為以逗號(hào)間隔的數(shù)字序列。FORMAT()的第一個(gè)參數(shù)x是被格式化的數(shù)據(jù),第二個(gè)參數(shù)y是結(jié)果的小數(shù)位數(shù),例如:SELECTFORMAT(11111111111.23654,2),FORMAT(-5468,4);執(zhí)行結(jié)果如圖。格式化函數(shù)(2)DATE_FORMAT()函數(shù)和TIME_FORMAT()函數(shù)。DATE_FORMAT()函數(shù)和TIME_FORMAT()函數(shù)可以用來(lái)格式化日期和時(shí)間值。語(yǔ)法格式如下:DATE_FORMAT/TIME_FORMAT(date|time,fmt)其中,date和time是需要格式化的日期和時(shí)間值,fmt是日期和時(shí)間值格式化的形式,表列出了MySQL中的日期/時(shí)間值格式化代碼。關(guān)
鍵
字間隔值的格式關(guān)
鍵
字間隔值的格式%a縮寫(xiě)的星期名(Sun,Mon…)%pAM或PM%b縮寫(xiě)的月份名(Jan,F(xiàn)eb…)%r時(shí)間,12小時(shí)的格式%d月份中的天數(shù)%S秒(00,01)%H小時(shí)(01,02…)%T時(shí)間,24小時(shí)的格式%I分鐘(00,01…)%w一周中的天數(shù)(0,1)%j一年中的天數(shù)(001,002…)%W長(zhǎng)型星期的名字(Sunday,Monday…)%m月份,2位(00,01…)%Y年份,4位%M長(zhǎng)型月份的名字(January,F(xiàn)ebruary)
例如:selectDATE_FORMAT(NOW(),'%
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 多樣化六年級(jí)語(yǔ)文學(xué)習(xí)經(jīng)驗(yàn)分享試題及答案
- 2024年汽車(chē)美容師企業(yè)運(yùn)營(yíng)管理試題及答案
- 核心客戶(hù)的管理與維護(hù)策略
- 云南省楚雄彝族自治州2023-2024學(xué)年八年級(jí)下學(xué)期英語(yǔ)期中試卷(含答案)
- 預(yù)測(cè)2024年二手車(chē)評(píng)估師考試趨勢(shì)試題及答案
- 二手車(chē)市場(chǎng)營(yíng)銷(xiāo)策略的評(píng)估與調(diào)整試題及答案
- 2024年公務(wù)員考試的行政能力測(cè)試分析試題及答案
- 寵物營(yíng)養(yǎng)師發(fā)展的法律環(huán)境考題及答案
- 為何選擇成為二手車(chē)評(píng)估師試題及答案
- 2024年小自考公共事業(yè)管理考察內(nèi)容及答案
- 2025年開(kāi)封大學(xué)單招職業(yè)傾向性測(cè)試題庫(kù)及答案1套
- 現(xiàn)場(chǎng)材料進(jìn)場(chǎng)驗(yàn)收培訓(xùn)
- 外賣(mài)騎手交通安全培訓(xùn)
- 【指導(dǎo)規(guī)則】央企控股上市公司ESG專(zhuān)項(xiàng)報(bào)告參考指標(biāo)體系
- 電力公司安全生產(chǎn)責(zé)任制度
- 工程機(jī)械租賃服務(wù)方案及保障措施 (二)
- 《矩陣式組織結(jié)構(gòu)》課件
- 南京理工大學(xué)泰州科技學(xué)院《電路》2021-2022學(xué)年第一學(xué)期期末試卷
- 【MOOC】公司財(cái)務(wù)管理:理論與案例-北京交通大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 基于STM32的農(nóng)業(yè)智慧物聯(lián)灌溉系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 教師職業(yè)病健康知識(shí)講座
評(píng)論
0/150
提交評(píng)論