程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL心得6--MySQL語言結構--運算符、表達式

MySQL心得6--MySQL語言結構--運算符、表達式

編輯:MySQL綜合教程

  1. 算術運算符   算術運算符在兩個表達式上執行數學運算,這兩個表達式可以是任何數字數據類型。算術運算符有:+(加)、-(減)、*(乘)、/(除)和%(求模)5種運算。   (1)“+”運算符  www.2cto.com     “+”運算符用於獲得一個或多個值的和:   SELECT 1.2+3.09345, 0.00000000001+0.00000000001;   (2)“–”運算符   “–”運算符用於從一個值中減去另一個值,並可以更改參數符號:   SELECT 200-201, 0.14-0.1, -2(更改參數符號);   注意:若該操作符與BIGINT同時使用,則返回值也是一個BIGINT。這意味著在可能產生–263的整數運算中應當避免使用減號“–”,否則會出現錯誤。其中,+(加)和–(減)運算符還可用於對日期時間值(如DATETIME)進行算術運算。   例如:  SELECT  '2008-01-20'+ interval 22 DAY;   說明:INTERVAL關鍵字後面跟一個時間間隔,22 DAY表示在當前的日期基礎上加上22天。當前日期為2008-01-20,加上22天後為2008-02-11。   (3)“*”運算符   “*”運算符用來獲得兩個或多個值的乘積:   SELECT 5*12,5*0, -19530415* -19540319(算負數乘積時不加括號);   (4)“/”運算符     與乘法用法一樣,只是除以零的除法是不允許的,如果這樣做,MySQL會返回NULL:   (5)“%”運算符  www.2cto.com     “%”運算符用來獲得一個或多個除法運算的余數:   SELECT 12%5, -32%7,3%0;   2.比較運算符   比較運算符(又稱關系運算符),用於比較兩個表達式的值,其運算結果為邏輯值,可以為三種之一:1(真)、0(假)及 NULL(不能確定)。下表列出了在MySQL中可以使用的各種比較運算符。   運  算  符   含    義   運  算  符   含    義   =   等於   <=   小於等於   >    大於   <>、!=   不等於   <    小於   <=>   相等或都等於空   >=  www.2cto.com     大於等於   比較運算符可以用於比較數字和字符串。數字作為浮點值比較,而字符串以不區分大小寫的方式進行比較(除非使用特殊的BINARY關鍵字)。前面已經介紹了在運算過程中MySQL能夠自動地把數字轉換為字符串,而在比較運算過程中,MySQL能夠自動地把字符串轉換為數字。   下面這個例子說明了在不同的情況下MySQL以不同的方式處理數字和字符串。   例: 執行下列語句:  SELECT 5 = '5ab','5'='5ab';   結果為:1,0;分析:第一個中,字母a、b自動轉換為數字,因為沒對應數字,固轉換為0,所以與左邊相等;第二個中都可能向著對方的類型轉換,沒准了就。   (1)“=”運算符   “=”運算符用於比較表達式的兩邊是否相等,也可以對字符串進行比較,示例如下:   SELECT 3.14=3.142,'a'='A','A'='B','apple'='banana';   注意:因為在默認情況下MySQL以不區分大小寫的方式比較字符串,所以表達式'a'='A'的結果為真。如果想執行區分大小寫的比較,可以添加BINARY關鍵字,這意味著對字符串以二進制方式處理。當在字符串上執行比較運算時,MySQL將區分字符串的大小寫。    如下: SELECT'Apple'='apple' , BINARY 'Apple'='apple';    結果為:1,0;   (2)“<>”運算符   與“=”運算符相對立的是“<>”運算符,它用來檢測表達式的兩邊是否不相等,如果不相等則返回真值,相等則返回假值。   示例如下: SELECT 5<>5 ,5<>6,’a’<>’a’,’5a’<>’5b’;    結果為:0,1,0,1     SELECTNULL<>NULL, 0<>NULL, 0<>0;     結果為:null,null,0   3.邏輯運算符   邏輯運算符用於對某個條件進行測試,運算結果為TRUE(1)或FALSE(0)。MySQL提供的邏輯運算符如下表所示。   www.2cto.com   運  算  符   運 算 規 則   運  算  符   運 算 規 則   NOT或!   邏輯非   OR或||   邏輯或   AND或&&   邏輯與   XOR   邏輯異或   (1)AND運算符   AND運算符用於測試兩個或更多的值(或表達式求值)的有效性,如果它的所有成分為真,並且不是NULL,它返回真值,否則返回假值。例如: SELECT (1=1) AND(9>10),('a'='a') AND ('c'<'d');(按ASCLL碼比較)結果為0,1;   (2)XOR運算符   如果包含的值或表達式一個為真而另一個為假並且不是NULL,那麼它返回真值,否則返回假值。(兩者一樣返回假,不一樣返回真)   例如: SELECT (1=1) XOR (2=3), (1<2) XOR (9<10);   4.  位運算符   位運算符在兩個表達式之間執行二進制位操作,這兩個表達式的類型可為整型或與整型兼容的數據類型(如字符型,但不能為image類型),位運算符如下表所示。   運  算  符   運 算 規 則   運  算  符   www.2cto.com   運 算 規 則   &   位AND   ~   位取反   |   位OR   >>    位右移   ^   位XOR   <<    位左移   5.除了以上的運算符,MySQL還提供了其他一些常用的運算符,如BETWEEN運算符、IN運算符、IS NULL 和ISNOT NULL運算符、LIKE運算符、REGEXP運算符等,這些在SELECT語句中的WHERE子句中已經有過介紹。   當一個復雜的表達式有多個運算符時,運算符優先級決定執行運算的先後次序。執行的順序會影響所得到的運算結果。運算符優先級如下表所示。在一個表達式中按先高(優先級數字小)後低(優先級數字大)的順序進行運算。   運  算  符   優先級   運  算  符   優先級   +(正)、–(負)、~(按位NOT)   1   NOT   6   *(乘)、/(除)、%(模)   www.2cto.com   2   AND   7   +(加)、–(減)   3   ALL、ANY、BETWEEN、IN、LIKE、OR、SOME   8   =,>,<,>=,<=,<>,!= ,!>  ,!<比較運算符   4   =(賦值)   9   ^(位異或)、&(位與)、|(位或)   5   6.  表達式   表達式就是常量、變量、列名、復雜計算、運算符和函數的組合。一個表達式通常可以得到一個值。與常量和變量一樣,表達式的值也具有某種數據類型,可能的數據類型有字符類型、數值類型、日期時間類型。這樣,根據表達式的值的類型,表達式可分為字符型表達式、數值型表達式和日期型表達式。   表達式還可以根據值的復雜性來分類:   當表達式的結果只是一個值,如一個數值、一個單詞或一個日期,這種表達式叫做標量表達式。例如:1+2,'a'>'b'。  www.2cto.com     當表達式的結果是由不同類型數據組成的一行值,這種表達式叫做行表達式。例如,('081101','王林','計算機',500)。   當表達式的結果為0個、1個或多個行表達式的集合,那麼這個表達式就叫做表表達式。   表達式按照形式還可分為單一表達式和復合表達式。單一表達式就是一個單一的值,如一個常量或列名。復合表達式是由運算符將多個單一表達式連接而成的表達式,例如:1+2+3,a=b+3,'2008-01-20'+INTERVAL 2 MONTH。   表達式一般用在SELECT及SELECT語句的WHERE子句中。     作者 tianyazaiheruan

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved