1、视图
/*
视图,
*/
-- 创建视图
create view v1 as select id,title from news where id>2;
-- 使用视图
select * from v1;
-- 修改视图
alter view v1 as select id from news;
-- 删除视图
delete view v1;
2、触发器
/*
* 触发器
*/
-- 插入前
create trigger tri_before_insert_news before insert on news for each row
begin
-- ...
end
-- 插入后
create trigger tri_after_insert_news after insert on news for each row
begin
-- ...
end
-- 删除前
create trigger tri_before_delete_news before delete on news for each row
begin
-- ...
end
-- 删除后
create trigger tri_after_delete_news after delete on news for each row
begin
-- ...
end
-- 更新前
create trigger tri_before_update_news before update on news for each row
begin
-- ...
end
-- 更新后
create trigger tri_after_update_news after update on news for each row
begin
-- ...
end
-- 插入前触发器
delimiter\\
create trigger tri_before_insert_news before insert on news for each row
begin
if new.title = "测试" then
insert into tags(`name`) values ("before测试");
end if;
end;\\
delimiter;
-- 插入后触发器
delimiter\\
create trigger tri_after_insert_news after insert on news for each row
begin
if new.id >0 then
insert into tags(`name`) values ("after测试a");
end if;
end\\
delimiter;
insert into news(`title`) values ('测试');
-- 删除触发器
drop trigger tri_before_insert_news;
drop trigger tri_after_insert_news;
-- 使用触发器
insert into news(`title`,`content`) values('测试','内容');
3、存储过程 procedure 和 function的使用
-- 创建存储:in,仅用于传入参数用;out,仅用于返回值用;inout,既可以传入又可以当作返回值
create procedure p1(in s varchar(100))
begin
select * from news where id>3 and title = s;
end;
create procedure p2(in s varchar(200))
begin
select s from news;
end;
-- 执行存储过程
call p1("测试");
call p2("`id`,`title`");
-- 有参数的存储
delimiter\\
create procedure p3(in n int,inout cd int,out res int)
begin
declare temp1 int; -- 定义局部变量
declare temp2 int default 2;
set temp1 = 2;
set res = temp1+temp2+n;
set cd = n;
end\\
delimiter;
4、定义变量
declare @res int;
declare @cd int default 10;
call p3(8,@cd,@res);
select @cd,@res;
5、删除存储过程
drop procedure p1;
drop procedure p2;
drop procedure p3;
6、function使用
-- function使用
delimiter//
create function p4()
returns int
begin
declare ecount int;
-- select * from tags;
set ecount = 1;
return (ecount);
end//
delimiter
drop function p4;
SELECT p4();
-- alter table 表名 change 原列名 新列名 类型; --修改表的列属性名
-- alter table 表名 modify 列名 类型 ; --修改表的类类型
-- alter table 表名 drop 列名; --删除表的某一列
-- alter table 表名 add 列名 类型;--添加某一列
-- alter table 表名 rename 新表名; --修改表
-- alter table member modify PartnerCity int(11) default 0 unique;