SQL Server 笔记
基础语法:
1 .前一天 :
dateadd(day,-1,convert(date,'2019-10-29'))
2 . convert进行日期转换:
SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
3.- parsename:的语法就是 截取点 '.' 后面的字符串,1为倒数第一,2为倒数第二.
select parsename('1.5.3',1) //结果 :3
Select parsename('A,B,C.C,E.F',2) // 结果 :C,E
4 .replicate (复制): 可以按照指定的整数次数,重复生成一个字符串形式的表达式,结果为字符串。
Select Replicate('abc',-1); 结果NULL
Select Replicate('abc',0); 结果
Select Replicate('abc',2) 结果 abcabc
5 . 在 SQL Server 表的主键有自增Id ,和 GUID, newid()的作用和java中的uuid功能类似,可以起到唯一表示的标识,插入的时候当做普通的列数据插入即可
select NEWID()
5 . rand(): 随机产生0-1之间数
select rand()
select floor(rand()*100)/100
6 .len:
select len(NEWID())
7 .SET XACT_ABORT ON : 运行时错误,整个事务将终止并回滚
8 . CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
说明 :
expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
expressionToSearch :用于被查找的字符串。
start_location:开始查找的位置,为空时默认从第一位开始查找。
例如 :
select charindex('test','this Test is Test') // 结果6 索引从1开始
9 . left() : LEFT (<character_expression>, <integer_expression>) ,返回character_expression 左起 integer_expression 个字符。
例如 :
select left('abc',2) //结果ab
10 .right()
例如 :
select right('abc',2)
11. for xml path('')
SELECT TOP 2 name+',' FROM sys.sysobjects FOR XML PATH('')
参考官网 : https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms189826(v=sql.90)
1. 如果未在数据定义或变量声明语句中指定 n,则默认长度为 1。如果在使用 CAST 和 CONVERT 函数时未指定 n,则默认长度为 30。
2. 在 SQL Server 表的主键有自增Id ,和 GUID。
1. 自增Id
优点:索引空间小,索引连续。在大量数据插入的时候性能有特别大的优势。
缺点:可移植性差,在数据迁移的时候。
2. GUID
优点:数据迁移的时候很容易。
缺点:索引占用空间大,因为GUID的随机性,在插入数据的时候会导致索引上的页争用。
SQL SERVER 2005新加了 NEWSEQUENTIALID(),这是个内置函数,不能用与 SELECT
create table #t
(
id uniqueidentifier not null default newsequentialid()
,name varchar(100)
)
go
--插入表100条数据,并且要指定列名
insert into #t(name) values('a')
go 100
select * from #t