SQL Server 数据库管理常用的SQL和T-SQL语句
sqlserver编程语言

sqlserver编程语言SQL Server 是一个关系数据库管理系统,它使用一种称为Transact-SQL (T-SQL) 的语言进行编程。
T-SQL 是 SQL 的一个扩展,它提供了额外的功能和语法,使开发人员能够执行更复杂的数据操作和业务逻辑。
以下是 T-SQL 的主要功能和特性:1.数据定义语言 (DDL):T-SQL 提供了一系列命令,如 `CREATE`, `ALTER`, 和 `DROP`,用于定义和管理数据库对象,如表、索引、存储过程等。
2.数据操纵语言 (DML):T-SQL 提供了如 `INSERT`, `UPDATE`, `DELETE` 等命令,用于插入、更新、删除数据。
3.事务处理:T-SQL 支持事务处理,使你可以在单一的逻辑操作中执行多个数据库操作。
4.存储过程和函数:T-SQL 支持创建存储过程和函数,这允许你将常用的或复杂的逻辑封装在数据库中。
5.触发器:T-SQL 支持创建触发器,这是一个响应数据库表上的特定事件(如插入、更新或删除)自动执行的特殊类型的存储过程。
6.游标:游标允许你遍历查询结果集中的行。
7.动态 SQL:你可以使用 T-SQL 创建和执行动态 SQL 查询。
8.SQL Server 对象变量:这允许你在 T-SQL 代码中引用数据库对象,如表或列。
9.控制流语句:T-SQL 支持条件语句(如 `IF` 和 `CASE`)、循环(如 `WHILE` 和 `CURSOR`)等控制流结构。
10.错误处理:T-SQL 支持错误处理,允许你捕获和处理运行时错误。
T-SQL 是与 SQL Server 交互的主要方式,它使开发人员能够编写复杂的查询、存储过程和触发器,以执行各种数据库任务和操作。
SQL Server中使用SSMS可视化和T-SQL语句修改和删除数据库

目录第1节.修改数据库21.1.使用SSMS修改2 1.2.使用SQL语句修改4 1.2.1.基本语法4 1.2.2.修改数据库初始大小5 1.2.3.修改数据库自动增长/最大大小6 1.2.4.修改数据库名称7第2节.删除数据库92.1.使用SSMS可视化删除9 2.2.使用SQL语句删除11第1节.修改数据库当数据库创建完成之后,在使用一段时间后发现数据库的某些属性需要调整,此时就需要修改数据库。
可以使用SSMS可视化修改,也可以使用SQL命令修改。
注意:修改数据库只能修改部分属性,有些属性创建完成后是不可修改的。
1.1. 使用SSMS修改在SSMS的对象资源管理器中,右击要修改的数据库名称:图63在图63中选择“属性”,如图64所示:图64在图64中,只要属性处于编辑状态,就可以修改。
修改时的属性要比新建时的属性多。
最常用的数据库修改操作就是与数据相关的文件属性信息,如下是修改后的文件信息:图65在图65中,修改了数据文件和日志文件的初始大小、自动增长等信息,点击“确定”按钮后即可保存修改后的信息。
1.2. 使用SQL语句修改1.2.1. 基本语法修改数据库信息的SQL语句是:“ALTER DATABASE 数据库名称”,这是核心语句,具体的基本语法如下:ALTER DA T ABASE 数据库名称{MODIFY NAME=新数据库名称|ADD FILE 文件信息[TO FILEGROUP {文件组名}]|ADD LOG FILE 文件信息|REMOVE FILE 逻辑文件名|MODIFY FILE 文件信息}该语句说明如下:(1)ALTER DA T ABASE 数据库名称:指定了将要修改的数据库名称。
(2)MODIFY NAME=新数据库名称:将数据库名称改个新的名称。
(3)ADD FILE 文件信息[TO FILEGROUP {文件组名}]:添加数据文件或日志文件,文件信息包括大小/自动增长/逻辑文件名/物理文件名。
sql server 查看筛选索引规则

