小白一枚,純屬省事,讀書筆記,謹慎用之。
選擇資料庫:
USE crashcourse;
顯示資料庫:
SHOW DATABASES;
顯示資料庫内的表的清單:
SHOW TABLES;
顯示表列:
SHOW COLUMNS FROM customers;
檢索資料
SELECT語句:
檢索單個列:
SELECT prod_name FROMproducts;
檢索多個列:
SELECT prod_id, prod_name, prod_priceFORM products;
檢索所有列:(列的順序一般是在清單定義中出現的順序)
SELECT * FROM products;
檢索不同的行:(包含了相同的供應商)
SELECT vend_id, FROM products;
檢索不同的行:(不包含相同的供應商)
SELECT DISTINCT vend_id FORM products;
限制結果
為了傳回第一行或者前幾行,可使用LIMIT子句。
SELECT prod_name FORMproducts LIMIT 5; (傳回不多于5行)
為了得到下一個5行,可指定檢索的開始行和行數:
SELECT prod_name FROMproducts LIMIT 5,5;
注意:行0檢索出來的第一行為行0而不是行1,是以,LIMIT1,1将檢索出第二行而不是第一行。
使用完全限定的表名: (crashcourse為資料庫名,products為表名)
SELSET proucts.prod_name FORMcrashcourse.products;
排序檢索資料
如果不排序,資料一般将它在底層表中出現的順序顯示。
為了明确排序用SELECT語句檢索出的資料,可使用ORDER RY子句。(以字母順序排序資料)
SELECT prod_name FORM products ORDERBY prod_name;
按多個列排序:
SELECTprod_id, prod_price, prod_name FROM products ORDER BY prod_price, prod_name;
首先按prod_price進行排序,如果一緻,則按照prod_name進行排序。
指定排序方向:
預設的排序方式是升序,可以使用DESC關鍵字進行降序排序。
SELECT prod_id, prod_price, prod_nameFORM products ORDER BY prod_price DESC;
多個列進行降序排序:(prod_price降序排序,prod_name升序排序))
SELECT prd_id, prod_price, prod_name FORMproducts ORDER BY prod_price DESC,prod_name;
注意:DESC關鍵字隻應用到直接位于其前面的列名。
如果想在多個列上進行降序排序,必須對每個列指定DESC關鍵字。
與DESC相反的是ASC。在給出ORDER BY子句時,應該保證它位于FROM子句之後,如果使用LIMIT,它則必須位于ORDER BY之後。
過濾資料
使用WHERE子句。
SELECT prod_name,prod_price FORM products WHEAREprod_price = 2.50;
檢索products表中兩個列,但是不傳回所有行,隻傳回prod_price為2.50的行。
WHERE子句操作符:
= 表示:等于, < > 表示:不等于, != 表示不等于, < 表示小于,
>= 表示大于等于, > 表示大于, BETWEEN 在指定的兩個值之間
檢查單個值: 在執行的時候不區分大小寫
SELECT prod_name, prod_price, FORMproducts WHERE prod_name = ‘fuses’;
列出價格小于10美元的所有産品:
SELECT prod_name, prod_price FORMproducts WHERE prod_price < 10;
不比對檢查; (檢查不是由供應商制造的所有産品)
SELECT vend_id, prod_name FROM vend_id< > 1003;
範圍值檢查:
SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN5 AND 10;
資料過濾:
組合WHERE子句,以AND或者OR子句連接配接:
AND操作符:為了通過不止一個列進行過濾,可使用AND操作符給WHERE子句附加條件。 每添加一條就使用一個AND。
SELECT prod_id, prod_price, prod_nameFROM products WHERE vend_id= 1003 ANDprod_price <= 10;
OR操作符:訓示檢索比對任一條件的行。
SELECT prod_name, prod_price FEOMproducts WHERE vend_id = 1002 ORvend_id = 1003;
計算次序:WHERE子句可包含任意多的AND 和OR子句。
SELECT prod_name,prod_price FROM productsWHRER (vend_id = 1002 ORvend_id = 1003) AND prod_price >=10;
IN操作符:用來指定範圍。
SELECT prod_name, prod_price FROM products WHERE vend_id IN(1002,1003) ORDER BY prod_name;
NOT 操作符:
SELECT prod_name, prod_price FROMproducts WHERE vend_id NOT IN(1002,1003)ORDER BY prod_name;
用通配符進行過濾
LIKE操作符
百分号(%)通配符: %表示任何字元出現的任意次數
SELECT prod_id, prod_name FORM products WHERE prod_name LIKE‘jet%’;
注意:字元串的列進行比較須要’ ’單引号。% 告訴MySql接收jet之後的任意字元,不管它由多少字元。
下劃線(_)通配符: 隻能比對單個字元。
SELECT prod_id, prod_name FROM products WHEREprod_name LIKE ’ _ton anvi1’;
後續更新,還在自學中。