【數據庫和表的操作】
創建數據庫:CREATE DATABASE IF NOT EXISTS shop;
查看數據庫:SHOW DATABASES;
刪除數據庫:DROP DATABASES IF EXISTS shop;
創建表:
查看當前數據庫中的數據表:SHOW TABLES;
查看錶結構:DESCRIBE item;
查看註釋標識:SHOW CREATE TABLE item;
刪除數據表:DROP TABLE IF EXISTS item;
複製數據表和數據(不能複製鍵(key)):
使用LIKE方式可以複製父表的表結構,但不能複製父表的記錄。
使用ALTER TABLE 命令修改表結構:
(1)使用ADD關鍵字增加字段,(2)使用DROP關鍵字刪除字段。
(3)使用CHANGE關鍵字修改字段,(4)將已有字段設爲主鍵。
(5)使用RENAME TO 關鍵字修改表名:ALTER TABLE buyer RENAME TO customer;
2.【數據操作】
2.1插入數據:
(1)使用INSERT … VALUES 插入數據
(2)使用 INSERT … SET 插入數據,可根據明確指定的值插入數據;(3)使用 INSERT … SELECT 格式,可將從其他表查詢的結果插入到另一張表中。優點是可以快速的將數據從一個或多個表中導入到另一個表中。
2.2 查詢數據:
2.3 更新數據:
2.4 刪除數據:DELETE和TRUNCATE都可以刪除表中的所有記錄,但後者實際上是刪除並重新創建表,它釋放了表空間,而前者不會釋放。後者刪除速度更快一些。對於有自增字段的表,DELETE後會繼續計數,而TRUNCATE會從頭開始計數。
【連接、子查詢、事務處理】
2.5 連接——包括交叉連接、內連接、外連接、自然連接
(2.5.1) 交叉連接:查詢結果集中的數據行數等於各個表中的數據行數的乘積。
(2.5.2) 內連接INNER JOIN:返回與連接條件相匹配的數據行。
(2.5.3) 外連接:不僅返回與連接條件匹配的數據行,還包含左表、右表或者左右表的所有數據。分爲 左外連接 和 右外連接。
① 左外連接LEFT JOIN,左表的數據全部顯示:
② 右外連接RIGHT JOIN,右表的數據全部顯示:
(2.5.4) 自連接:將表與它自身相關聯,通過給表起不同的別名來區分一個表的兩個實例。
2.6 子查詢:嵌套在另一個語句中的一個SELECT查詢語句,可嵌套的SQL語句包括SELECT、INSERT、UPDATE、DELETE或其他子查詢語句。子查詢必須位於圓括號中。
(2.6.1) 將子查詢作爲派生表:需要給這個派生表起一個別名。
(2.6.2) 把子查詢用在WHERE子句中,可以與比較運算符、邏輯運算符、IN或者EXIST等一起使用。
(2.6.3) 其他使用子查詢的語句,如DELETE:
2.7 事務處理:transaction - commit - roll back
目前MySQL中只有InnoDB和BDB這兩種存儲引擎支持事務——
開始事務:START TRANSACTION 或者 BEGIN WORK (WORK可省略)
提交事務:COMMIT
回滾事務:ROLLBACK
使用事務的例子:向商品表item添加商品“apple”,同時更新商品名爲“PHP”的數量爲200.