一、索引的作用和意义索引是数据库中一种特殊的数据结构,用于提高数据库表中数据的检索效率。
通过建立合适的索引,可以加快查询速度,降低数据库的IO 开销,提高数据库的性能。
在 SQL Server 中,可以通过创建和查看索引来优化数据库的查询效率。
二、创建索引的方式在 SQL Server 中,可以通过以下几种方式来创建索引:1. 使用 CREATE INDEX 语句:可以通过这种方式对表中的列创建单列或多列索引。
2. 在SQL Server Management Studio (SSMS) 中使用图形界面:在 SSMS 中可以通过简单的操作来创建和管理索引。
3. 使用 Transact-SQL (T-SQL) 脚本:可以使用 T-SQL 脚本来创建和管理索引,这种方式更加灵活和精细。
三、查询索引的基本信息在 SQL Server 中,可以通过系统视图和动态管理视图来查询索引的基本信息,包括索引的名称、所属表、索引类型、列名等。
常用的系统视图和动态管理视图包括 sys.indexes、sys.index_columns、sys.objects 等。
四、使用系统存储过程查看索引1. sp_helpindex:通过执行 sp_helpindex 存储过程,可以查看指定表的所有索引信息,包括索引名称、索引列、索引类型等。
2. sp_help:通过执行 sp_help 存储过程,可以查看指定表的所有索引信息,包括索引名称、索引列、索引类型等。
五、使用系统函数查询索引的详细信息1. INDEXPROPERTY 函数:通过执行 INDEXPROPERTY 函数,可以查询指定索引的详细信息,包括是否唯一索引、是否聚集索引等。
2. INDEX_COL 函数:通过执行 INDEX_COL 函数,可以查询指定索引的列信息,包括列的顺序、列名等。
六、使用 SQL Server Management Studio 查看索引1. 打开 SQL Server Management Studio 并连接到目标数据库。
崔连和_SQL Server课件_第6课-T-SQL语言

看结果。如图
6-1所示。
批处理执行 结果
图6-1 批处理举例
点击保存SQLQuery1.sql
步骤02:在查询
分析器中,点保
存,可以将SQL命 令语句,保存到
一个文件中,扩
展名为.SQL.即脚 本。下次使用可 点击文件菜单/打 开。如图6-2所示
图6-2 脚本的保存与打开
1.简要分析 T-SQL既然是语言,首先我们要了解它识别哪些
字或字符,变量如何定义?有哪些语法规则?
2.实现步骤 (1)批处理、脚本和注释 (2)常量和变量
一、批处理、
脚本和注释
步骤01:点击 新建查询进入
几 个 SQL 命 令 组 构 成 了 一个批处理, Go 为批处 理结束标志。
查询分析器,
字符型常量,整型常量,日期时间型常量、实型常量、货币常量、 全局唯一标识符。常量的格式取绝于它所表示的值的数据类型。 (1)字符串常量 ASCII常量:用单引号括起来,由ASCII构成的字符串。包含字母、 数字字符(A~Z,0~9,a~z)以及特殊字符如感叹号(!),“at‖符号 @和数字字符#。如“abcd134‖
DECLARE @variable_name date_type [,@variable_name data_type…]
其中@variable_name表示局部变量的名字,必须以“@‖
开头。date_type表示指定的数据类型。如果需要,后面还
要指定数据长度。 变量声明后,DECLARE语句将变量初始化为NULL,这时, 我们可以调用SET语句或SELECT语句为变量赋值。SET语句的 基本语句格式如下:
--建立数据库OASystem
(2)注释多行: /*…*/
T-SQL简介及基本语法

