資料庫學習(一)——select語句

Lynne0224發表於2024-08-30

一.檢索資料
1.SELECT prod_name FROM products;--//從表products中檢索一個名為prod_name的列。

2.SELECT prod_id,prod_name,prod_price FROM products;--//從表products中檢索名為prod_id,prod_name,prode_price的列。

3.SELECT * FROM prdoucts;--//檢索表products中的所有的列。

4.SELECT vend_id FROM products;//檢索表products中的名為vend_id的列。

5.SELECT DISTINCT vend_id FROM products;//檢索表products中的名為vend_id的列,但返回不同的資料。

6.SELECT DISTINCT vend_id,prod_price FROM products;//檢索表products中的名為vend_id的列,返回不同的資料,檢索名為prod_price的列。

7.SELECT prod_name FROM products LIMIT 5;//返回行不多於5行。

8.SELECT prod_name FROM products LIMIT 5,5;//5,5 開始位置,檢索行數(行號從0開始)

9.SELECT products.prod_name FROM products;//完全限定的表名
二.排序資料
1.SELECT prod_name FROM products;//無排序

2.SELECT prod_name FROM products ORDER BY prod_name;//以prod_name的字母順序排序

3.SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name;//先按price再按name排序。

4.SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC;//按價格降序排序。

5.SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name;//先按價格降序排列,再按name順序排序。(如要在多個列上以降序排序,則必須對每個列指定DESC關鍵字)

6.SELECT prod_price FROM products ORDER BY prod_price LIMIT 1;//使用組合關鍵字找出最貴物品(ORDER BY 和 LIMIT 語句的順序不能改變)
三.過濾資料
1.SELECT prod_name,prod_price FROM products WHERE prod_price=2.50;//從products檢索兩個列,返回prod_price的值為2.50的行。

2.條件運算子:

=,<>(不等於),!=,<,<=,>,>=

3.SELECT prod_name,prod_price FROM products WHERE prod_nam='fuse';//從products檢索兩個列,返回prod_name的值為fuse的行。

4.SELECT prod_name,prod_price FROM products WHERE prod_price<10;//

5.SELECT prod_name,prod_price FROM products WHERE prod_price<=10;

6.SELECT prod_id,prod_name FROM products WHERE prod_id<>1003;//

7.SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;//檢索價格在5~10之間的產品(包括5和10)。

8.SELECT prod_name FROM products WHERE prod_price is NULL;//

9.SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id=1003 AND prod_price<=10;

10.SELECT prod_name,prod_price FROM products WHERE vend_id=1002 OR vend_id=1003;

11.SELECT prod_name,prod_price FROM product WHERE vend_id=1002 OR vend_id=1003 AND prod_price>=10;//返回id為1002 和i d為1003且價格大於10的行(and的優先順序高於or先結合and前後再結合or)

12,SELECT prod_name,prod_price FROM product WHERE (vend_id=1002 OR vend_id=1003) AND prod_price>=10//返回id為1002或1003 且 價格大於10的行。

13.SELECT prod_name,prod_price FROM product WHERE vend_id IN (1002,1003) ORDER BY prod_name;//返回id為1002,1003,所製造產品的名字。in的優點相比於OR,1.更加直觀清楚。2.執行更快。3.可包含其他SELECT語句

14.SELECT prod_name,prod_price FROM product WHERE vend_id NOT IN (1002,1003) ORDER BY prod_name;//
四.用萬用字元進行過濾
1.%表示任何字元出現任意次數

SELECT prod_id,prod_name FROM product WHERE prod_name like 'jet%';//‘jet%’表示以jet為開頭大的詞,%告訴MySQL接受jet以後的任意字元。

SELECT prod_id,prod_name FROM product WHERE prod_name like '%anvil%';

SELECT prod_id,prod_name FROM product WHERE prod_name like 's%e';

2._表示任意單個字元

SELECT prod_id,prod_name FROM product WHERE prod_name like '_ ton anvil';//返回例如1 ton anvil。

3.不要過度使用萬用字元,如果其他操作能達到,優先使用其他

4.不要在搜尋模式的開頭處

相關文章