1.DML、DDL、DCL
1).DML(Dada Manipulation Language) 資料操縱語言(CRUD)
A).新增
a).單行插入 insert into A(a,b,c)values(a,b,c);
b).多行插入 insert into A(a,b,c)values(a1,b1,c1),(a2,b2,c2);
B).更新
a).set單欄位 update A set a = 1 where c = 3;
b).set多欄位 update A set a = 1 ,b = 2 where c = 2;
C).查詢
a).注意where條件 select a,b,c from A;
D).刪除
a).注意where條件 delete from A where c = 3;
2).DDL(Dada Definition Language) 資料庫定義語言
A).CREATE
a).建立表
create table A(
a int(10),
b tinyint(4),
c tinyint(4),
d char(10),
...
);
B).ALERT
a).新增欄位 alter table A add tag int;
b).修改欄位 alter table A modify COLUMN tag char(20);
c).刪除欄位 alter table A drop COLUMN tag;
C).DROP
a).刪除表 drop table A;
b).刪除庫 drop database Demo;
3).DCL(Dada Control Language) 資料庫控制語言
A).grant 授權
a).grant 許可權 on 資料庫物件 to 使用者
B).deny 拒絕授權
DENY 許可權 TO 使用者
C).revoke 撤銷授權
a).revoke 許可權 on 資料庫物件 from 使用者
4).其他
A).檢視錶結構
a).desc A;
b).describe A;
c).show columns from A;
B).清空表資料
a).truncate table A;
2.SQL語句分析
1).EXPLAIN、DESC語句---關鍵資訊解釋
A).Type(system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL)
B).Possible_keys(NULL,則沒有相關的索引。在這種情況下,可以通過檢查WHERE子句看是否它引用某些列或適合索引的列來提高你的查詢效能)
C).Key(MySQL實際決定使用的鍵(索引))
D).Key_len(索引中使用的位元組數,不損失精確性的情況下,長度越短越好)
E).Ref(連線匹配條件,即哪些列或常量被用於查詢索引列上的值)
F).Rows(MySQL根據表統計資訊及索引選用情況,估算的找到所需的記錄所需要讀取的行數)
G).Extra(MySQL解決查詢的詳細資訊)
2).SHOW PROCESSLIST 分析
3.Mysql通過job任務排程(event)執行儲存過程
1).事件(EVENT) 呼叫 函式(f(x))(儲存過程)
a).事件
Call proc_detail();
b).儲存過程
CREATE PROCEDURE proc_detail()
BEGIN
DECLARE id1 bigint(20);
DECLARE openid1 varchar(100);
DECLARE unionid1 varchar(100);
-- 遍歷資料結束標誌
DECLARE done INT DEFAULT FALSE;
-- 遊標
DECLARE cur_account CURSOR FOR select id,openid,unionid from m_users where phone_bind =1 ;
-- 將結束標誌繫結到遊標
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 開啟遊標
OPEN cur_account;
-- 遍歷
read_loop: LOOP
-- 取值 取多個欄位
FETCH NEXT from cur_account INTO id1,openid1,unionid1;
IF done THEN
LEAVE read_loop;
END IF;
-- 你自己想做的操作
insert into m_users_details(uid,openid,unionid,style) VALUES(id1,openid1,unionid1,1);
END LOOP;
CLOSE cur_account;
END