sql server 基础笔记.docx
- 文档编号:9188025
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:13
- 大小:17.76KB
sql server 基础笔记.docx
《sql server 基础笔记.docx》由会员分享,可在线阅读,更多相关《sql server 基础笔记.docx(13页珍藏版)》请在冰豆网上搜索。
sqlserver基础笔记
---用户定义数据类型
createtypepostcode
fromvarchar(6)null--创建用户定义数据类型
go
select*frominformation_schema.domains----获取用户定义数据类型信息
select*frominformation_schema.column_domain_usage---查看用户定义数据类型的使用情况
droptypepostcode---删除用户定义数据类型
---同义词
createsynonymtb11fortb---创建
select*fromsys.synonyms----查询同义词信息
dropsynonymtb11---删除
if....else用法
ifmonth(getdate())<7
begin
print('上半年')
select(getdate())
end
else
begin
print('下半年')
select(getdate())
end
--while,continue,break用法
declare@iint
set@i=1
while@i<20
begin
set@i=@i+1
if@i<=19
continue
print@i
end
declare@iint
set@i=1
while@i<20
begin
if@i=19
break
print@i
set@i=@i+1
end
----try...catch用法
begintry
select1/0
endtry
begincatch
print'打印错误'
endcatch
---raiserror的用法
begintry
raiserror('生成一个错误消息',11,1)
endtry
begincatch
selecterror_message()as错误消息,
error_severity()as严重级别,
error_state()asstate;
endcatch
---使用sp_addmessage存储过程添加自定义错误
execsp_addmessage50001,15,N'newuserdefinederrormessage!
',us_english
execsp_addmessage50001,15,N'新增用户自定义错误消息!
'
execsp_dropmessage50001,'all'
---使用sp_altermessage存储过程修改用户定义错误消息
execsp_altermessage50001,'with_log',true'
---2005查看数据库信息
select*fromsys.databases
execsp_helpdb
--查看数据库空间使用情况
execsp_spaceused
--创建数据库时指定数据文件
createdatabasedb
on
primary(name=db,
filename='C:
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db.mdf',
size=100MB
maxsize=200
filegrowth=20)
go
--解释下上面的参数:
--primary关键字,指定关联<文件定义>列表用于定义主要数据文件,一个数据库只能有一个主文件,如果没有指定primary,那么createdatabase语句中列出的第一个文件将成为主文件。
--name关键字,用于指定数据文件的逻辑名称
--filename关键字,指定数据文件的操作系统文件名。
其后面的参数是创建数据文件时定义的物理文件的路径名和文件名。
--size关键字,指定数据文件的大小。
--maxsize关键字,指定数据文件可以增长到的最大大小。
--unlimitted关键字,上面的例子中省略掉了。
若指定了,则代表指定定义的数据文件将增长到磁盘变满为止。
--filegrowth关键字,指定数据文件的增长增量,其值不能超过maxsize设置。
0表示不增长。
,默认值为MB。
如果指定为%,则增量大小为发生时文件大小的指定百分比,如果没有指定,默认值为10%。
--在创建数据库时指定文件组
createdatabasedb
on
primary(name=db1,
filename='C:
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db1.mdf',
size=100MB
maxsize=200
filegrowth=20),
filegroupfilegroup1
(name=db2,
filename='C:
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db2.mdf',
size=100MB
maxsize=200
filegrowth=20)
go
--创建数据库时指定事务日志文件
createdatabasedb
on
primary(name=db1,
filename='C:
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db1.mdf',
size=100MB
maxsize=200
filegrowth=20),
logon(
name=dblog,
filename='C:
\programfiles\mircosoftSQLserver\mssql10.mssqlserver\mssql\data\db_log.ldf',
size=10MB
maxsize=20
filegrowth=2)
go
--获取约束信息
select*frominformation_schema.constraint_column_usage---可以获取指定数据库中的所有约束的信息以及约束与列的对应关系
go
select*frominformation_schema.constraint_table_usage---查询结果中只包含表和约束的对应关系,并没有约束对应的列信息
go
select*frominformation_schema.table_constraints---查询结果中只包含表和约束的对应关系,并没有约束对应的列信息
go
select*frominformation_schema.key_column_usage---可以获取指定数据库中的所有键约束的列信息,包括主键约束中的主键列,唯一约束中的唯一键列和外键约束中的引用列
go
select*fromsys.key_constraints----获取约束信息
select*fromsys.foreign_keys--获取表中的外键约束
select*fromsys.foreign_key_columns--获取外键约束的列信息
select*frominformation_schema.referential_constraints--获取外键约束信息
select*frominformation_schema.check_constraints--获取检查约束信息
---创建主键约束,唯一约束,检查约束
createtabletest
(
idint,
testnamevarchar(50),
sexbit,
classvarchar(50),
scorefloatdefault(0)
constraintpk_testprimarykey/*这里可以指定是创建聚集或非聚集索引clustered|nonclustered可选项*/(id)
constraintix_testunque(testname)
constraintck_testcheck/*这里可以使用notforreplication可选项,用于指定当从其他表中复制数据时,不检查约束条件*/(score>=0)
)
go
altertabletb
addconstraintpk_tbprimarykeynonclustered(id)
go
altertabletb
addconstraintck_sexcheck(sex='男'orsex='女')
go
---创建和使用默认约束
altertabletb
addconstraintde_testdefault'test'fortest---在表tb的列test的默认约束为'test'
go
--创建和使用外键约束
altertabletb
addconstraintfk_tb_tb1foreignkey(id)
referencestb1(id)
go
--使用dbcccheckident检查和设置表的标识值
createtabletb
(
idintprimarykeyidentity,
namevarchar(50)
)
insertintotb
select'a'
unionall
select'b'
unionall
select'c'
unionall
select'd'
go
dbcccheckident(tb,noreseed)
go
deletefromtbwhereid>2
go
--删除记录后,表tb只剩下两条记录了,但是此时表tb的标识值仍为4,可以用下面的语句重置标识值为2
dbcccheckident(tb,reseed,2)
go
dbcccheckident(tb,noreseed)
go
/*检查标识信息:
当前标识值'4',当前列值'4'。
DBCC执行完毕。
如果DBCC输出了错误信息,请与系统管理员联系。
(2行受影响)
检查标识信息:
当前标识值'4',当前列值'2'。
DBCC执行完毕。
如果DBCC输出了错误信息,请与系统管理员联系。
检查标识信息:
当前标识值'2',当前列值'2'。
DBCC执行完毕。
如果DBCC输出了错误信息,请与系统管理员联系。
*/
droptabletb
---视图withencryption的用法
createview员工信息简历表
withencryption----这样就创建了加密视图
as
select
e.emp_name,e.sex,e.title,d.dep_name
from
employeeseinnerjoindepartmentsd
on
e.dep_id=d.dep_id
go
---获取表和视图信息
select*frominformation_shcema.tables---查看当前数据库中当前用户有权限查看的所有表和视图信息
---获取视图信息
select*frominformation_schema.views
---获取列信息
select*frominformation_schema.columns
如果需要查看指定表或视图的列情况,可以使用下面的语句。
select
*
from
information_schema.columns
where
table_catalog='数据库名'
and
table_name='表名'
---获取视图中列的信息
select*frominformation_schema.view_column_usage
---获取列信息
select*fromsys.columns
将sys.columns与系统视图sys.objects和sys.types关联,获得列的一些详细信息,例如
select
o.nameas表名,
c.nameas列名,
t.nameas数据类型,
c.max_lengthas长度,
c.precisionas精度,
c.scaleas小数位数,
casec.is_nullablewhen1then'是'else'否'endas是否允许空,
casec.is_identitywhen1then'是'else'否'endas标识列,
from
sys.columnscinnerjoinsys.objectso
on
o.object_id=c.object_id
innerjoin
sys.typest
on
c.system_type_id=t.system_type_id
where
o.name='表名'andt.name<>'sysname'
orderby
c.column_id
go
--获取视图中包含表的信息
select*frominformation_schema.view_table_usage
go
--获取所有数据库对象的信息
select*fromsys.objects
--绑定规则
execsp_bindrule'规则名','对象名'
例如
execsp_bindrule'sexrule','employees.sex'
--解除绑定规则
execsp_unbindrule'对象名'
--删除规则
在删除规则前,需要调用sp_unbindrule存储过程解除该规则的绑定,例如
execsp_unbindrule'employees.sex'
droprulesexrule
--查看表的索引信息
execsp_helpindextb
--结合sys.indexes和sys.index_columns,sys.objects,sys.columns查询索引所属的表或视图的信息
select
o.nameas表名,
i.nameas索引名,
c.nameas列名,
i.type_descas类型描述,
is_primary_keyas主键约束,
is_unique_constraintas唯一约束,
is_disableas禁用,
from
sys.objectsoinnerjoinsys.indexes
on
i.object_id=o.object_id
innerjoin
sys.index_columnsic
on
ic.index_id=i.index_idandic.object_id=i.object_id
innerjoin
sys.columnsc
on
ic.columns_id=c.columns_idandic_object_id=c.object_id
go
--查询索引的键和列信息
select
o.nameas表名,
i.nameas索引名,
c.nameas字段编号,
from
sysindexesiinnerjoinsysobjectso
on
i.id=o.id
innerjoin
sysindexkesk
on
o.id=k.idandi.indid=k.indid
innerjoin
syscolumnsc
on
c.id=i.idandk.colid=c.colid
where
o.name='表名'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql server 基础笔记 基础 笔记