identity

主键自动增长,用户不需要为identity修饰的主键赋值

create table student
(std_id int primary key identity(10,5),--(10,5)可以省略,默认为(1,1)std_name nvarchar(200) not null
)
select * from student
insert into student values ('张三') --不需要为主键赋值
insert into student values ('李四')
insert into student values ('王麻子')

delete from student where std_name='李四'

insert into student values ('李四')


即删除以后不会前移,而是继续增长
但是主键是否连续增长不是十分重要

如果使用identity以后就不能手动设置主键,如果一定要设置可以进行如下操作


SET identity_insert Test.dbo.student on --注意下划线insert into student(std_id, std_name) values (15, '王五')    --不可以省略(std_id, std_name)set identity_insert Test.dbo.student off

视图

视图是select语句
逻辑上相当于一个临时表、虚拟表
但是库里面并不存在真正的表

格式:

create view vi_name
as select 语句

视图定义的前后不能加beginend

如果不使用视图

--求出平均工资最高的部门名称和部门的平均工资select dept.dname as "部门名称", tmp.avg_sal as "最高平均工资"from deptjoin (select top 1 avg(sal) as avg_sal, deptnofrom empgroup by deptnoorder by AVG(sal) desc) "tmp"on dept.deptno = tmp.deptno--Oracle不支持top,如果不使用rownum,使用下面复杂写法
select dept.dname as "部门名称", tmp.avg_sal as "最高平均工资"from (select AVG(sal) as avg_sal, deptno from emp group by deptno) as "tmp"join depton dept.deptno=tmp.deptnowhere (select MAX(t.avg_sal)from (select AVG(sal) as avg_sal, deptno from emp group by deptno) as "t")= tmp.avg_sal;

如果使用视图

create view vi_emp1 as select AVG(sal) as avg_sal, deptno from emp group by deptnoselect dept.dname as "部门名称", vi_emp1.avg_sal as "最高平均工资"from vi_emp1join depton dept.deptno=vi_emp1.deptnowhere (select MAX(tmp.avg_sal) from vi_emp1 as "tmp")= vi_emp1.avg_sal;

视图的优点:

  • 视图可以简化查询,方便地创建一个临时表,避免代码冗余.
  • 可以增加视图的保密性

使用视图一般用于查询,很少用于增删改查。有时会出错。

视图的缺点:

  • 增加了数据库维护的成本(可能不会自动更新)
  • 视图只是简化了代码,并没有加快查询的速度。

注意事项:

  • 创建视图的select语句必须为所有的计算列指定别名
  • 视图不是物理表,是虚拟表
  • 不建议通过视图更新视图所依附的原始表的数据或结果

事务

事务主要保证数据的合理性和并发处理能力

可以避免数据处于一种不合理的中间状态,例如转账
利用事务可以实现多个用户对共享资源的同时访问,使得呈现给用户的数据是合理的

事务和线程的关系:
事务也是通过锁来解决很多问题

事务运行的三种模式:

  • 自动提交事务
  • 显式事务
  • 隐性事务

事务的四大特性:

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

SQL Server【四】相关推荐

  1. SQL Server数据库语法篇(付费内容限时开放)

    SQL Server基础语法 一. 数据库的基本操作(命令操作) 1.1 创建数据库 1. create database 数据库名字 -- create databse mi-- 创建数据库并设置文 ...

  2. SQL错误提示档案(3):SQL Server连接中的四个最常见错误

    SQL   Server连接中的四个最常见错误:         一."SQL   Server   不存在或访问被拒绝"          一般说来,有以下几种可能性:     ...

  3. SQL Server R2 地图报表制作(四)

    SQL Server R2 地图报表制作(四) 接下来需要指定一个地图类型,它显示随分析数据而改变的标记.这里我们选择"分析标记图".如下图所示: Server R2 地图报表制作 ...

  4. 第三篇——第二部分——第四文 配置SQL Server镜像——非域环境

    原文: 第三篇--第二部分--第四文 配置SQL Server镜像--非域环境 本文为非域环境搭建镜像演示,对于域环境搭建,可参照上文:http://blog.csdn.net/dba_huangzj ...

  5. SQL Server数据库中批量导入数据的四种方法总结

    在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是, ...

  6. 【2017-03-09】SQL Server 数据库基础、四种约束

    一.数据库和内存的区别 数据库: 一些存储在硬盘上的数据文件 内存: 计算机临时存储的一些数据 二.常用数据库 .Net - SQL Server PHP - MySql Java - Oreacl ...

  7. SQL Server 2008 高可用性视频(四)-- 故障转移群集

    做数据库的朋友都知道, 其实数据库的工作大致可以分为三类: 数据库设计与开发, 数据库管理, 数据库商业智能. 其中数据库管理的工作大部分是由DBA在做, DBA们除了要保证正常的数据库运行, 还要采 ...

  8. SQL Server 2008空间数据应用系列四:基础空间对象与函数应用

    SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1. ...

  9. 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)

    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇 http://www.cnblogs.com/lyhabc/p/4678330.html 第二篇 http:// ...

  10. SQL Server 2005中的分区表(四):删除(合并)一个分区

    在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不 同年份的数据放在不同的物理分区表里.具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1). 第2个小表: ...

最新文章

  1. 《小团团团队》第五次作业:项目需求分析改进与系统设计
  2. 【剑指offer】面试题四:替换空格
  3. 四轴飞行器实践教程第1章什么是飞行器
  4. jQuery技术内幕:深入解析jQuery架构设计与实现原理
  5. c语言线性表的逆转,数据结构(C语言)设有一个线性表E,将线性表逆置,要求逆线性表占? 爱问知识人...
  6. 串口ic读卡器源码-c#代码(2)续上
  7. mysql换服务器后数据同步_mysql配置主从,主服务器之前的数据可不可以同步过来...
  8. 《简明 Python 教程》笔记
  9. Quo Vadis JUnit
  10. 《构建之法》读后感 二
  11. Android 循环滚动控件ViewFlipper,可实现跑马灯或轮播图效果
  12. 有一种神一样的学霸,叫北大保安
  13. 得推分类信息 v4.0 强大且好用的网站信息编辑管理工具
  14. github语音识别对对_语音识别尝试方向
  15. 成都东软学院php期末考试题,求大神。。。C语言期末项目答案。。。题在一楼。。。...
  16. Bootstrap-Table事件和方法
  17. 原生js之同级元素添加移除class
  18. K3CLOUD 常用数据表
  19. 使用pandas来根据出生日期判断星座
  20. 由“戴尔用博客与中国用户沟通”想起

热门文章

  1. PHP中cookie和session的区别
  2. 【VS开发】IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)
  3. echarts如何显示在页面上
  4. 虚拟机Linux图形界面配置NAT-桥接
  5. 2016年,我的和自己谈谈
  6. EYQiPa,梦开始的地方
  7. A4Desk 网站破解
  8. 当代国人绝难做到的10件平常事
  9. html的table弹窗_Js弹出基于Table的可关闭浮动层
  10. 各种说明方法的答题格式_语文万能答题公式,给孩子收藏吧!