Head First SQL 第二章

P53: SELECT 語句、更好的 SELECT:

在數據庫裏面有非常多的信息,我們要搜索,應該使用如下句式


SELECT * FROM my_contacts
WHERE first_name = ‘Anne’;

這樣會返回所有 first_name 列是 Anne 的行。 * 是告訴RDBMS 返回表中所有的列。


====================================================================

單引號是特殊字符,如果要單獨使用單引號,要在前面加上 反斜槓

INSERT INTO my_contacts
(location)
VALUES
('Grover\'s Mill');

不要使用雙引號,雙引號會作爲其他編程語言的引號使用。

==================================================================

單獨查詢部分列,而不顯示全部列:

SELECT drink_name, main, second
FROM easy_drinks
WHERE main = 'soda';

這樣只顯示三個列,drink_name  main   second

然後查找 main 裏面是 soda 的。

例如之前的例子:




====================================================================

結合查詢:

同時查詢兩個條件該怎麼辦?

使用 AND

查詢甜甜圈:


SELECT location
FROM doughnut_ratings
WHERE type = 'plain glazed'
AND
rating = 10;

這樣同時找出了符合兩個條件的選項~

注意這裏只顯示 location


=================================================================

注意使用  “大於” 運算符:

篩選飲料:

SELECT drink_name 
FROM easy_drinks
WHERE main = ‘soda’
AND
amount > 1;

當然還有

=   等號

<>   不等號

以及

<=  和 >=

同時也可以對文本數據套用比較運算符。


對文本數據套用比較運算符,返回首字母 ’L’ 之後 ‘M’ 之前的飲料:

SELECT drink_name
FROM drink_info
WHERE
drink_name >= ‘L’
AND
drink_name < ’M’

同理還有 OR 查詢:

OR 結合查詢,返回任何符合條件之一的記錄:

SELECT drink_name
FROM easy_drinks
WHERE main = ‘cherry juice’
OR
second = ‘cherry juice’;
注意不要搞混了。


P98:

用 IS NULL 找到 NULL

SELECT drink_name
FROM drink_info
WHERE
calories IS NULL

不能使用   = NULL,因爲 NULL 不等於 NULL


=====================================================================

節省時間,使用 LIKE

SELECT * FROM my_contacts
WHERE location LIKE ‘%CA’

這裏再單引號中放入百分比符號,就是在 location 列中查找所有以 CA 結尾的值。


%是一個通配符,指的是任意數量的未知字符

_也是一個通配符,指的是一個未知字母

SELECT first_name FROM my_contacts
WHERE first_name LIKE ‘_im’;

==========================================================================

BETWEEN 可以代替 >= AND <=


SELECT drink_name FROM drink_info
WHERE
calories BETWEEN 30 AND 60;

代替了


SELECT drink_name FROM drink_info
WHERE
calories >= 30
AND
calories <= 60;

注意 只能是:

小數字 BETWEEN 大數字

===========================================================================

代替多個 OR ,用 IN 來表示:

SELECT date_name
FROM black_book
WHERE
rating IN ('innovative', 'fabulous', 'delightful', 'pretty good');'

也可以用 NOT IN 查找不在裏面的:


SELECT date_name 
FROM black_book
WHERE
rating NOT IN ('innovative', 'fabulous', 'delightful', 'pretty good');'

NOT還有用法:

SELECT drink_name FROM drink_info
WHERE NOT carbs BETWEEN 3 AND 5;

SELECT date_name from black_book
WHERE NOT date_name LIKE '%A'
AND NOT date_name LIKE 'B%';

NOT要跟在WHERE後面

========================================================================================





SELECT date_nameFROM black_bookWHERErating IN ('innovative', 'fabulous', 'delightful', 'pretty good');'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章