学习 SQL Server :内置函数,触发器
Posted JackeyLovelove
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习 SQL Server :内置函数,触发器相关的知识,希望对你有一定的参考价值。
------ 【重点】====================== 内置函数 ===============================
-- 1. 字符串方法
--Left(): 返回字符串从左开始数,指定数量的字符串
select left(‘的事撒大大多大多所‘,4)
select left(‘的事撒大大多大多所‘,4)+‘...‘
--Right():返回字符串从右开始数,指定数量的字符串
select right (‘的事撒大大多大多所‘,4)
--Ltrim():去左边的空格
select ‘===‘+LTRIM(‘ I Love You ‘)+‘===‘
--Rtrim():去左边的空格
select ‘===‘+RTRIM(‘ I Love You ‘)+‘===‘
--同时去掉左右空格 ltrim(rtrim()) 【易错题】
select ‘===‘+RTRIM(ltrim(‘ I Love You ‘))+‘===‘
--substring:截取字符串 第一个参数:字符串本身 , 第二个参数从哪开始截取(从1开始),包含从哪开始的字符, 第三个参数:截取几个
select substring(‘八维红叶物联网学院专业阶段‘,4,5) ----烨物联网学
--str : 把其他类型的信息转为字符串
declare @s int
set @s =123
select str(@s)+‘456‘
--Lower() 字母变小写
select lower(‘Hello Word‘)
--Upper() 字母变大写
select upper(‘Hello Word‘)
-- len() 求字符串长度 字母 数字 汉子 其他符号都算1
select len(‘123456‘)
select len(ltrim(‘ 123456‘))
--- 2. 数学函数
-- 绝对值: abs() 所有数的绝对值
select abs(-5)
--求算数平方根:sqrt()
select sqrt(2)
--四舍五入:round(数字,保留的小数位置)
select round(3.1415929,3)
--随机数 rand() 默认随机0-1之间的小数
select rand()
select round(rand() * 100000,0)
-- 3. 时间日期函数
-- getdate() 获取当前系统日期
select getdate()
-- 显示当前时间 格式是xxx年xx月xx日
select str(year(getdate()))+‘年‘ + str(month(getdate()))+‘月‘+str(day(getdate()))+‘日‘
-- datediff() 计算时间的差值 三个参数
select datediff(day,‘2020-1-1‘,‘2019-10-21‘)
------=-======================== 触发器=======================-----------------
--创建一个数据库
create database Unity16
use Unity16
--建表1--学生表
create table Students
(
Id int primary key identity, --编号
UserName varchar(10) not null, --姓名
UserAge int not null --年龄
)
--建表2--学生统计表(统计添加学生的数量)
create table Students_count
(
Counts int
)
insert into Students_count values(0)
select * from Students
select * from Students_count
----------------- 插入触发器 -------------------
--create trigger 触发器名
--on 表名
--after 触发器种类
--as
--begin
-- 触发器代码
--end
--第1步 创建触发器
create trigger xx
on Students
after insert --触发器种类 inert 触发器时机 after 之后触发
as
begin
update Students_count set Counts=Counts+1
end
--第2步 使用触发器
insert into Students values(‘张三‘,19)
insert into Students values(‘老王‘,39)
--删除触发器
drop trigger xx
----------------- 删除触发器【之后】 ------------------
--创建delete触发器,实现:删除学生的时候,同时减少学生人数
create trigger del_stu
on Students
after delete
as
begin
update Students_count set Counts=Counts-1
end
--使用
delete from Students where UserName=‘老王‘
----------------- 修改触发器 【之后】 -----------------------------
create trigger upd_stu
on Students
after update
as
begin
print‘修改前的数据‘
select * from deleted
print‘添加前的数据‘
select * from inserted
end
update Students set UserName=‘小雨‘,UserAge=25 where id=5
作者还在学习中,发现错误的请在评论区留言。 如果有客友觉得文章还行的话,请点波推荐哦??。 谢谢你们!!
以上是关于学习 SQL Server :内置函数,触发器的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 触发器内的存储过程调用是不是隐含线程安全和原子?