整理MySQL資料庫中初學容易混淆的指令
查詢所有資料庫 |
show databases |
建立資料庫 |
create database db_name DEFAULT CHARACTER SET charset_name |
顯示資料庫 建立資訊 |
show create database db_name |
刪除資料庫 |
drop database db_name |
修改資料庫的 字符集 |
alter database db_name DEFAULT CHARACTER SET charset_name
|
|
|
使用資料庫 |
use db_name |
檢視所有表 |
show tables |
建立表 |
CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) --field:指定列名 datatype:指定列型別
|
查看錶結構 |
desc table_name |
刪除表 |
drop table table_name |
|
|
*修改表名稱 |
alter table table_name rename to teacher |
新增欄位 |
alter table student add column sgender varchar(2) |
刪除欄位 |
alter table table_name drop column sgender |
修改欄位型別 |
alter table table_name modify column remark varchar(100) |
*修改欄位名稱 |
alter table table_name change column sgender gender varchar(2) |
|
|
插入所有欄位 |
INSERT INTO student VALUES(1,'Tom','male',20) |
插入部分欄位 |
INSERT INTO student(id,NAME) VALUES(2,'Jack') |
|
|
修改資料 |
UPDATE student SET gender='Male' WHERE id=1 |
*修改多個欄位 |
UPDATE student SET gender='男',age=30 WHERE id=2; |
刪除資料 |
DELETE FROM student WHERE id=2; |
|
|
開始一個事務 |
BEGIN |
事務回滾 |
ROLLBACK |
事務確認 |
COMMIT |
建立一個儲存點 |
SAVEPOINT identifier |
刪除一個事務的儲存點 |
RELEASE SAVEPOINT identifier |
回滾到標記點 |
ROLLBACK TO identifier |
|
|
刪除全表內容 |
truncate table |
|
|
查詢所有列 |
SELECT * FROM student; |
查詢指定列 |
SELECT id,NAME,gender FROM student; |
查詢時新增常量列 |
SELECT price,'Dollars' AS 'Price' FROM grocerys; |
查詢時合併列 (只能合併數值) |
SELECT id,(NAME+servlet) FROM student; |
查詢時去重複 |
SELECT DISTINCT gender FROM student; |
|
|
條件查詢 |
SELECT * FROM student WHERE id=2 AND name = ‘TOM’; |
條件運算子 |
> < >= <= = <> between and or |
|
|
判斷null |
SELECT * FROM student WHERE address IS NULL ; |
判斷空字串 |
SELECT * FROM student WHERE address=''; |
查詢有地址的學生 |
SELECT * FROM student WHERE address IS NOT NULL AND address<>''; |
|
|
模糊條件 |
SELECT * FROM student WHERE NAME LIKE '張%';(任意個字元)
SELECT * FROM student WHERE NAME LIKE '李_';(一個字元) |
|
|
聚合函式 |
SELECT SUM(price) AS 'total_price' FROM shopping_kart; 求和:SUM() 求平均數:AVG() 找最大值:MAX()找最小值:MIN() 統計多少行(NULL不算):count() |
|
|
*分頁查詢 |
SELECT * FROM student LIMIT 6,2; (從第6個後面開始數,2個) |
|
|
查詢排序 |
SELECT * FROM student ORDER BY id ASC ASC 升 從上往下 數字越來越大 字母A-Z DESC 降 從上往下 數字越來越小 字母Z-A |
|
|
分組查詢 |
SELECT gender,COUNT(*) FROM student GROUP BY gender; |
|
|
*資料約束 |
CREATE TABLE table_name( Field1 type1 /*HERE*/ ) 預設值:DEFAULT ‘預設值’ 非空:NOT NULL 唯一:UNIQUE (可以插入null) 主鍵: PRIMARY KEY (非空+唯一) 從1開始自增長:AUTO_INCREMENT 外來鍵: CONSTRAINT fk_name FOREIGN KEY(deptId) REFERENCES dept(id) |
|
|
交叉連線 (笛卡爾積) |
cross join/join/inner join/, |
內連線 |
交叉連線 + on |
左外連線 |
table1 left join table2 on ... |
右外連線 |
table1 right join table2 on ... |
|
|
子查詢 |
where .... in ..... |
聯合查詢 |
union |
|
|
|
CREATE INDEX indexName ON table_name (column_name) |