天天看點

MySQL_紙上談兵之入門

小白一枚,純屬省事,讀書筆記,謹慎用之。

選擇資料庫:

       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’;

後續更新,還在自學中。