T-SQL简介及基本语法⼀、T-SQL概述SQL Server⽤于操作数据库的编程语⾔为Transaction-SQL,简称T-SQL。
T-SQL与PL/SQL不同,并没有固定的程序结构。
T-SQL包括以下4个部分:DDL:定义和管理数据库及其对象,例如create、alter和drop等。
DML:实现对数据库表各对象的操作,例如insert、update等。
DCL:数据控制语⾔,实现对数据库进⾏安全管理和权限管理等控制,例如grant、revoke、deny等。
附加的语⾔元素。
T-SQL的附加语⾔元素,包括变量、运算符、函数、注释和流程控制语句等。
在T-SQL中,命令和语句的书写是不区分⼤⼩写的。
⼆、T-SQL编程基础1、标识符①T-SQL规则标识符由字母、数字、下划线、@、#、$符号组成,其中字母可以是a-z或A-Z,也可以是来⾃其他语⾔的字母字符。
⾸字符不能为数字和$。
标识符不允许是T-SQL保留字。
标识符内不允许有空格和特殊字符长度⼩于128②界定标识符 对于不符合标识符规则的标识符,则要使⽤界定符⽅括号([])或双引号(“”)将标识符括起来。
如标识符[My Table]、“select”内分别使⽤了空格和保留字select。
2、数据类型在SQL Server中提供了多种系统数据类型。
除了系统数据类型外,还可以⾃定义数据类型。
①系统数据类型(1)精确数字数据类型int 存储整型数值,存储数值范围为-231~231-1。
bigint bigint⽐int能存储更⼤的数值,存储数值范围为-263~263-1。
smallint 数据类型的范围数值⽐int更⼩,在-215~215-1之间。
定义这种数据类型的时候⼀定要⼩⼼,要确定存储的数据不会超过smallint所能存储的数值范围。
tinyint 数据类型的范围数值⽐smallint更⼩,存储从 0 到 255 的整型数据。
decimal/numeric decimal[(p,s)]和numeric[(p,s)]这两种数据类型⽤于存储相同精度和范围的数据(⼩数点的左、右两边存储的数值位数相同),所能存储的数值范围为-1038+1~1038-1。
SQL Server数据库技术及应用教程(SQL Server 2016)第5章 数据库的创建与管理

• SQL Server 数据库具有以下三种类型的文件。
• (1)主数据文件
• 主数据文件是数据库的起点,指向数据库中的 其他文件。每个数据库都有一个主数据文件。 主数据文件的推荐文件扩展名是.mdf。例如, 某销售管理系统的主数据文件名为 Sales_data.mdf。
• (2)次要数据文件
在“常规”页中可以查看数据库的基本信息,包括:数 据库上次备份日期、名称、状态等。
在“文件”页和“文件组”页中可以修改数据库的所有 者。“文件”页如图5-14所示。 在“选项”页中,可以设置数据库的故障恢复模式和排 序规则。
“选项”页中的其他属性和“权限”页、“扩展属性”页、
“镜像”页等属性是数据库的高级属性,通常保持默认值 即可。如果要进行设置或定义可参考SQL Server 2016联机帮 助。
/*更改文件属性*/
|MODIFY NAME=新数据库名称
/*更改数据库名称*/
|MODIFY FILEGROUP 文件组名称{文件组属性|NAME=新文件组名称}
/*更改文件组属性,包括更改文件组名称*/
• ③ 显示“新建数据库”窗口,窗口左上方的“选择页” 框中有三个选项,分别对应“常规”页、“选项”页和 “文件组”页,这里只设置“常规”页,其他页使用系 统默认设置。
• 在“选择页”框中选择“常规”页,在窗口右侧将显示 相应的设置内容,在“数据库名称”框中填写要创建的 数据库名称“StudentMark”,也可以在“所有者”框 中指定数据库的所有者,如sa。这里使用默认值,其他 属性也按默认值设置,如图5-3所示。
• ② 单击“执行”按钮,然后在对象资源管理器中刷新, 展开“数据库”结点就能看到刚创建的Teacher数据库, 如图5-12所示。
数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)

