-
SELECT prod_name FROM products LIMIT 5,5;(從行5開始選擇5條資料,行是從0開始的)
-
ORDER BY
-
SELECT prod_name FROM product ORDER BY prod_name/ DESC;(將按照prod_name排序檢索)/加DESC表示降序
-
SELECT prod_id,prod_price,prod_name FORM products ORDER BY prod_price,prod_name(先按照price排序再按照name排序)
-
SELECT prod_name FROM product ORDER BY prod_price DESC,prod_name;(DESC關鍵字只應用到直接位于其前面的列明,只對price列DESC,對name列不指定)
-
SELECT prod_price FROM products ORDER BY prod_price DESC LIMIT 1;(搜索最昂貴的產品,limit要再order by之后,注意order by要在where之后)
-
where
-
where不區分大小寫
-
SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;(搜索介于5到10的區間用between,是閉區間)
-
SELECT prod_name FROM products WHERE prod_price IS NULL(用IS NULL來查詢空值)
-
SELECT prod_name,prod_price FROM products WHERE (vend_id = 1002 OR vend_id = 1003) ORDER BY prod_name;與SELECT prod_name,prod_price FROM products WHERE vend_id IN (1002,1003) ORDER BY prod_name;(IN與OR等價,優先使用IN)
-
計算欄位
-
SELECT Concat(vend_name,'(',vend_country,')')FROM vendors ORDER BY vend_name;concat將兩個欄位拼接
-
分組 GROUP BY
GROUP BY字句必須出現再WHERE字句之后,ORDER BY字句之前,/where過濾行而having過濾分組
-
SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >=2;HAVING在GROUP BY后面,作用類似于where
-
SELECT vend_id,COUNT(*) AS num_prods FROM porducts WHERE prod_price >=10 GROUP BY vend_id HAVING BY COUNT(*) >= 2;先用where過濾所有的行,在用group by過濾分組
-
SELECT 字句順序 SELECT ,FROM ,WHERE ,GROUBP ,BY, HAVING ,ORDER ,BY ,LIMIT
-
子查詢
-
SELECT cust_id FROM orders WHERE order_num IN(SELECT order_num FROM orderitems WHERE prod_id = 'TNT2')用IN來實作子查詢,類似于OR
-
表聯接
-
SELECT customers.cust_id,orders.order_num FROM customers INNER JOIN orders ON customers.cust_id = orders.cust_id;
-
SELECT customers.cust_id,orders.order_num FROM customers LEFT OUTER JOIN orders ON customers.cust_id = orders.cust_id;內外聯接
-
UPDATE,DELETE
-
除非確實打算更新和洗掉每一行,否則絕對不要使用不帶WHERE子句的UPDATE與DELETE陳述句,
-
保證每個表都有主鍵
-
在對UPDATE或DELETE陳述句使用WHERE子句之前,應該先用SELECT進行預測,保證它過濾的資訊是正確的
-
資料庫引擎
-
InnoDB是一個可靠的事務處理引擎,它不支持全文本搜索
-
MEMORY在功能上等同于MyISAM,但由于資料存盤在記憶體而不是磁盤中,速度很快,特別適合臨時表
-
MyISAM是一個性能極高的引擎,它支持全文本搜索,但不支持事務處理
-
外鍵不能跨引擎
-
更新表
-
ALTER TABLE vendors ADD vend_phone CHAR(20);為表增加一列
-
ALTER TABLE vendors DROP COLUMN vend_phone;洗掉一列
-
注意使用ALTER修改表之前應該進行備份
-
事務處理
-
事務處理可以用來維護資料庫的完整性,它保證成批的Mysql操作要么完全執行,要么完全不執行,事務是一種機制,用來管理必須成批執行的mysql操作,以保證資料庫不包含不完整的操作結果,利用事務處理,可以保證一組操作不會中途停止,他們或作為整體執行,或者完全不執行,如果沒有發生錯誤,整組陳述句提交給資料庫表,如果發生錯誤,則進行回退以恢復資料庫到某個已知的安全狀態,
-
事務處理用來管理INSERT,UPDATE,DELETE不用回退CREAT或DROP
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259414.html
標籤:其他
上一篇:REVERSE-PRACTICE-BUUCTF-14
下一篇:執行緒安全與同步總結
