--=============== 视图的创建 =================、

--create view 视图名 as 查询语句
--注意:视图查询中的字段不能重名
-- 视图中的数据是‘假数据’,真实数据在数据表中,如果数据表中被修改了,则视图中的数据也受影响
-- 使用视图和使用数据表方法一样。视图也可排序、分组、设置条件,还可以嵌套

create view edu_view
as
select s1.Id 学生编号,s1.Name 学生姓名,s2.Score 分数,c.Name 课程名称,t.Name 教师姓名 from Students s1 join Scores s2 on s2.StudentId=s1.Id join Course c on s2.CourseId=c.Id join Teachers t on t.Id=c.TeacherId
select * from edu_view

--修改视图
--alter view 视图名 as 查询语句
alter view edu_view
as
select s1.Id 学生编号,s1.Name 学生姓名,s2.Score 分数,c.Name 课程名称,t.Name 教师姓名 from Students s1
join Scores s2 on s2.StudentId=s1.Id
join Course c on s2.CourseId=c.Id
join Teachers t on t.Id=c.TeacherId
where t.Name='耿冰冰'
select * from edu_view

--删除视图
-- drop view edu_view

--查看视图信息
exec sp_help students

--========================== 索引 ===============================

--索引的创建

--创建非聚集索引
-- create index 索引名 on 表名(字段名)
create index index_age on students(Age)

--create unique [clustered] / [nonclustered] 【聚集】 / 【非聚集】
--index 索引名称 on 表名(列名 asc/desc)
--with fillfator =98 【填充因子,填充比例】

create unique clustered index index_age1 on Students(age) with fillfactor=90

--删除索引
--drop index 表名.索引名
drop index students.index_age

--修改索引
--exec sp_rename '表名.现有名称','新名称'
exec sp_rename 'students.index_age1','newindex_age'

--查看 索引
exec sp_helpindex 'students'

-- ================ 事务 transaction / tran ============和锁=======
select * from Students

begin tran
insert into Students values('学生小明',33,1)
insert into Students values('学生小李',34,1)
insert into Students values('学生小红',35,1)
insert into Students values('学生小黑',36,1)

declare @num int --定义int类型变量
set @num=(select count(1) from Students) ---给变量@num赋值 num的值就是数据表中的行数
if @num>=9
begin
rollback tran --回滚事务
end
else
begin
commit tran --提交事务
end

--========= 锁的大小分类
--锁按照锁定的数据的范围的大小,分为库所、表锁、页锁、行锁

--创建第一个事务
begin tran
update Students set Name='沙雕' where Id=1023
--设置锁定时间
waitfor delay '00:00:09'
commit tran

--创建第二个事务

--====================  T_SQL =====================

use Unit11
-----------------------------------------------------------------
--判断学生表人数是男生多还是女生多

declare @count1 int --定义整形变量 存储男生人数
declare @count0 int --定义整形变量 存储女生人数

set @count1=(select count(1) from Students where Sex=1) --通过查询给变量@count1赋值
select @count0=(select count(1) from Students where Sex=0)

if @count1>@count0
begin
print '男生多'
end
else
begin
print '女生多'
end
-----------------------------------------------------------------

---------------------------------输出1-100之间的偶数-------------------------------
declare @n int
set @n=1
while @n<=100
begin
if @n%2=0
begin
print @n
end
set @n=@n+1
end
-----------------------------------------------------------------------------------

--全局变量 @@变量名
--局部变量名 @变量名

select @@ERROR

select datediff(day,getdate(),'2020-1-1')
select datediff(day,'2000-9-14',getdate())
select datediff(hour,'2000-9-14',getdate())

作者还在学习中,发现错误的请在评论区留言。  如果有客友觉得文章还行的话,请点波推荐哦。 谢谢你们!!

最新文章

  1. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 解决方法
  2. Java基础知识学习(一)
  3. 解决由OpenShift自带的APC加速器造成的代码无法及时生效的问题
  4. vertical-align两种应用场合
  5. Python学习笔记:魔术方法详解
  6. 从HashMap透析哈希表
  7. C#:关联程序和文件
  8. 在openwrt上初体验PostgreSQL数据库
  9. 前端资源多个产品整站一键打包&amp;包版本管理(三)—— gulp分流
  10. Linux监控工具vmstat命令详解
  11. [UE4]Drop,扔物品
  12. LeetCode 86. Partition List 划分链表 C++
  13. dubbo源码分析11——服务暴露2_doExport()方法分析
  14. apache配置文件语法错误命令:httpd -t
  15. winserver2012 自启动软件
  16. CLR关于语言文化的类型一CultureInfo类和字符串与线程的关联
  17. 将java项目打包成docker镜像:镜像=副本
  18. POJ:2049Finding Nemo(bfs+优先队列)
  19. Java之dom4j的简单解析和生成xml的应用
  20. Lua的各种资源1

热门文章

  1. Nginx是如何处理一个请求
  2. UDP和TCP 简单 区别
  3. 前端和Nodejs的关系 简单理解
  4. 关于MySQL无法启动的一点问题
  5. Java实现 蓝桥杯VIP 算法训练 无权最长链
  6. Java实现十六进制转十进制
  7. Java实现 LeetCode 498 对角线遍历
  8. Java实现UVA10131越大越聪明(蓝桥杯每周一题)
  9. Java实现 基础算法 水仙花数
  10. PAT 说反话