目录:
mysql权限
-
创建用户:
create user '用户名'@'IP地址' identified by '密码'; create user 'zekai'@'192.168.12.6' identified by '123'; create user 'zekai'@'192.168.%' identified by '123qwe'; create user 'zekai'@'%' identified by '123qwe';
-
授权:
#通用格式 grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权 grant select on db1.* to 'zekai'@'%'; grant select, insert,update, delete on db1.test1 to 'zekai'@'%'; grant select, insert,update, delete on *.* to 'zekai'@'%'; grant all privileges on *.* to 'zekai'@'%';
-
刷新权限
flush privileges;
mysql常用函数
CHAR_LENGTH(str)
返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。
对于一个包含五个二字节字符集, LENGTH()返回值为 10, 而CHAR_LENGTH()的返回值为5。
CONCAT(str1,str2,…)
字符串拼接
如有任何一个参数为NULL ,则返回值为 NULL。
FORMAT(X,D)
将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若 D 为 0, 则返回结果不带有小数点,或不含小数部分。
例如:
SELECT FORMAT(12332.1,4); 结果为: '12,332.1000'
INSTR(str,substr)
返回字符串 str 中子字符串的第一个出现位置。
LEFT(str,len)
返回字符串str 从开始的len位置的子序列字符。
LOWER(str)
变小写
UPPER(str)
变大写
LTRIM(str)
返回字符串 str ,其引导空格字符被删除。
RTRIM(str)
返回字符串 str ,结尾空格字符被删去。
SUBSTRING(str,pos,len)
获取字符串子序列
LOCATE(substr,str,pos)
获取子序列索引位置
REPEAT(str,count)
返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count 。
若 count <= 0,则返回一个空字符串。
若str 或 count 为 NULL,则返回 NULL 。
REPLACE(str,from_str,to_str)
返回字符串str 以及所有被字符串to_str替代的字符串from_str 。
REVERSE(str)
返回字符串 str ,顺序和字符顺序相反。
RIGHT(str,len)
从字符串str 开始,返回从后边开始len个字符组成的子序列
总结:
不推荐大家在sql语句中使用函数
相应的业务处理逻辑尽可能的放到python中处理
mysql视图
定义: sql语句的影子(映射)
作用:
1. 方便操作(查询)
2. 细颗粒度的权限控制
问题:
1. 原生表数据改变了, 视图表中的数据会不会发生改变?
也会改变
2. 视图中的数据能不能发生改变?
也会发生改变
创建视图:
create view 视图名(v1) as sql语句
修改视图:
alter view v1 as sql语句;
mysql触发器
创建触发器
delimiter //
CREATE TRIGGER t1_trigger1 BEFORE INSERT ON t1 FOR EACH ROW
BEGIN
insert into teacher (tname) values ('zekai');
END //
delimiter ;
类似操作(更新表时,删除表时):
CREATE TRIGGER t1_trigger1 BEFORE DELETE ON t1 FOR EACH ROW
BEGIN
insert into teacher (tname) values ('zekai');
END //
CREATE TRIGGER t1_trigger1 BEFORE UPDATE ON t1 FOR EACH ROW
BEGIN
insert into teacher (tname) values ('zekai');
END //
mysql存储过程
相当于python函数:操作一坨sql语句
创建过程:
delimiter //
create PROCEDURE p1()
BEGIN
select * from teacher;
END //
delimiter ;