SQL Server 管理常用的SQL和T-SQL

合集下载

sqlserver编程语言

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语句修改和删除数据库

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 {文件组名}]:添加数据文件或日志文件,文件信息包括大小/自动增长/逻辑文件名/物理文件名。

T-SQL简介及基本语法

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。

数据类型详细说明

数据类型详细说明

数据类型详细说明T-SQL 数据类型在SQL Server 中,每个列、局部变量、表达式和参数都具有一个相关的数据类型。

特别是列,数据类型是列(字段)最重要的属性之一,代表了数据的格式。

数据类型的出现是为了规范存储和使用数据。

SQL Server 的数据类型可以分为系统数据类型和用户自定义数据类型两种。

(1)系统数据类型不同的数据库管理系统支持的数据类型略有差别,SQL Server 2021 提供的数据类型分为数字类型、货币类型、日期和时间类型、字符串数据类型、CLR数据类型、空间数据类型和其他数据类型。

我们只介绍几种常用的数据类型。

A. 数字数据类型数字数据包括正数、小数、分数和整数。

在SQL Server 2021中,数字数据类型分为整型数字类型和非整型数字类型。

非整型数子类型又分为精确数字类型和近似数字类型。

数字数据类型说明如表4-1所示。

数据类型整型bigint 数字 int smallint tinyint 描述长度为8个字节的大整型数字长度为4个字节的标准整型数字长度为2个字节的小整型数字长度为1个字节的微整型数字非整精decimal[(p[,s])] 型数确字数字 p为精度,指定小数点左边和右边可以存储的十进制数字的最大个数。

精度必须是从1到最大精度之间的值。

最大精度为38。

p的默认值为18。

s为小数位数,指定小数点右边可以存储的十进制数字的最大个数。

s的默认值是0。

p和s必须遵循规则:0≤s≤p。

例如:decimal(6,2) 表示小数点后有2位数字,小数点前4位数字的定点小数。

numeric [(p[,s])] 同 decimal 近float[(n)] 似数字 real 其中n为用于存储float数值尾数的位数(以科学计数法表示),如果指定了n,则它必须是介于1和3之间的某个值。

n的默认值为53。

不过,SQL Server 并不是直接将n 用于确定float 的存储长度,而是将n 进行如下对应:如果1 ≤n ≤24 ,则将n 视为24,存储大小为4个字节。

掌握用SSMS和T-SQL创建表

掌握用SSMS和T-SQL创建表
T-SQL(Transact-SQL)
是Microsoft SQL Server的专用编程语言,用于执行复杂的数据库操作和查询。
创建表的重要性
组织数据
通过创建表,可以将数据组织成结构化的形 式,便于管理和查询。
保证数据完整性
通过定义主键、外键等约束,可以保证数据 的完整性和准确性。
提高查询效率
合理设计的表结构可以提高查询效率,减少 数据冗余。
在“新建数据库”对话框中,为 新数据库命名,设置文件组、数 据文件和日志文件的属性,然后 点击“确定”。
在“表设计”窗口中,添加所需 的列名和数据类型,设置约束条 件(如主键、外键等),然后点 击“保存”或“关闭”。
01
在SSMS对象资源管理器中,右 键单击“数据库”节点,选择“ 新建数据库”。
02
首先需要确定要创建的表的名称 以及表中包含的字段名称。
03
04
设置约束
根据需要为字段设置约束条件, 如主键、唯一性、非空等。
使用CREATE TABLE语句创建表
01
使用CREATE TABLE语句创建表,并指定表名和字段 名。
02
指定每个字段的数据类型和约束条件。
03
根据需要添加索引。
定义表字段和数据类型
掌握用SSMS和T-SQL创建 表
目录
• 介绍 • 使用SSMS创建表 • 使用T-SQL创建表 • 创建表时的注意事项 • 总结
01
介绍
SSMS和T-SQL简介
SSMS(SQL Server Management Studio)
是Microsoft提供的一个强大的数据库管理工具,用于管理和配置SQL Server数据库。
03

通用的SQL语句

通用的SQL语句

通用的SQL语句常用SQL语句一、序言1、SQL(Structured Query Language):结构化查询语言,是一种查询和执行语言,而非发展成熟的编程语言。

通用,但各种数据库对其支持不同,一般90%~100%。

2、T-SQL(Tansact- Structured Query Language):SQL Server(SyBase)对SQL 进行了扩展(Oracle对其的扩展叫SQL*plus),增加了程序流控制结构(如IF~ELSE~等),局部变量(@variable_name)和允许DBA创建基于代码的对象(包括存储过程和触发器等功能。

)各种数据库有所不同。

3、T-SQL语句至少包括一个关键字(指示某个操作的词)4、SQL语句的执行过程:SQL语句提交给服务器,服务器对SQL 语句进行整体语法分析、优化和编译,然后逐条语句执行。

语法分析时,先检索每个命令和关键字的语法,再验证表和字段名的有效性。

二、语句及事例1、基本数据操纵SQL语句(1)查询数据:SELECT ID,Name FROM WS_User(2)插入数据:INSERT INTO WS_User (ID,Name) V ALUES(1, “JACK”)(3)更新数据:UPDATE WS_User SET Name = “T om”(4)删除数据:DELETE WS_User WHERE Name = “T om”(5)清空表格:TRUNCATE TABLE WS_User注:TRUNCATE TABLE tablename 等同DELETE tablename 但要快。

