代码
/*
-- 2010-02-26
-- 布朗
-- QQ:156298979
*/
-- with ties可以附加与排序字段相同值的多个行
select top 3 with ties * from hrEmployee order by shortName asc
set rowcount 3 -- 设置全局变量,使每次返回的行数都为3行
select * from hrEmployee order by shortName asc
set rowcount 0 -- 设置全局变量,使每次返回的行数为所有行
-- select ...where 符合代替if语句
declare @m int , @n int , @i int
set @m = 4
set @n = 1
select @i = ceiling ( @m / @n ) where @m > @n
select @i
-- 服务器环境信息
select serverproperty( ' Edition ' )
-- 字符串函数
-- 将一个字符串指定位置开始指定长度的内容替换成新串的值
select stuff ( ' abcedefg ' , 3 , 2 , ' 1234 ' )
-- 搜索子串在父串的位置
select CharIndex ( ' c ' , ' abcdefg ' , 1 )
select PatIndex ( ' %[cd]% ' , ' abcdefg ' )
-- 发音相似的词或名称
select soundex ( ' lfc ' )
-- 返回两个字符串的差异程度
select Difference ( ' abcd ' , ' abce ' )
inner join -- 内连接
left outer join -- 左外连接
right outer join -- 右外连接
full outer join -- 全外连接
cross outer join -- 交叉连接 A表4条记录,B表5条记录,交叉后生成20条记录(笛卡尔乘积)
-- 两个表合并
select * from hrEmployeeA
union all
select * from hrEmployeeB
-- 两个表相交
select distinct (UserName)
from
(
select distinct (UserName) from hrEmployeeA
union all
select distinct (UserName) from hrEmployeeB
) Emp
group by UserName
-- 两个表关系除
-- 两个表关系差(集合差)
-- 全文索引
exec sp_fulltext_database ' enable ' -- 启用全文检索 'disable'禁用
create fulltext catalog nofc2 as default -- 为数据库创建全文目录
create fulltext index on hrEmployee( [ Name ] , [ ShortName ] , [ Description ] ) -- 创建针对数据库中某个表的一列或多列的全文索引。每个表只允许有一个全文索引
Key Index PK_hrEmployee
-- 全文检索
select * from hrEmployee where Contains (hrEmployee. * , ' 龙 ' ) and Contains (hrEmployee. * , ' 付 ' ) -- (where Contains类似 where in())
-- 全文检索
select * from ContainsTable (hrEmployee, * , ' 龙 ' )
-- 临近的词,屈折变体,
-- 全文检索-模糊查询
select * from hrEmployee where FreeText ( * , ' 成 ' )
select * from FreeTextTable (hrEmployee, * , ' 成 ' )
drop fulltext index on hrEmployee
drop fulltext catalog nofc2
exec sp_fulltext_database ' disable '
-- 视图加密
create view Vabc as
(
select * from hrEmployee
)
with Encryption
-- WITH CHECK OPTION / SCHEMABINDING / VIEW_METADATA
-- Insert语句
-- Insert/values
-- Insert/select
-- Insert/exec --插入存储过程的结果集
insert into hrEmployee (Name,shortName,Description) exec sp_hrGetEmployee
-- insert Default --插入表的默认值
insert into hrEmployee default values
-- Update语句连接多个表
update hrEmployee
set Salary = Salary * ( 1 + 2 * case when t1.EnterTime > ' 2000-01-01 ' then 1 else 0 end ) from hrEmployee t1 join zj_Dept t2 on t1.DeptID = t2.DeptID
-- Delete语句 连接多个表
delete from zj_Operation_Log
from zj_Operation_Log t1
join zj_Dept t2 on t1.DeptNo = t2.DeptNo
where t2.DeptName = ' 行政部 '
-- 标识值
select @@identity -- 全局变量所有表最所生成的最近一个标识值
select Scope_identity () -- 批处理或者最近的作用域中所生成的最近一个标识值
select ident_current( ' hrEmployee ' ) -- 指定表名的表所生成的最近一个标识值
-- 全局唯一标识符
select newid ()
-- 2010-02-26
-- 布朗
-- QQ:156298979
*/
-- with ties可以附加与排序字段相同值的多个行
select top 3 with ties * from hrEmployee order by shortName asc
set rowcount 3 -- 设置全局变量,使每次返回的行数都为3行
select * from hrEmployee order by shortName asc
set rowcount 0 -- 设置全局变量,使每次返回的行数为所有行
-- select ...where 符合代替if语句
declare @m int , @n int , @i int
set @m = 4
set @n = 1
select @i = ceiling ( @m / @n ) where @m > @n
select @i
-- 服务器环境信息
select serverproperty( ' Edition ' )
-- 字符串函数
-- 将一个字符串指定位置开始指定长度的内容替换成新串的值
select stuff ( ' abcedefg ' , 3 , 2 , ' 1234 ' )
-- 搜索子串在父串的位置
select CharIndex ( ' c ' , ' abcdefg ' , 1 )
select PatIndex ( ' %[cd]% ' , ' abcdefg ' )
-- 发音相似的词或名称
select soundex ( ' lfc ' )
-- 返回两个字符串的差异程度
select Difference ( ' abcd ' , ' abce ' )
inner join -- 内连接
left outer join -- 左外连接
right outer join -- 右外连接
full outer join -- 全外连接
cross outer join -- 交叉连接 A表4条记录,B表5条记录,交叉后生成20条记录(笛卡尔乘积)
-- 两个表合并
select * from hrEmployeeA
union all
select * from hrEmployeeB
-- 两个表相交
select distinct (UserName)
from
(
select distinct (UserName) from hrEmployeeA
union all
select distinct (UserName) from hrEmployeeB
) Emp
group by UserName
-- 两个表关系除
-- 两个表关系差(集合差)
-- 全文索引
exec sp_fulltext_database ' enable ' -- 启用全文检索 'disable'禁用
create fulltext catalog nofc2 as default -- 为数据库创建全文目录
create fulltext index on hrEmployee( [ Name ] , [ ShortName ] , [ Description ] ) -- 创建针对数据库中某个表的一列或多列的全文索引。每个表只允许有一个全文索引
Key Index PK_hrEmployee
-- 全文检索
select * from hrEmployee where Contains (hrEmployee. * , ' 龙 ' ) and Contains (hrEmployee. * , ' 付 ' ) -- (where Contains类似 where in())
-- 全文检索
select * from ContainsTable (hrEmployee, * , ' 龙 ' )
-- 临近的词,屈折变体,
-- 全文检索-模糊查询
select * from hrEmployee where FreeText ( * , ' 成 ' )
select * from FreeTextTable (hrEmployee, * , ' 成 ' )
drop fulltext index on hrEmployee
drop fulltext catalog nofc2
exec sp_fulltext_database ' disable '
-- 视图加密
create view Vabc as
(
select * from hrEmployee
)
with Encryption
-- WITH CHECK OPTION / SCHEMABINDING / VIEW_METADATA
-- Insert语句
-- Insert/values
-- Insert/select
-- Insert/exec --插入存储过程的结果集
insert into hrEmployee (Name,shortName,Description) exec sp_hrGetEmployee
-- insert Default --插入表的默认值
insert into hrEmployee default values
-- Update语句连接多个表
update hrEmployee
set Salary = Salary * ( 1 + 2 * case when t1.EnterTime > ' 2000-01-01 ' then 1 else 0 end ) from hrEmployee t1 join zj_Dept t2 on t1.DeptID = t2.DeptID
-- Delete语句 连接多个表
delete from zj_Operation_Log
from zj_Operation_Log t1
join zj_Dept t2 on t1.DeptNo = t2.DeptNo
where t2.DeptName = ' 行政部 '
-- 标识值
select @@identity -- 全局变量所有表最所生成的最近一个标识值
select Scope_identity () -- 批处理或者最近的作用域中所生成的最近一个标识值
select ident_current( ' hrEmployee ' ) -- 指定表名的表所生成的最近一个标识值
-- 全局唯一标识符
select newid ()