数据库T-SQL语⾔操作(T-SQL语句、数据库、表、视图、索引)T-SQL语⾔按⽤途分四部分1. 数据定义语⾔(CREATE,DROP,ALTER)2. 数据操作语⾔(INSERT,DELETE,UPDATE)3. 数据查询语⾔(SELECT)4. 数据控制语⾔(GRANT,REVOKE,DENY)数据类型1. 系统数据类型2. ⽤户⾃定义数据类型(建⽴⽅式:a.图形化⽅式 b.命令⽅式)1use TEST2EXEC sp_addtype sno,'varchar(10)','nonull'3EXEC sp_droptype sno变量命名规则:字母、下划线、@或#开头,但不能全为下划线、@或#不能为“关键字”,不能嵌⼊空格及其他特殊字符,如需使⽤则需要双引号或⽅括号括起1.局部变量:由⽤户声明,必须以@开头,只在定义该变量的过程中有效,局部变量必须先声明后使⽤注意:第⼀次声明变量时,其值设置为NULL。
局部变量不能使⽤“变量=变量值”的格式进⾏初始化,必须使⽤SELECT或SET语句来设置其初始值。
如果声明字符型的局部变量,⼀定要在变量类型中指明其最⼤长度,否则系统默认其长度为1。
若要声明多个局部变量,请在定义的第⼀个局部变量后使⽤⼀个逗号,然后指定下⼀个局部变量名称和数据类型。
1USE student2DECLARE@var1char(10),@var2int3SET@var1='number'4select@var2=cgrade5from sc6where sno='201810010'78print@var1+"s"2.全局变量:由系统定义,供SQL server系统内部使⽤的变量,任何程序任何时间都可以调⽤。
通常以“@@”开头。
T-SQL语句1.注释语句(1) --(2) /*……*/2.批处理--GO3.控制流程语句(1) begin...end语句(相当于C语⾔中的{} )(2) if...else语句(可嵌套)(3)case语句(多条件选择语句)(4)print语句(屏幕输出语句)(5)while语句(有条件的循环语句)(6)goto语句(⽆条件跳转语句)(7)break语句(8)continue语句4.常⽤函数(系统函数、⽤户⾃定义函数)⼀些系统函数:(1)字符串函数(2)数学函数(3)⽇期和时间函数(4)聚合函数注意:⽤户⾃定义函数:1.分类:标量值函数:返回单个值内联表值函数:返回可更新的表多语句表值函数:返回不可更新的表2.标量值函数命令⽅式创建1CREATE FUNCTION f2(@a real,@b real) 2RETURNS real3AS4BEGIN5IF@a>=@b6RETURN@a7RETURN@b8END910PRINT'最⼤值为'11PRINT dbo.f2(77,56)1CREATE FUNCTION f3(@n real)2RETURNS real3AS4BEGIN5DECLARE@i real,@sum real6SET@i=07SET@sum=08WHILE@i<@n9BEGIN10SET@i=@i+111SET@sum=@sum+@i12END13RETURN@sum14END1516PRINT dbo.f3(10)3.⾃定义函数的调⽤(1)标量值函数可以使⽤select、print、exec调⽤(2)表值函数只能⽤select调⽤4.删除⽅式drop function 函数名数据库数据库概述1.数据库常⽤对象:表、数据类型、视图、索引、存储过程、触发器系统数据库:master、model、tempdb、msdb2.数据库存储结构(数据库⽂件、数据库⽂件组):数据库⽂件:存放数据库数据和数据库对象的⽂件。
常用的SQL语句

