1. 程式人生 > 資料庫 >整理MySQL資料庫中初學容易混淆的指令

整理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)