基礎(chǔ)篇課件版第04章運(yùn)算符_第1頁(yè)
基礎(chǔ)篇課件版第04章運(yùn)算符_第2頁(yè)
基礎(chǔ)篇課件版第04章運(yùn)算符_第3頁(yè)
基礎(chǔ)篇課件版第04章運(yùn)算符_第4頁(yè)
基礎(chǔ)篇課件版第04章運(yùn)算符_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

httpmysql>mysql>SELECT100,100+0,100-0,100+50,100+50-30,100+35.5,100-FROM |100|100+0|100-0|100+50|100+50-30|100+35.5|100-35.5 |100 +100++100++150++120++135.5++64.5+1rowinset(0.00在Jav中,+的左右兩邊如果有字符串,那么表示字符串的拼接。但是在MSQL中+只表示數(shù)值相加。如果遇到非數(shù)值類型,先嘗試轉(zhuǎn)成數(shù)值,如果轉(zhuǎn)失敗,就按計(jì)算。(補(bǔ)充:QL中字符串拼接要使用字符串函數(shù)ONT()實(shí)現(xiàn))++++++++++|100|100*1|100*1.0|100/1.0|100/2|100+2*5/2|100/3|DIV0 +|100NULL100100.0|100.0000|50.0000105.0000|33.3333 +1rowinset(0.00SELECTemployee_id,salary,salary*12annual_salFROMemployees; 求模(求余)運(yùn)算符將t22表中的字段i對(duì)3和5進(jìn)行求模(求余)mysql>mysql>SELECT12%3,12MOD5FROM |12%3|12MOD5 0 2 1rowinset(0.00SELECT*FROMemployeesWEREemployee_idMOD2=比較運(yùn)算符用來對(duì)表達(dá)式左邊的操作數(shù)和右邊的操作數(shù)進(jìn)行比較,比較的結(jié)果為真則返回,其他情況則返回NULL。如果等號(hào)兩邊的值、字符串或表達(dá)式都為字符串,則MySQL是每個(gè)字符串中字符的NS編碼是否相等。如果等號(hào)兩邊的值一個(gè)是整數(shù),另一個(gè)是字符串,則MySQL如果等號(hào)兩邊的值、字符串或表達(dá)式中有一個(gè)為NULL,則比較結(jié)果為NULL。對(duì)比:SQL中賦值符號(hào)使用mysql>SELECTmysql>SELECT1=1,1='1',1=0,'a'='a',(5+3)=(2+6),''=NULL,NULL= |1=1|1='1'|1=0|'a'='a'|(5+3)=(2+6)|''=NULL|NULL=NULL 1 + ++++1|1||++++NULL+1rowinset(0.00mysql>SELECT1=2,0='abc',1='abc'FROM |1=2|0='abc'|1='abc' 0 1 0 1rowinset,2warnings(0.00SELECTemployee_id,salaryFROMemployeesWEREsalary=mysql>mysql>SELECT1<=>'1',1<=>0,'a'<=>'a',(5+3)<=>(2+6),''<=><=>NULLFROM++++++|1<=>'1'|1<=>0|'a'<=>'a'|(5+3)<=>(2+6)|''<=>NULL|NULLNULL+|1++++++10110+++++1rowinset(0.00mission_pctFROMemployeesWEREcommission_pct=mission_pctFROMemployeesWEREcommission_pct<=>#如果把0.40改成NULL可以看到,使用安全等于運(yùn)算符時(shí),兩邊的操作數(shù)的值都為NULL時(shí),返回的結(jié)果為而不是NULL返回結(jié)果與等于運(yùn)算符相同。不等于運(yùn)算符不等于運(yùn)算符(<>和!=)用于判斷兩邊的數(shù)字、字符串或者表達(dá)式的值是否不相等,如果不相等則返回1,相等則返回0。不等于運(yùn)算符不能判斷NULL值。如果兩邊的值有任意一個(gè)為NU,或兩邊都為NULL,則結(jié)果為NULL。QL語句示例如下:mysql>mysql>SELECT1<>1,1!=2,'a'!='b',(3+4)<>(2+6),'a'!=NULL,NULL<> |1<>1|1!=2|'a'!='b'|(3+4)<>(2+6)|'a'!=NULL|NULL<>NULL 0 +|++11|+ ++|++NULL+1rowinset(0.00空運(yùn)算符空運(yùn)算符(ISNULL或者ISNULL)判斷一個(gè)值是否為NULL,如果為NULL則返回10。SQLmysql>SELECTmysql>SELECTNULLISNULL,ISNULL(NULL),ISNULL('a'),1IS |NULLISNULL|ISNULL(NULL)|ISNULL('a')|1ISNULL 1 1 0 0 1rowinset(0.00 mission_pctFROMemployeesWEREcommission_pctIS mission_pctFROMemployeesWEREcommission_pct<=> mission_pctFROMemployeesWERE mission_pctFROMemployeesWEREcommission_pct=SELECTlast_name,manager_id WEREmanager_idIS非空運(yùn)算符非空運(yùn)算符(ISNOTNULL)判斷一個(gè)值是否不為NULL,如果不為NULL則返回1,否則返回0SQL語句示例如下:mysql>mysql>SELECTNULLISNOTNULL,'a'ISNOTNULL,1ISNOT |NULLISNOTNULL|'a'ISNOTNULL|1ISNOTNULL 0 1 1 1rowinset(0.01yymission_pctFROMemployeesWERENOTcommission_pct<=>mission_pctFROMemployeesWERENOT最小值運(yùn)算符語法格式為:LEAST(值1,值2,...,值n)。其中,“值n”表示參數(shù)列表中有n個(gè)值。在有mysql>mysql>SELECTLEAST(1,0,2),LEAST('b','a','c'), |LEAST(1,0,2)|LEAST('b','a','c')|LEAST(1,NULL,2)+|++|++0a|++|+1rowinset(0.00由結(jié)果可以看到,當(dāng)參數(shù)是整數(shù)或者浮點(diǎn)數(shù)時(shí),LET將返回其中最小的值;當(dāng)參數(shù)為字符串時(shí),返回字母表中順序最靠前的字符;當(dāng)比較值列表中有NULL時(shí),不能判斷大小,返回值為NULL。最大值運(yùn)算符語法格式為:GREATEST(值1,值2,...,值n)。其中,n表示參數(shù)列表中有n個(gè)值。當(dāng)有mysql>mysql>SELECTGREATEST(1,0,2),GREATEST('b','a','c'), |GREATEST(1,0,2)|GREATEST('b','a','c')|GREATEST(1,NULL,2)+|++2|++|+NULL+1rowinset(0.00由結(jié)果可以看到,當(dāng)參數(shù)中是整數(shù)或者浮點(diǎn)數(shù)時(shí),RETET將返回其中最大的值;當(dāng)參數(shù)為字符串時(shí),返回字母表中順序最靠后的字符;當(dāng)比較值列表中有NULL時(shí),不能判斷大小,返回值為NULL。BETWEENAND運(yùn)算符BETWEEN運(yùn)算符使用的格式通常為SELECTDFROMTABLEWHERECBETWEENANDB,此時(shí),當(dāng)C大于或等于A,并且C小于或等于B時(shí),結(jié)果為1,否則結(jié)果為0mysql>mysql>SELECT1BETWEEN0AND1,10BETWEEN11AND12,'b'BETWEEN'a'AND |1BETWEEN0AND1|10BETWEEN11AND12|'b'BETWEEN'a'AND'c' 1 0 1 1rowinset(0.00 WEREsalaryBETWEEN2500ANDIN運(yùn)算符IN運(yùn)算符用于判斷給定的值是否是IN列表中的一個(gè)值,如果是則返回1,否則返回0。如果給mysql>mysql>SELECT'a'IN('a','b','c'),1IN(2,3),NULLIN('a','b'),'a'IN('a', |'a'IN('a','b','c')|1IN(2,3)|NULLIN('a','b')|'a'IN('a',NULL)+|+11+|++ ++|1++|+i(0yyWEREmanager_idIN(100,101,NOTIN運(yùn)算符NOTIN運(yùn)算符用于判斷給定的值是否不是IN列表中的一個(gè)值,如果不是IN列表中的一mysql>mysql>SELECT'a'NOTIN('a','b','c'),1NOTIN |'a'NOTIN('a','b','c')|1NOTIN(2,3) 1rowinset(0.00LIKE運(yùn)算 “_”mysql>SELECTmysql>SELECTNULLLIKE'abc','abc'LIKE |NULLLIKE'abc'|'abc'LIKENULL 1rowinset(0.00SELECTfirst_name W first_nameLIKESELECTlast_name WERElast_nameLIKEexprREGEXPexprREGEXP WEREjob_idLIKE WEREjob_idLIKE‘IT$_%‘escapeREGEXP運(yùn)算 “[...]”匹配在方括號(hào)內(nèi)的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。為了命名字符的范圍,使用一個(gè)‘-’?!癧a-z]”匹配任何字母,而“[0-9]”匹配任何數(shù)字?!?’匹配零個(gè)或多個(gè)在它前面的字符。例如,“x*”匹配任何數(shù)量的‘x’字符,“[0-9]*”匹配任何數(shù)量的數(shù)字,而“*”匹配任何數(shù)量的任何字符。mysql>mysql>SELECT'shkstart'REGEXP'^s','shkstart'REGEXP't$','shkstart'REGEXP |'shkstart'REGEXP'^s'|'shkstart'REGEXP't$'|'shkstart'REGEXP+|+1rowinset(0.01+1++1++|+1+mysql>SELECT'atguigu'REGEXP'gu.gu','atguigu'REGEXP |'atguigu'REGEXP'gu.gu'|'atguigu'REGEXP'[ab]'+|+1rowinset(0.00+1++1+邏輯非(NOT或!)運(yùn)算符表示當(dāng)給定的值為0時(shí)返回1;當(dāng)給定的值為非0值時(shí)返回0;mysql>mysql>SELECTNOT1,NOT0,NOT(1+1),NOT!1,NOT |NOT1|NOT0|NOT(1+1)|NOT!1|NOTNULL 0 1 0 1 NULL 1rowinset,1warning(0.00yyWEREjob_idNOTIN('IT_PROG','ST_CLERK',邏輯與運(yùn)算符邏輯與(AND或&&)運(yùn)算符是當(dāng)給定的所有值均為非0值,并且都不為NULLmysql>mysql>SELECT1AND-1,0AND1,0ANDNULL,1AND |1AND-1|0AND1|0ANDNULL|1ANDNULL 1 0 0 NULL 1rowinset(0.00SELECTemployee_id,last_name,job_id,salary WEREsalary job_idLIKE邏輯或(OR或||)運(yùn)算符是當(dāng)給定的值都不為NULL,并且任何一個(gè)值為非0值時(shí),則返mysql>SELECTmysql>SELECT1OR-1,1OR0,1ORNULL,0||NULL,NULL|| |1OR-1|1OR0|1ORNULL|0||NULL|NULL||NULL 1 1 1 1rowinset,2warnings(0.00SELECTemployee_id,salaryFROMemployeesWERENOT(salary>=9000ANDsalary<=SELECTemployee_id,salaryFROMemployeesWEREsalary<9000ORsalary>12000;SELECTemployee_id,salaryFROMemployeesWEREsalaryNOTBETWEEN9000ANDSELECTemployee_id,last_name,job_id,salary WEREsalary>= job_idLIKEOR可以和ND一起使用,但是在使用時(shí)要注意兩者的優(yōu)先級(jí),由于ND的優(yōu)先級(jí)高于OR對(duì)ND兩邊的操作數(shù)進(jìn)行操作,再與OR中的操作數(shù)結(jié)合。邏輯異或運(yùn)算符邏輯異或(XOR)運(yùn)算符是當(dāng)給定的值中任意一個(gè)值為NULL時(shí),則返回NULL兩個(gè)非NULL的值都是0或者都不等于0時(shí),則返回0;如果一個(gè)值為0,另一個(gè)值不為0時(shí),則返回1||1XOR-1|1XOR0|0XOR0|1XORNULL|1XOR1XOR1|0XOR0XOR0 0 1 0 NULL 1 0 1rowinset(0.00selectselectlast_name,department_id,salaryfromemployeeswheredepartment_idin(10,20)XORsalary>最后將計(jì)算結(jié)果從二進(jìn)制變回十進(jìn)制數(shù)。按位與(&)運(yùn)算符將給定值對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯與運(yùn)算。當(dāng)給定值對(duì)應(yīng)的二進(jìn)mysql>mysql>SELECT1&10,20& |1&10|20&30 0 20 1rowinset(0.001的二進(jìn)制數(shù)為0001,10的二進(jìn)制數(shù)為1010,所以1&10的結(jié)果為0000,對(duì)應(yīng)的十進(jìn)制數(shù)為0。20的二進(jìn)制數(shù)為10100,的二進(jìn)制數(shù)為 ,所以20& 按位或(|)運(yùn)算符將給定的值對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯或運(yùn)算。當(dāng)給定值對(duì)應(yīng)的mysql>mysql>SELECT1|10,20| |1|10|20|30 11 30 1rowinset(0.001的二進(jìn)制數(shù)為0001,10的二進(jìn)制數(shù)為1010,所以1|10的結(jié)果為1011,對(duì)應(yīng)的十進(jìn)制數(shù)為11。20的二進(jìn)制數(shù)為10100,的二進(jìn)制數(shù)為 ,所以20| mysql>mysql>SELECT1^10,20^ |1^10|20^30 11 10 1rowinset(0.001的二進(jìn)制數(shù)為0001,10的二進(jìn)制數(shù)為1010,所以1^10的結(jié)果為1011,對(duì)應(yīng)的十進(jìn)制數(shù)為11。20的二進(jìn)制數(shù)為10100,的二進(jìn)制數(shù)為 ,所以20^ mysql>mysql>SELECT12&5,12|5,12^5FROM |12&5|12|5|12^5 4 13 9 1rowinset(0.00按位取反運(yùn)算符按位取反(~)運(yùn)算符將給定的值的二進(jìn)制數(shù)逐位進(jìn)行取反操作,即將1變?yōu)?,將0變mysql>mysql>SELECT10& |10&~1 10 1rowinset(0.00按位右移運(yùn)算符按位右移(>>)運(yùn)算符將給定的值的二進(jìn)制數(shù)的所有位右移指定的位數(shù)。右移指定的mysql>mysql>SELECT1>>2,4>> |1>>2|4>>2 0 1 1rowinset(0.001的二進(jìn)制數(shù)為00000001,右移2位為00000000,對(duì)應(yīng)的十進(jìn)制數(shù)為0。4的二進(jìn)制數(shù)為00000100,右移位為00000001,對(duì)應(yīng)的十進(jìn)制數(shù)為1按位左移運(yùn)算符按位左移(<<)運(yùn)算符將給定的值的二進(jìn)制數(shù)的所有位左移指定的位數(shù)。左移指定的mysql>mysql>SELECT1<<2,4<< |1<<2|4<<2 4 16 1rowinset(0.001的二進(jìn)制數(shù)為00000001,左移兩位為00000100,對(duì)應(yīng)的十進(jìn)制數(shù)為4。4的二進(jìn)制數(shù)為00000100,左移兩位為00010000,對(duì)應(yīng)的十進(jìn)制數(shù)為16。用“()”正則表達(dá)式通常被用來檢索或替換那些符合某個(gè)模式的文本內(nèi)容,根據(jù)指定的匹配模式匹配文本中符合要求的特殊字符串。例如,從一個(gè)文本文件中提取,查找一篇文章中重復(fù)的單詞或者替換用戶輸入的某些語等,這些地方都可以使用正則表達(dá)式。正則表達(dá)式強(qiáng)大而且靈活,可以應(yīng)用于非常復(fù)雜的查詢。yQL中使用REEXP關(guān)鍵字指定正則表達(dá)式的字符匹配模式。下表列出了REEXP操作符中常用字符匹配列表。字符‘^’匹配以特定字符或者字符串開頭的文本。mysql>mysql>SELECT*FROMfruitsWEREf_nameREGEXP字符‘$’匹配以特定字符或者字符串結(jié)尾的文本。mysql>mysql>SELECT*FROMfruitsWEREf_nameREGEXP用符號(hào)"."字符‘.’fruits表中,查詢f_name字段值mysql>mysql>SELECT*FROMfruitsWEREf_nameREGEXP使用"*"和"+"來匹配多個(gè)字符星號(hào)‘*’匹配前面的字符任意多次,包括0次。加號(hào)‘+’匹配前面的字符至在fit表 查詢 字段值以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論