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