資料庫學習Day3 運算子與萬用字元

2021-09-30 05:15:49 字數 3916 閱讀 5648

選擇所有資料:

select * from table_name;

mysql中的運算子基本和c/c++等程式語言相同。

部分不同的有:

不等於<>(也可以使用!=)

邏輯與and(也可以使用&&)

邏輯或or(也可以使用||)

邏輯非not(也可以使用!)

可以使用括號改變計算的優先順序。

例如對於如下表單:

+----+-----------------+--------+-------+

| id | title           | author | pages |

+----+-----------------+--------+-------+

|  1 | the green mile  |      4 |   894 |

|  2 | guards, guards! |      2 |   302 |

|  3 | imazdi          |      3 |   354 |

|  4 | gold            |      1 |   405 |

|  5 | howling mad     |      3 |   294 |

+----+-----------------+--------+-------+

選擇id在2-4之間的書本名:

select title from book where id <= 4 && id >=2;

結果為:

+-----------------+

| title           |

+-----------------+

| guards, guards! |

| imazdi          |

| gold            |

+-----------------+

使用括號,刪選出id小於等於2或者author等於3的:

select title from book where !(id > 2 && id != 3);

null:

mysql中null和程式語言中的null不同,它是一種特殊的型別,不能用作比較,例如:

where author = null;這個斷言語句返回的既不是true也不是false,即便author中有

null的選項。如果需要判斷某乙個欄位為null或者not null應該使用is操作符:

select title from book where author is not null;

這個語句選取book中所有author非null的title項。

插入一行author為空的行:

insert into book(id,title,pages)

values(null,'freedom',230);

現在表單變成了:

+----+-----------------+--------+-------+

| id | title           | author | pages |

+----+-----------------+--------+-------+

|  1 | the green mile  |      4 |   894 |

|  2 | guards, guards! |      2 |   302 |

|  3 | imazdi          |      3 |   354 |

|  4 | gold            |      1 |   405 |

|  5 | howling mad     |      3 |   294 |

|  6 | freedom         |   null |   230 |

+----+-----------------+--------+-------+

選擇author為空的書名和頁數:

select title,pages from book where author is null;

這樣就把剛剛插入的author為null的行給選取出來了:

+---------+-------+

| title   | pages |

+---------+-------+

| freedom |   230 |

+---------+-------+

mysql提供了"<=>"操作符判斷兩邊的運算元是不是都是null,如果只有一邊是null則返回0,否則返回1,例如

select 1 <=> null, null <=> null, 1 <=> 1;

結果為(為啥1 <=> 1?):

+------------+---------------+---------+

| 1 <=> null | null <=> null | 1 <=> 1 |

+------------+---------------+---------+

|          0 |             1 |       1 |

+------------+---------------+---------+

成員測試:

查詢乙個值是否是集合中的乙個成員,使用關鍵字in:

select title from book where author in (1,3);

上面的語句查詢作者在集合(1,3)中的書名:

+-------------+

| title       |

+-------------+

| imazdi      |

| gold        |

| howling mad |

+-------------+

查詢乙個值是否在一定的範圍內,使用關鍵字between(也可以用比較操作符來完成):

select title from book where id between 2 and 4;

上面的語句查詢id在2-4之間的書名。

萬用字元%和關鍵字like:

可以使用like和萬用字元%搜尋含有一定字串的內容,萬用字元%用來替代任意長度的字元,包括0個,

可以對like前加not操作,即選取通配字串外的內容。

select title from book where title like 'g%';

該語句查詢開始字母為g的書名:

+-----------------+

| title           |

+-----------------+

| guards, guards! |

| gold            |

+-----------------+

字元'_','.'則只能匹配單個字元,例如stac..匹配包含"stac"且後面跟兩個任意字元的字串。

'':匹配括號內的任何字元,例如[ss]tacey匹配"stacey"或"stacey"的值,[a-za-z]匹配'a'-'z',

'a'-'z'的任意羅馬字元。

'^':匹配的字元必須以跟在'^'後的字元開頭,例如與^stacey匹配的字元必須以stacey開頭;

'$':匹配的字元必須以在'$'的字元結尾,例如與chese$匹配的字元必須以chese結尾。

'*':匹配其前面的任意個字元

擴充套件比較關鍵字regexp則在字串比較中搜尋任意位置的匹配字元,而不是開頭。

select title from book where title regexp 'ee';

結果為:

+----------------+

| title          |

+----------------+

| the green mile |

| freedom        |

+----------------+

如果使用like的話將得到空的結果。

Day3 學習分享 運算子

1.算術運算子 現階段 加 減 乘 除 小括號 取餘 賦值號 注意 先乘除後加減 從左到右運算 除數不能為0 先運算小括號 小括號裡的內容對小括號外而言是乙個整體乙個常量 補充 變數必須被賦值以後才能修改內容,如果未賦值,則不能修改 偷懶專用運算子 num1 num1 num2 num1 num2 ...

C 學習day3之運算子過載

includeusing namespace std if 0 struct complex 複數 complex operator complex a,complex b int main bb 那我們complex cc aa bb 可不可以?但是是不可以的。你什麼時候學過結構體有加減法。但是這...

Oracle資料庫學習整理day3

substr 列名,n 從指定的位置開始擷取字串直到字元的末尾 substr 列名,n,m 從指定的位置開始擷取指定長度的字串 substr 列名,n 從倒數第n位開始擷取字串,直到字串的末尾 substr 列名,n,m 從倒數第n位開始擷取指定長度的字串 instr 在第乙個引數中查詢第二個引數首...