SQL SERVER高级知识积累】的更多相关文章

什么叫做高可用服务器? 高可用服务器简单来理解就是不宕机的服务器 什么叫走服务器的自动化灾备? 自动灾备的意思就是,让从服务器自动变成主服务器 sql server的聚合是什么? 事务会引起性能下降,和锁的机制,需要补偿机制 关闭set nocount on for sql server 关闭计数器提高存储过程的速度 SQL SERVER内有一个自动的锁管理器来自动管理锁 SQL SERVER 2016可以用C#对存储过程进行单点调试…
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database 数据库名称 查询:select name from master..sysdatabases 修改:alter database 数据库名称(在 sql server 中修改与数据库关联的文件和文件组.在数据库中添加或删除文件和文件组.更改数据库或其文件和文件组的属性) (3).管理表 选择数据库:use 数…
Sql Server 基础知识: http://blog.csdn.net/t6786780/article/details/4525652 Sql Server 语句大全: http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html…
sql server锁(lock)知识及锁应用 提示:这里所摘抄的关于锁的知识有的是不同sql server版本的,对应于特定版本时会有问题. 一 关于锁的基础知识 (一). 为什么要引入锁 当多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: ◆丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 ◆脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数…
集群CLUSTER种类介绍 基于iSCSI的SQL Server 2012群集测试(一)--SQL群集安装 SQL Server群集如何在线检测 群集中的MS DTC分布式事务协调器 一.SQL Server群集基本架构 无论群集还是非群集SQL Server服务器,都是需要有以下基本组成部分才能提供数据服务: SQL Server实例,也可以认为是SQL Server二进制可执行文件,它组成数据库管理系统运行的各个服务,管理数据库数据和客户端的需求,执行操作等.不管是群集还是非群集这些实例都是…
1.SQL Server表名为什么要加方括号? 这个不是必须要加,但表名或字段名如果引用了sqlserver中的关键字,数据库会不识别这到底是关键字还是表名(或字段名)时就必须要加. 比如,一个表名叫user,user在sqlserver中属于关键字,那么查询的时候必须要这样: select * from [user] 否则就会报错. 同理,如果user属于字段名,也同样要加,如 select * from 表名 where [user]=1 2.SQL中的go,begin,end go 向 S…
论坛里经常有人问“我的数据库很慢,有什么办法提高速度呢?”.这是个古老的话题,又是常见的问题,也是DBA们最想解决的问题之一.我想就SQLServer调优大家一起论一论,如果可以的话尽量发表自己观点,如果有转帖就只要地址就可以了.调优可以从多个方法可面调优,一般可以调优的多个部分.下面我先就存储方面起个头.   在建立一个新的实例后,mssql会先生成master,model,msdb,tempdb 四个系统数据库,就master,model,msdb这三个系统数据库建议最后与用户数据库分开存储…
1.子查询概念 (1)就是在查询的where子句中的判断依据是另一个查询的结果,如此就构成了一个外部的查询和一个内部的查询,这个内部的查询就是自查询. (2)自查询的分类 1)独立子查询 ->独立单值(标量)子查询  (=) Select testID,stuID,testBase,testBeyond,testPro from Score where stuID=( select stuID from Student where stuName=’Kencery’ ) ->独立多值子查询  …
1.Case函数的用法  (1)使用类似:switch-case与if-else if. (2)语法: case [字段] when 表达式 then 显示数据 when 表达式 then 显示数据 else 显示数据 end (3)百分制转换素质教育 1)如图:我们要将显示的数据转换成ABCDE,规则是90分以上显示A,80分以上显示B,以此类推.  2)执行的SQL语句是: Select ID,TestBase, Case then ‘A’ then ‘B’ then ‘C’ then ‘D…
概念篇 索引概念(index concept) 一种表或视图中相关的B-tree的数据结构.索引键列由一列或多列组成.可拥有包含性列(sql2005).用于提升Sql Server 查找相关数据行效率. 聚集索引(Clustered index) 表或索引视图数据行按照聚集索引键排序.每个表只能有一个聚集索引(聚集表中数据只能按一种方式组织).表中有聚集索引则表称为聚集索引表,无聚集索引则称为堆表. 非聚集索引(Nonclustered index) 独立于数据行之外的一种数据结构.用于快速检索…
15. 存储过程可以调用自己么, 或者说可能有递归的存储过程么? SP nesting最多可以到多少层? 答: 可以的. 因为Transact-SQL 支持递归, 你可以编写可以调用自己的存储过程. 敌对可以被定义为一种解决问题的方法, 其中问题的解决是通过不断的对问题的子集调用自己而达成的. 当一个存储过程调用另一个存储过程或执行CLR的routine, type, 或aggregate时, 就会形成嵌套(nest). 你最多可以嵌套存储过程或托管代码的层级为32层.   16. 什么是log…
8. 一般什么时候使用update_statistics命令? 答:  这个命令基本上是在很多数据被处理过了之后才使用的. 如果大量的删除, 修改, 或这大量的数据插入已经发生了, 那么index就需要更新来让这些修改生效. UPDATE_STATISTICS命令会为table们更新index.   9. Having子句和Where子句有什么区别? 答: 它们都为group或aggregate指定了搜索条件. 但是区别是Having只能用在select命令中. Having典型地会被用在Gro…
1. SQL Server运行在什么端口上? 可以被修改么? 答: 1433端口. 可以修改的, 在SQL Server Configuration Manager的SQL Server Network Configuration的TCP/IP中. Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager) http://msdn.microsoft.com/en-us/librar…
1.在向服务器发送请求时发生传输级错误 在向服务器发送请求时发生传输级错误. (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接.) ---> System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误. 开始一直以为是网络连接的问题,最后发现是数据库连接字符串的问题. 之前的数据库连接字符串为: "server= server ;database=database ;uid= uid  ;pwd…
1. 公共表达式CTE 公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE.递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式. 如下面的例子,可以递归把组织名放到一起. 其实CTE的作用就相当于子查询 2.窗口函数.分区函数 窗口函数和聚集函数一样都是对定义的行集(组)进行聚集,但是不像聚集一样只返回一个值,窗口函数可以为每个组返回多个值,执行聚集的行组是窗口(因此称为‘窗口函数’).窗口函数是在聚集函数的基础上加了一…
数据库设计简单地来讲,也就是设计表格的过程. 表格存储的数据是可以理解为一个二维表,由行和列组成. 原则上来讲,一个数据库只需要一个字段,一个数据类型就可以解决所有的问题,但是这样做并不明智,所以一般来讲,一个表格都是由多个字段来组成 ,每个字段也可以由不同的数据类型来组成. 常见的数据类型如下: 一.整数 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 8 个字节. i…
1.  char.varchar.nvarchar 区别 char 定长字符数据长度8000字符,小于8000字符时以空格填充. varchar 变长字符数据最大长度8000,小于8000字符时不会以空格填充. nvarchar 不定长unicode字符数据,最大字符4000. 当内容中有中文时应该用 nvarchar 或 nchar 因为unicode字符集兼容中文,当系统语言区域不是中文时,如果将中文存放在varchar中会出现乱码. 2. 什么时候用 NULL NULL值的定义是不确定的值…
简介 关于数据库,我们经常会听说"增查删改"之类的词语,听起来很简单,但是如果想要准确的获取到需要的数据的话,还是要花点功夫的.下面由我来和大家谈谈高级查询的用法以及和普通查询的区别 高级查询 子查询 语法: select   ...列名...   from   表1   where   列1   (逻辑运算符,大于'>',等于'='...)   ( select   ...列名...   from   表2   where   列2   (逻辑运算符,大于'>',等于'=…
二, 高级 关键字 -- 使用介绍 8,Top 的使用(Top子句返回记录的数目) select top number|percent column_name(s) from table_name 或 * FROM Persons 例子: * from YK_TYPK -- 只查前5列数据 percent * from YK_TYPK -- 1%是数据 9,link 的使用  (link全文搜索) select * from Article where ArticleContent link '…
----------------------------------------------------------------------Select-------------------------------------------------------------------------------------------------------------------- 1.查询表中所有的数据 -----------select * from 表名 -----------select…
五.表连接 当数据表中存在许多重复的冗余信息时,就要考虑将这些信息建在另一张新表中,在新表中为原表设置好外键,在进行数据查询的时候,就要使用到连接了,表连接就好像两根线,线的两端分别连接两张表的不同字段上,将两个字段进行关联.表连接分为内连接(inner join).交叉连接.自连接和外连接等. 1.内连接,语法  inner join table_name on condition ,table_name被关联的表名,condition关联条件. 例如:有两张表,T_Customer保存着客户…
1. 表表达式 (1) 将表作为一个源或将查询的一个结果集作为一个源,对源做处理,然后得到一个新的数据源,对其进行查询.  (2)表表达式放在from子句中 (3)派生表,将表的查询得到的结果集作为一个新的数据源,需要注意一下几点: 1)派生表必须有括号括起. 2)派生表需要取别名 3)派生表中的所有字段也要有别名(必须要给字段起名). 4)能够作为派生表的只有结果集(游标不行).  (4)写一段SQL语句,大家可以体会一下,这里就不提供数据库了. select * from ( select…
每个人都很忙,但是花10分钟复习下,总结下基础东西还是很有益处的. 背景: 总结一句,使用简便,还能递归,是的SQL更简洁,相对比一大堆的关联语句,而且关联一大堆还不一定实现特定功能.而且共用部分可以提取出来,提高复用性,这是有代码洁癖的人没法接受的,所以总会重构代码,..扯偏了 创建: (图片来自百度) 自定义函数分为以下几种: 1.标量值函数: 案例脚本: CREATE FUNCTION Func_CreateGroup(@Id int) RETURNS varchar(4) AS BEGI…
以前写了一些关于sql的文章,包括一些转载的,这里做下整理,方便需要时候使用 一.基础运用 SQL 数据结构操作语句 SQL 时间处理 SQL 常见函数使用 CASE WHEN THEN 小结 二.优化 三.排错 查看SqlServer的内存使用情况 四.数据建模工具 PowerDesigner使用总结(转) PowerDesigner 16安装注意事项 PowerDesigner V16.5 安装文件 及 破解文件 PowerDesigner的Table视图同时显示Code和Name的方法[转…
1.case-end (详细的值) case后面有值,相当于c#中的switch case 注意:case后必须有条件,而且when后面必须是值不能为条件. -----------------case--end---语法结构--------------------- select name , --注意逗号 case level --case后跟条件 when 1 then '骨灰' when 2 then '大虾' when 3 then'菜鸟' end as'头衔' from [user]…
1:往现有的表中增加一个字段 IF NOT EXISTS ( SELECT 1 FROM sys.sysobjects so WITH ( NOLOCK ) INNER JOIN sys.syscolumns sc WITH ( NOLOCK ) ON so.id = sc.id WHERE so.name = 'EgPurchase_OrderPlan' AND sc.name = 'IsNewSystem' ) BEGIN ALTER TABLE dbo.EgPurchase_OrderPl…
--in和not in子查询 --采用in子查询获得参加考试的在读学生名单select StudentId,StudentName from Student where StudentId in(select StudentId from Resultwhere subjectId=(   --获得参加java考试最近一次考试的学生学号   select subjectId from Subject   where SubjectName='java')and ExamDate=(    --获…
创建聚集索引 a索引键最好唯一(如果不唯一会隐形建立uniquier列(4字节)确保唯一,也就是这列都会复制到所有非聚集索引中) b聚集索引列所占空间应尽量小(否则也会使非聚集索引的空间变大) c聚集索引应固定,不能随便改动(否则会引起分页,碎片,非聚集索引被迫修改等一些列问题) d聚集索引键一般与主键(primary key)分开(基于方便业务调整,如业务逻辑存储数据与clustered index key一致且不会改变,则主键可为聚集索引) 应用实例: 选择聚集键时,尽量避免因插入引起的分页…
索引的作用毋庸置疑,但他是如何组织,并实现提高语句访问效率的呢?本篇文章为大家做个详细的介绍. 聚集索引架构 B-tree 如图1-1 a.B-tree的结构,叶子节点为数据.数据按照聚集索引键有序排列. b.每个表只能有一个聚集索引. c.创建时如果未声明Unique,索引字段有重复值会内部添加唯一标识符(4字节)额外维护…
查询view 的列和列数据类型 SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'view name' 树 1. 所有的子树 WITH SubTree AS ( SELECT tt.ID as SubTreeRoot, tt.ID FROM TreeTable tt UNION ALL SELECT st.SubTreeRoot, tt.ID FROM TreeTable tt IN…