SQL SERVER 简介及应用 - 数据库系统原理
SQL SERVER 是一个分布式的关系型数据库管理系统(RDBMS),具有客户 - 服务器体系结构,一般发行的版本有企业版、标准版、个人版、开发版。
- SQL SERVER 提供的服务
- MS SQL Server:运行 SQL Server 的服务。
- SQL Server Agent:管理 SQL Server 周期性行为的安排,并在发生错误时通知系统管理员。
- Microsoft Server Service:提供一个全文本索引和搜索引擎。
- MS DTC:管理包含不同数据源的事务。
- SQL SERVER 的主要工具
主要有查询分析器、导入和导出数据、服务管理器、服务器网络实用工具、客户端网络实用工具、联机丛书、企业管理器、事件探查器、在 IIS 中配置 SQL XML 支持等 9 种工具。
企业管理器
企业管理器是用户管理 SQL SERVER 的主要管理工具和图形界面,它提供遵从 Microsoft 管理控制台 MMC 的用户界面。企业管理器几乎可以完成所有的管理工作,如管理登录帐号、数据库用户和权限、创建和管理数据库,创建和管理表、视图、存储过程以及用户自定义数据类型等。
- 创建存储过程
CREATE PROCEDURE proc1 AS
SELECT Sid, Name, Age FROM Student WHERE Area = 'Shanghai'
CREATE PROCEDURE proc2
@Iname varchar (40),
@phone varchar (12) OUTPUT
AS
SELECT @phone = phone FROM Student WHERE Name = @Iname
- 创建触发器
-- WITH APPEND 指定加密触发器的文本
CREATE TRIGGER <触发器名> ON <表 | 视图>
FOR { AFTER | INSTEAD OF} { INSERT | UPDATE | DELETE} [ WITH APPEND] [NOT FOR REPLICATION]
AS
IF (表达式)
BEGIN
<语句段>
END
- SQL Server 的验证模式:Windows 身份验证模式、混合验证模式。
T – SQL 语言
标准 SQL 的 DML 命令只能用于修改或返回数据,没有用于开发过程和算法的编程结构,也没有包含控制和调整服务器的数据库专用命令。因此,各功能完备的数据库产品都必须使用它们各自专有的 SQL 语言扩展来弥补标准 SQL 的不足之处。在 SQL Server 中,这种扩展称为 Transact - SQL,简称 T - SQL。
- T – SQL 批处理
由一条或多条 T – SQL 语句构成,以 CREATE 语句开始,用 USE 命令选定当前的数据库,用 EXEC 命令来调用存储过程。
- 变量
T – SQL 语言中,变量分为局部变量和全局变量两种。局部变量以单个字符“@”开头,由用户定义和维护;全局变量以两个“@@”字符开头,由系统定义和维护。变量声明用 DECLARE 命令,且要指定变量名和数据类型。为变量赋值使用 SET 命令和 SELECT 命令。
use pubs
declare @val1 int, @val2 varchar(50) -- 局部变量
select @val1, @val2 -- 结果:NULL NULL
set @val1 = 123
select @val2 = job_desc from jobs -- 返回多个结果时,变量被不断赋值,生效的是最后一个查询值
select @val1, @val2 -- 结果:123 Designer
go
select @val1, @val2 -- 结果:服务器:消息 137,级别 15,状态 2,行 1,必须声明变量 '@val1'
- 流程控制
- IF Boolean_expression SQL_statement | SQL_statement_block [ ELSE SQL_statement | SQL_statement_block ]
- Begin … End:将多条 SQL 语句封装为语句块
- While Boolean_expression [ SQL_statement | SQL_statement_block ]
- Goto:转移到同一个批处理或过程中的指定标签处。
declare @tmp int
set @tmp = 0
while @tmp < 5
begin
set @tmp = @tmp + 1
if @tmp = 2 continue
if @tmp = 4 break
print 'tmp:' + Str(@tmp)
end
print 'while end'
go
-- 执行结果为:(1)tmp:1 (2)tmp:3 (3)while end
goto Label1
print '1'
Label1:
print '2'
-- 执行结果为: 2
- 临时表
临时表和表变量用来在不同的对象之间传递数据或者为临时性的任务短时间保存数据。创建临时表用 CREATE 关键字,使用以一个(局部临时表)或两个(全局临时表)“#”开头的表名。临时表保存在 Tempdb 数据库中,局部临时表的生命周期很短暂,当创建它的批处理或者过程结束时,就会被删除。而全局临时表也与它相似,但作用域更广泛,所有用户都可以引用全局临时表,当最后一个引用它的会话结束后,才会被删除。
-- 创建局部临时表
create table #tmptable( id int primary key, value varchar (100))
-- 创建全局临时表
if not exists (select * from Tempdb where name='##tmptable')
create table ##tmptable( id int primary key, value varchar (20))
- 表变量
表变量与变量具有相同的作用域和生命周期。表变量保存在内存中。应尽可能使用表变量而不是临时表。
- 表变量的优点:
- 行为类似局部变量,有明确定义的作用域。
- 可像常规表那样使用。
- 在定义它的存储过程或批处理结束时,自动被清除。
- 在存储过程中使用表变量与临时表相比,减少了存储过程的重新编译量。
declare @vartable table( id int primary key, value varchar (20) )
insert into @vartable values ( 12, 'abc')
select * from @vartable
SQL SERVER 简介及应用 - 数据库系统原理的更多相关文章
- 深入解析 SQL Server 高可用镜像实现原理
作者:郭忆 本文由 网易云 发布. SQL Server 是 windows 平台 .NET 架构下标配数据库解决方案,与 Oracle.MySQL 共同构成了 DB-Engines Ranking ...
- 深入解析SQL Server高可用镜像实现原理
本文来自网易云社区 SQL Server 是windows平台.NET架构下标配数据库解决方案,与Oracle.MySQL共同构成了DB-Engines Ranking的第一阵营,在国内外企业市场中有 ...
- SQL Server 简介
什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.是以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度的特点.是与应用程序彼此独立的数据集合. SQL S ...
- SQL Server三种表连接原理
在SQL Server数据库中,查询优化器在处理表连接时,通常会使用一下三种连接方式: 嵌套循环连接(Nested Loop Join) 合并连接 (Merge Join) Hash连接 (Hash ...
- SQL Server查询优化器的工作原理
SQL Server的查询优化器是一个基于成本的优化器.它为一个给定的查询分析出很多的候选的查询计划,并且估算每个候选计划的成本,从而选择一个成本最低的计划进行执行.实际上,因为查询优化器不可能对每一 ...
- SQL Server 统计信息(Statistics)-概念,原理,应用,维护
前言:统计信息作为sql server优化器生成执行计划的重要参考,需要数据库开发人员,数据库管理员对其有一定的理解,从而合理高效的应用,管理. 第一部分 概念 统计信息(statistics):描述 ...
- 第7讲:SQL Server简介
SQL Server是微软公司提供的一款关系数据库管理系统. 操作数据库有两种方式:SQL语句和可视化的SSMS,该文章所有操作均基于SSMS. 一.SSMS(SQL Server Managemen ...
- Microsoft SQL Server 简介
SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行M ...
- PowerBuilder 简介及应用 - 数据库系统原理
PowerBuilder 是一种企业级数据库前端应用和多层体系结构开发工具,友好的用户界面,功能强大的数据窗口,是一个集成开发环境. PB 的特点 采用面向对象的编程方法和事件驱动的工作原理. 支持跨 ...
随机推荐
- android assets文件夹浅谈
---恢复内容开始--- 最近在研究assets文件夹的一些属性跟使用方法.根据网上一些文章.实例做一下汇总,拿出来跟大家分享下,有不足的地方还请多多指教. 首先了解一下assets是干什么用的,as ...
- hdu 1002
ps:wa了好多次,然后才发现是输入的时候%s和%s要隔开一个空格,我想当然了... 代码: #include "stdio.h" #include "string.h& ...
- Java网络编程及安全
一.实验内容: 1.运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP发送: 注:加密使用AES或者 ...
- Django01
1.创建django project 2.创建app 在一个project下可以创建多个app,比如运维系统这个project下面包含监控app.cmdb app等等,这些app共享project里的 ...
- Android动画之Tween动画实战
Android动画分为Tween动画和Frame动画,上一节通过一个实例介绍了Frame动画,本节将介绍Tween动画.Tween可以把对象进行缩小.放大.旋转和渐变等操作. Tween动画有 ...
- PKU 1001解题代码
本来以前也写过,但是由于许多细节问题,没有AC,今天修改了一下,终于AC了,以前没有AC的具体原因总结了了一下,必须任何数的0次方都等于1没有考虑,还有就是首0和末尾0以及小数点没有处理好,下面贴代码 ...
- 2016-08-01一起领略ReactJs的风采
现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...
- [转] 添加新的系统调用 _syscall0(int, mysyscall)
实验目的阅读 Linux 内核源代码,通过添加一个简单的系统调用实验,进一步理解Linux操作系统处理系统调用的统一流程.通过用kernel module的方法来实现一个系统调用实验,进一步理解Lin ...
- mysql5.7 慢查底里失败的原因
正确配置: log_output = FILEslow-query-log = on slow_query_log_file ="D:/MySQL5.7/data/slow ...
- logstash 添加nginx日志
选择需求分类废话少说直接上图 第一张图: 2.此图搭配的日志格式是: log_format main '$remote_addr - $remote_user [$time_local] $http_ ...