2、基本语句的扩展1)查询数据(SELECT)SELECT [ ALL | DISTINCT ][ { TOP integer | TOP integer PERCENT } ]< select_list >[ INTO new_table ][ FROM { < table_source > } [ ,...n ] ][ WHERE < search_condition > ][ GROUP BY [ ALL ] group_by_expression [ ,...n ][ HA VING < search_condition > ][ ORDER BY order_expression [ ASC | DESC ] ]例子:1、SELET * FROM WS_UserSELECT UserName,unit FROM WS_User2、SELECT UserName unit FROM WS_User //将unit作为列UserName的列名,相当于SELECT UserName AS unit FROM WS_User3、SELET [ALL]DISTINCT UserName,unit FROM WS_User //ALL是默认的,允许显示重复行,DISTINCT的作用范围是整个选择列表,而非单列。

sql server常用语句

sql server常用语句

sql server常用语句1. select 语句:select 语句用于从数据库表中检索数据。

3. update 语句:update 语句用于更新现有记录。

8. alter table 语句:alter table 语句用于更改表结构。

10. primary key 语句:primary key 语句用于指定表中独特的列,用于标识表中的每一行。

12. join 语句:join 语句用于在不同表之间建立关系,从而把多个表中的记录组合在一起。

13. index 语句:index 语句用于添加索引,从而提高检索性能。

14. view 语句:view 语句用于创建虚拟表,只存储查询生成的结果。

15. stored procedure 语句:stored procedure 语句用于定义执行特定任务的已存储的语句。

16. trigger 语句:trigger 语句用于在指定的数据库事件发生时执行特定的语句。

17. transaction 语句:transaction 语句用于控制数据库操作的原子性,从而可以确保数据的一致性。

18. grant 语句:grant 语句用于授予用户对数据库对象的访问权限。

20. group by 语句:group by 语句用于对检索结果进行分组。

21. having 语句:having 语句用于对筛选后的结果进行过滤。

22. union 语句:union 语句用于合并多个查询的结果。

23. intersect 语句:intersect 语句用于获取两个查询的交集。

25. backup 语句:backup 语句用于备份数据库中的数据。

sql server语法

sql server语法

sql server语法SQL Server语法是一种基于SQL的语言,可以用来创建,修改或删除数据库中的表,存储过程,视图和函数。

它也可以用来提取,更新,插入和删除表中的数据。

SQL Server语法有两大类:DDL(数据定义语言)和DML(数据操作语言)。

DDL(数据定义语言)DDL(Data Definition Language)是用来定义和操作数据库对象的语言。

它提供了一系列的命令,用于创建,修改和删除数据库中的表,视图,存储过程和函数。

它也可以用来添加,修改和删除表中的列和约束。

下面列出了常用的DDL语句:CREATE:用于创建表、视图、存储过程、函数等对象。

ALTER:用于更改表结构,添加或删除列,修改约束等。

DROP:用于删除表、视图、存储过程、函数等对象。

TRUNCATE TABLE:用于清空表中的所有数据。

COMMENT:用于添加或删除表上的注释。

RENAME:用于重命名表、视图、存储过程、函数等对象。

DML(数据操作语言)DML(Data Manipulation Language)是用于检索,更新和删除表中的数据的语言。

它可以用来检索特定的行,更新或删除特定列或行,插入新行,以及其他相关操作。

下面列出了常用的DML语句:SELECT:用于检索表中的数据。

UPDATE:用于更新表中的数据。

INSERT:用于在表中插入新行。

DELETE:用于从表中删除行。

MERGE:用于将数据从多个源合并到一个表中。

CALL:用于调用存储过程。

EXECUTE:用于执行存储过程。

SQL Server语法的另一个重要部分是T-SQL (Transact-SQL),它是一种Microsoft特定的SQL扩展,可以用来创建,修改,查询和管理SQL Server数据库。

T-SQL包含一些常用的函数,如内置函数,字符串函数,日期函数和数学函数。

另外,它还提供了一些特定的语句,用于处理SQL Server数据库中的数据,如IF语句,WHILE语句,TRY / CATCH语句等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL Server 管理常用的SQL和T-SQL
1. 查看数据库的版本
select @@version
常见的几种SQL SERVER打补丁后的版本号:
8.00.194 Microsoft SQL Server 2000
8.00.384 Microsoft SQL Server 2000 SP1
8.00.532 Microsoft SQL Server 2000 SP2
8.00.760 Microsoft SQL Server 2000 SP3
8.00.818 Microsoft SQL Server 2000 SP3 w/ Cumulative Patch MS03-031
8.00.2039 Microsoft SQL Server 2000 SP4
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脚本
查看某数据库下,对象级用户权限
sp_helprotect
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.查看和收缩数据库日志文件的方法
查看所有数据库日志文件大小
dbcc sqlperf(logspace)
如果某些日志文件较大,收缩简单恢复模式数据库日志,收缩后@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 完成的所有修复,包括需要较长时间的修复(如重建索引)。

执行这些修复时不会有丢失数据的危险。

相关文档
最新文档