Company
Area
汉能A
北京
汉能B
禹城
汉能C 汉能D
四川 江苏
执行结果
Update
Update 语句用于修改表中的数据。
语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 例如: 将表A中的Area列的是川更新为四川
Id Company
Area
1 汉能A
北京
2 汉能B 3 汉能C
显示一条记录。
Id Company
Area Production
ቤተ መጻሕፍቲ ባይዱIntFlag
1 汉能A
北京 200W
1
表:A
2 汉能C
禹城 250W
1
3 汉能C
禹城 300W
0
SELECT * FROM A WHERE (company=‘汉能A’ OR company=‘汉能C') AND IntFlag=‘1'
✓CREATE INDEX 语法 在表上创建一个简单的索引。允许使用重复的值: CREATE INDEX 索引名称 ON 表名(列名)
例如对表A中的列A_a创建可重复的索引 create index index_name on A (A_a)
✓ CREATE UNIQUE INDEX 语法 在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同 的索引值。索引名称 ON CREATE UNIQUE INDEX 表名(列名,列名)
用于创建数据库中的表
CREATE TABLE 创建表语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... )
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 查看数据库的版本
select @@version
2. 查看数据库所在机器操作系统参数
exec master..xp_msver
3. 查看数据库启动的参数
sp_configure
4. 查看数据库启动时间
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看数据库服务器名和实例名
print ''Server Name...............: '' + convert(varchar(30),@@SERVERNAME)
print ''Instance..................: '' + convert(varchar(30),@@SERVICENAME)
5. 查看所有数据库名称及大小
sp_helpdb
重命名数据库用的SQL
sp_renamedb ''old_dbname'', ''new_dbname''
6. 查看所有数据库用户登录信息
sp_helplogins
查看所有数据库用户所属的角色信息
sp_helpsrvrolemember
修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程
更改某个数据对象的用户属主
sp_changeobjectowner [@objectname =] ''object'', [@newowner =] ''owner''
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本
7. 查看链接服务器
sp_helplinkedsrvlogin
查看远端数据库用户登录信息
sp_helpremotelogin
8.查看某数据库下某个数据对象的大小
sp_spaceused @objname
还可以用sp_toptables过程看最大的N(默认为50)个表
查看某数据库下某个数据对象的索引信息
sp_helpindex @objname
还可以用SP_NChelpindex过程查看更详细的索引情况
SP_NChelpindex @objname
clustered索引是把记录按物理顺序排列的,索引占的空间比较少。
对键值DML操作十分频繁的表我建议用非clustered索引和约束,fillfactor参数都用默认值。
查看某数据库下某个数据对象的的约束信息
sp_helpconstraint @objname
9.查看数据库里所有的存储过程和函数
use @database_name
sp_stored_procedures
查看存储过程和函数的源代码
sp_helptext ''@procedure_name''
查看包含某个字符串@str的数据对象名称
select distinct object_name(id) from syscomments where text like ''%@str%''
创建加密的存储过程或函数在AS前面加WITH ENCRYPTION参数
解密加密过的存储过程和函数可以用sp_decrypt过程
10.查看数据库里用户和进程的信息
sp_who
查看SQL Server数据库里的活动用户和进程的信息
sp_who ''active''
查看SQL Server数据库里的锁的情况
sp_lock
进程号1--50是SQL Server系统内部用的,进程号大于50的才是用户的连接进程.
spid是进程编号,dbid是数据库编号,objid是数据对象编号
查看进程正在执行的SQL语句
dbcc inputbuffer ()
推荐大家用经过改进后的sp_who3过程可以直接看到进程运行的SQL语句
sp_who3
检查死锁用sp_who_lock过程
sp_who_lock
11.收缩数据库日志文件的方法
收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
12.分析SQL Server SQL 语句的方法:
set statistics time {on | off}
set statistics io {on | off}
图形方式显示查询执行计划
在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形
文本方式显示查询执行计划
set showplan_all {on | off}
set showplan_text { on | off }
set statistics profile { on | off }
13.出现不一致错误时,NT事件查看器里出3624号错误,修复数据库的方法
先注释掉应用程序里引用的出现不一致性错误的表,然后在备份或其它机器上先恢复然后做修复操作alter database [@error_database_name] set single_user
修复出现不一致错误的表
dbcc checktable(''@error_table_name'',repair_allow_data_loss)
或者可惜选择修复出现不一致错误的小型数据库名
dbcc checkdb(''@error_database_name'',repair_allow_data_loss)
alter database [@error_database_name] set multi_user
CHECKDB 有3个参数:
repair_allow_data_loss 包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,
以及删除已损坏的文本对象,这些修复可能会导致一些数据丢失。
修复操作可以在用户事务下完成以允许用户回滚所做的更改。
如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。
如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。
修复完成后,请备份数据库。
repair_fast 进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。
这些修复可以很快完成,并且不会有丢失数据的危险。
repair_rebuild 执行由repair_fast 完成的所有修复,包括需要较长时间的修复(如重建索引)。
执行这些修复时不会有丢失数据的危险。