查询时判断语句 语法:case字段名,when 值 then 返回结果 end
select id,t_nsme,t_city,t_money,t_status
,case t_status
when '1' then '正常'
when '2' then '拉黑'
when '3' then '删除'
else '未知'
end as 状态
from base_user
主外键 人员的role_id关联角色表中的id
role_id 外键 角色表中的id就是主键,(设置主外键关联之后,新增修改删除都会有限制)
唯一键: 设置某个字段为唯一键后,此字段的数据不能够重复
索引:设置索引之后提升查询速度
视图 关键字 view
create view user_role_v as
select
a.id as userid,
a.t_name as userName
a.t_city as usercity
b.t_name as rolename
b.t_code as rolecode
from base_user as a
left join base_role as b on a.role_id= b.id
一些复杂的业务逻辑一般放在代码里去实现不在sql语句中填写
--变量
--declare 定义变量,以@开头
--set 给变量赋值
--if 判断 else if ,else 判断里的内容以begin开始,end结束,begin相当于代码里面的{,end相当于}
--print 输出 ,相当于console.whiteline
declare @id int , @name varchar(50)
--给@id赋值 ,必须以set开头
set @id=5
--给变量赋值的另一种方式
select @name=t_name from core_role where id=@id
set @name =(select name from core_user where id = @id)
if @Id<5
begin
print '@id<5'
end
else if @id =5
begin
print @name
end
else
begin
print '@id大于5'
end
转换数据类型 关键字 convert
set @id =15;
convret(varchar,@id)
创建一个函数
create function user_add(@id int) --create function 方法名(变量)
returns varchar(50) --returns 返回值类型
begin --begin
declare @name varchar(50) --方法
select @name=name from core_user where id=@id --
return @name --return 返回值
end --end
--创建存储过程
create procedure 名称 -- create procedure add_one_log
--变量 -- @masg varchar(50), @remark varchar(500)
as asinsert into 表名(列名) values(变量) --
insert into code_log(msg, remark) values(@masg,@remark)
--使用存储过程 关键字 exec
--exec 创建存储过程的名称 变量
exec add_one_log('李四','参数','参数')
触发器
create trigger add_one_log_t --创建一个触发器 触发器名称是add_one_log_t
on core_ogan --给触发器关联一个表
for insert,delete,update --触发器触发事件
as
begin
'方法' --触发后执行的事件
end
--例
create trigger add_one_log_t --创建一个名字为add_one_log_t的触发器
on core_ogan --关联core_ogan表
for INSERT,UPDATE,DELETE --触发条件
as --as
BEGIN --begin
declare @deleteId int, @insertId int --定义变量 @deleted @insertid
select @insertId=id from inserted --查询添加的新id,inserted是内置方法
select @deleteId=id from deleted --查询删除的id
IF @deleteId>0 and @insertId>0 --如存在删除id与添加的id 就是修改的id
BEGIN
insert into code_log(msg,remark) --添加一条数据
values ('修改','修改了数据'+convert(varchar,@insertId))
END
else if @insertId >0
BEGIN
insert into code_log(msg,remark)
values ('添加','添加了数据'+convert(varchar,@insertId))
END
else if @deleteId>0
BEGIN
insert into code_log(msg,remark)
values ('删除','删除了数据'+convert(varchar,@deleteId))
END
END
--事务
begin transaction
--提交节点
commit
--回滚节点
rollback