数据库基础进阶

查询时判断语句 语法: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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉玊则不达

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值