DBA要干的事

视图

产生的原因:
如果有一个SQL语句频繁的会被使用到,比如说:
select * from t4 where id>12 and id <24;

搞一个映射,或者取一个别名
select * from t4 where id>12 and id <24 === > v1
视图:

select * from v1;

创建视图:

create view v1 as select * from t4 where id>12 and id <24;

修改视图:
alter view v1 as sql语句;

删除视图:
drop view v1;


问题:
如果原生的表数据发生了变化, 那视图会不会发生变化? 也会变化

视图中的数据会不会发生修改? 不会发生修改

应用场景:

MySQL: (DBA)
生成视图View

程序:
调用 select * from v1;

函数

不要轻易使用

在程序中, 用代码计算, 计算好了, 再传给SQL语句执行


存储过程:

将一大堆 SQL 语句进行封装, 类似于函数, 结果就是存储过程

MySQL服务端:
DBA (写)


a. 简单的存储过程:
delimiter //
create procedure p1()
BEGIN
select * from t11;
END //
delimiter ;

程序:
call p1();

b. 传参数: (in)
delimiter //
create procedure p2(
in n1 int,
in n2 int
)
BEGIN
select * from t11 where id > n1;
END //
delimiter ;

程序:
call p2(12, 2)

c. 传入参数: (out)

delimiter //
create procedure p3(
in n1 int,
out n2 int
)
BEGIN
select * from t11 where id > n1;
set n2 = 1;
END //
delimiter ;


set @v2=123212;
call p3(12, @v2);

select @v2;


触发器:

向用户表中添加一条数据的同时, 在日志表中也添加一条记录

delimiter //
CREATE TRIGGER t1 BEFORE INSERT ON t7 FOR EACH ROW
BEGIN
insert into t11 (name, money) values ('xxx', 1234);
END //
delimiter ;

权限管理

创建用户
create user '用户名'@'IP地址' identified by '密码';
creaee user 'zekai'@'192.168.1.123' identified by '123qwe';
creaee user 'zekai'@'192.168.1.%' identified by '123qwe';
create user 'zekai'@'%' identified by '123qwe';

删除用户
drop user '用户名'@'IP地址';
修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

修改密码
set password for '用户名'@'IP地址' = Password('新密码')

授权:
grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权

grant select on db1.* to 'zekai'@'%';
grant select on *.* to 'zekai'@'%';
grant select, insert, delete on db1.* to 'zekai'@'%';

记住:
flush privileges;

原文地址:https://www.cnblogs.com/1624413646hxy/p/11040966.html