赞
踩
SQL SERVER是一种类似于MYSQL的关系型数据库。
SQL server自带5中数据库
1. master数据库
是SQL SERVER中最重要的数据库,记录了SQL SERVER系统的所有级别的信息。一旦master数据库被损坏,则系统无法正常启动。
2. tempdb数据库
tempdb数据库是一个临时的数据库,它保存所有的临时表、临时存储过程和临时操作结果。tempdb在SQL SERVER每次启动时都重新创建,运行时根据需要自动增长。
3. model数据库
model数据库用作在系统上创建的所有数据库的模板。当用户创建数据库时,新数据库第一部分通过复制model数据库中的内容创建,剩余部分空白部分填充。
4. msdb
msdb数据库给SQL SERVER代理提供必要的信息来运行作业。SQL SERVER代理是SQL SERVER中一个Windows服务,用于运行任何已创建的计划作业。作业是SQL SERVER中定义的自动运行的一系列操作,不需要任何人工干预来启动。
5.resource数据库
resource数据库是从SQL SERVER2005以来引入的新的数据库,是一个只读数据库,它包含SQL SERVER中的所有系统对象。
1. sysdatabases
包含每个数据库的主要信息。
2. sysobjects
包含在数据库内创建的每个对象的信息。
包含表、视图中的每列和存储过程中的每个参数的信息。
对于如上三个系统表,不做深入地解释每个表的字段意义,如果感兴趣可自行搜索。
TSQL是属于一种SQL语言,专门用于SQL SERVER数据库进行交互。
SQL语言可分为如下三类:
1. 数据操作语言 DML(DataMasterLanguage)用于操作数据库中的数据
2. 数据定义语言DDL(DataDefineLanguage) 用于操作数据库各种对象
3. 数据控制语言DCL(DataControlLanguage)用于控制数据库的权限和事务控制
基本数据类型
符号 | 意义 | 范围 |
bigint | 长整型 | -2^63到2^63-1,占用8个字节 |
int | 整型 | -2^31到2^31-1,占用4个字节 |
smallint | 短整型 | -2^15到2^15-1,占用2个字节 |
tinyint | 微整形 | 0到255,占用1个字节 |
非整数型 | ||
float | 多精度浮点型 | 可精确到小数第15位,占用8字节 |
real | 单精度浮点型 | 可精确到小数第7位,占用7位小数 |
布尔型 | ||
bit | 取值0、1、NULL三者之一 | TRUE为1,FALSE为0 |
日期类型 | ||
datetime | 存储日期和时间的结合体 | YYYY-MM-DD hh:mm:ss[.nnnnnnn] 占用8字节 |
date | 存储日期 | YYYY-MM-DD占用3字节 |
time | 存储时间 | hh::mm:ss占用3-5个字节 |
字符串类型 | ||
char[n] | 固定长度字符类型 | 固定长度,长度为n个字节,剩余用空格填充,多余截掉 |
varchar[n] | 可变长度字符类型 | 可变长度,存储大小是数据的实际长度加2个字节,小于n不会用空格填充 |
text | 存储大量文本数据 | 用于存储大量文本数据 |
unicode字符串类型 | ||
nchar[n] | 固定长度Unicode字符串型 | |
nvarchar[n] | 可变长度Unicode字符串型。 | |
二进制字符串类型 | ||
binary | 固定长度二进制数据类型 | |
varbinary | 长度可变的二进制数据类型。 |
自定义变量类型
用户自定义数据类型必须基于SQL SERVER基础数据类型。
- CREATE TYPE <类型名称>
- FROM <基类型>[(<精度>[,<位数>])]
- [NULL|NOT NULL]
常量
指在程序运行过程中保持不变的量。常量分为数值常量、字符串常量、日期和时间常量。
变量
指在程序运行中可以改变的量。分为全局变量和局部变量两类
全局变量:
全局变量由SQL SERVER系统预先定义好的变量,用户可以使用它的值但是不能自己定义全局变量。全局变量在任何地方都可以使用。全局变量名称前加符号"@@"。
全局变量名称 | 描述 |
@@CONNECTIONS | 返回 SQL Server 自上次启动以来尝试的连接数。 |
@@CPU_BUSY | 返回 SQL Server 自上次启动后的工作时间。 |
@@CURSOR_ROWS | 返回连接上打开的上一个游标中的当前限定行的数目, 确定当其被调用时检索了游标符合条件的行数。 |
@@DATEFIRST | 针对会话返回 SET DATEFIRST 的当前值,SET DATEFIRST 表示指定的 每周的第一天。 |
@@DBTS | 返回当前数据库的当前 timestamp 数据类型的值, 这一时间戳值在数据库中必须是唯一的。 |
@@ERROR | 返回执行的上一个 Transact-SQL 语句的错误号, 如果前一个 Transact-SQL 语句执行没有错误,则返回 0。 |
@@FETCH_STATUS | 返回针对连接当前打开的任何游标发出的上一条游标 FETCH 语句的状态。 |
@@IDENTITY | 返回上次插入的标识值。 |
@@IDLE | 返回 SQL Server 自上次启动后的空闲时间。结果以 CPU 时间 增量或“时钟周期”表示,并且是所有 CPU 的累积。 |
@@IO_BUSY | 返回自从 SQL Server 最近一次启动以来,Microsoft SQL Server 已经用于执行输入和输出操作的时间。其结果是 CPU 时间增量 (时钟周期),并且是所有 CPU 的累积值 |
@@LANGID | 返回当前使用的语言的本地语言标识符 (ID)。 |
@@LANGUAGE | 返回当前所用语言的名称。 |
@@LOCK_TIMEOUT: | 返回当前会话的当前锁定超时设置(毫秒)。 |
@@MAX_CONNECTIONS | 返回 SQL Server 实例允许同时进行的最大用户连接数。 返回的数值不一定是当前配置的数值。 |
@@MAX_PRECISION | 按照服务器中的当前设置,返回 decimal 和 numeric 数据类型 所用的精度级别。 |
@@NESTLEVEL | 返回对本地服务器上执行的当前存储过程的嵌套级别(初始值为 0)。 |
@@OPTIONS | 返回有关当前 SET 选项的信息。 |
@@PACK_RECEIVED | 返回 SQL Server 自上次启动后从网络读取的输入数据包数。 |
@@PACK_SENT | 返回 SQL Server 自上次启动后写入网络的输出数据包个数。 |
@@PACKET_ERRORS | 返回自上次启动 SQL Server 后,在 SQL Server 连接上发生的网络 数据包错误数。 |
@@PROCID | 返回 Transact-SQL 当前模块的对象标识符 (ID)。Transact-SQL 模块可以是存储过程、用户定义函数或触发器。 |
@@REMSERVER | 返回远程 SQL Server 数据库服务器在登录记录中显示的名称。 |
@@ROWCOUNT | 返回受上一语句影响的行数。 |
@@SERVERNAME | 返回运行 SQL Server 的本地服务器的名称。 |
@@SERVICENAME | 返回 SQL Server 正在其下运行的注册表项的名称。若当前实例为 默认实例,则 @@SERVICENAME 返回 MSSQLSERVER。 |
@@SPID | 返回当前用户进程的会话 ID。 |
@@TEXTSIZE | 返回 SET 语句中的 TEXTSIZE 选项的当前值。 |
@@TIMETICKS | 返回每个时钟周期的微秒数。 |
@@TOTAL_ERRORS | 返回 SQL Server 自上次启动之后所遇到的磁盘写入错误数。 |
@@TOTAL_READ | 返回 SQL Server 自上次启动后读取磁盘(不是读取高速缓存)的次数。 |
@@TOTAL_WRITE | 返回 SQL Server 自上次启动以来所执行的磁盘写入次数。 |
@@TRANCOUNT | 返回当前连接的活动事务数。 |
@@VERSION | 返回当前的 SQL Server 安装的版本、处理器体系结构、生成日期 和操作系统。 |
局部变量
局部变量为用户自定义变量,它的作用范围仅在程序内部。
声明局部变量
DECLARE <@变量名称> <变量类型>[,<@变量名称> <变量类型> ...]
赋值局部变量
- SELECT <@局部变量>=<变量值> |
- SET <@局部变量>=<变量值>
输出语句
- PRINT <文本串>|<@变量名称>|<@@变量名称>|<字符串表达式>
- | SELECT <变量名> [AS '别名'][,...N]
TSQL中常用的运算符同标准SQL。不再赘述
写此篇博客意为记录分享学习技术上所学内容,作者能力有限,如有不足之处还请斧正。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。