SQL Server【四】
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 语句
视图定义的前后不能加begin
和end
如果不使用视图
--求出平均工资最高的部门名称和部门的平均工资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【四】相关推荐
- SQL Server数据库语法篇(付费内容限时开放)
SQL Server基础语法 一. 数据库的基本操作(命令操作) 1.1 创建数据库 1. create database 数据库名字 -- create databse mi-- 创建数据库并设置文 ...
- SQL错误提示档案(3):SQL Server连接中的四个最常见错误
SQL Server连接中的四个最常见错误: 一."SQL Server 不存在或访问被拒绝" 一般说来,有以下几种可能性: ...
- SQL Server R2 地图报表制作(四)
SQL Server R2 地图报表制作(四) 接下来需要指定一个地图类型,它显示随分析数据而改变的标记.这里我们选择"分析标记图".如下图所示: Server R2 地图报表制作 ...
- 第三篇——第二部分——第四文 配置SQL Server镜像——非域环境
原文: 第三篇--第二部分--第四文 配置SQL Server镜像--非域环境 本文为非域环境搭建镜像演示,对于域环境搭建,可参照上文:http://blog.csdn.net/dba_huangzj ...
- SQL Server数据库中批量导入数据的四种方法总结
在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是, ...
- 【2017-03-09】SQL Server 数据库基础、四种约束
一.数据库和内存的区别 数据库: 一些存储在硬盘上的数据文件 内存: 计算机临时存储的一些数据 二.常用数据库 .Net - SQL Server PHP - MySql Java - Oreacl ...
- SQL Server 2008 高可用性视频(四)-- 故障转移群集
做数据库的朋友都知道, 其实数据库的工作大致可以分为三类: 数据库设计与开发, 数据库管理, 数据库商业智能. 其中数据库管理的工作大部分是由DBA在做, DBA们除了要保证正常的数据库运行, 还要采 ...
- SQL Server 2008空间数据应用系列四:基础空间对象与函数应用
SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1. ...
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇 http://www.cnblogs.com/lyhabc/p/4678330.html 第二篇 http:// ...
- SQL Server 2005中的分区表(四):删除(合并)一个分区
在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不 同年份的数据放在不同的物理分区表里.具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1). 第2个小表: ...
最新文章
- 《小团团团队》第五次作业:项目需求分析改进与系统设计
- 【剑指offer】面试题四:替换空格
- 四轴飞行器实践教程第1章什么是飞行器
- jQuery技术内幕:深入解析jQuery架构设计与实现原理
- c语言线性表的逆转,数据结构(C语言)设有一个线性表E,将线性表逆置,要求逆线性表占? 爱问知识人...
- 串口ic读卡器源码-c#代码(2)续上
- mysql换服务器后数据同步_mysql配置主从,主服务器之前的数据可不可以同步过来...
- 《简明 Python 教程》笔记
- Quo Vadis JUnit
- 《构建之法》读后感 二
- Android 循环滚动控件ViewFlipper,可实现跑马灯或轮播图效果
- 有一种神一样的学霸,叫北大保安
- 得推分类信息 v4.0 强大且好用的网站信息编辑管理工具
- github语音识别对对_语音识别尝试方向
- 成都东软学院php期末考试题,求大神。。。C语言期末项目答案。。。题在一楼。。。...
- Bootstrap-Table事件和方法
- 原生js之同级元素添加移除class
- K3CLOUD 常用数据表
- 使用pandas来根据出生日期判断星座
- 由“戴尔用博客与中国用户沟通”想起