欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » SQLServer教程 » 正文

热门阅读

SQL基础教程及代码优化(二)

创建时间:2011年06月23日 21:57  阅读次数:(5000)
分享到:
索引的使用(续2)
·1.2.5.定期整理索引碎片
–Dbcc indexdefrag
·DBCC INDEXDEFRAG (AdventureWorks, 'Production.Product', PK_Product_ProductID)

–DBCC DBREINDEX
·DBCC DBREINDEX ('HumanResources.Employee', PK_Employee_EmployeeID,80);

–DBCC SHOWCONTIG
·DBCC SHOWCONTIG ('HumanResources.Employee')

–sys.dm_db_index_physical_stats
–UPDATE STATISTICS
·UPDATE STATISTICS ON Production.Product WITH FULLSCAN, NORECOMPUTE 

1.3约束VS触发器
·Check要优先于Trigger
·Check只能实现相对简单的业务规则
·Trigger可以实现几乎所有的业务规则(如数据维护条件的判断、流程自动化等)
·尽量使栏位不可为空(如所有数字栏位设置不可为空,默认值为0)

1.3.1使用约束
·在创建表时创建 CHECK 约束
–create table t_a(a int not null,constraint ck_t_a check(a  > 0))

·在现有的表中创建 CHECK 约束
–alter table t_a add constraint ck_t_a check(a  > 1)

·删除 CHECK 约束
–alter table t_a drop constraint ck_t_a

·禁用 CHECK 约束
–alter table t_a nocheck constraint ck_t_a

·启用 CHECK 约束
–alter table t_a check constraint ck_t_a

·修改 CHECK 约束
–先drop后add

1.4栏位数据类型的选择
·1.精确数字与近似数字
–精确数字:bigint、int、smallint、tinyint、bit、decimal、numeric、money、smallmoney
–近似数字:float、real
·2.数据类型优先级
–(1)用户定义数据类型(最高)
(2)sql_variant
(3)xml
(4)datetime
(5)smalldatetime
(6)float
(7)real
(8)decimal
(9)money
(10)smallmoney
(11)bigint
(12)int
(13)smallint
(14)tinyint
(15)bit
(16)ntext
(17)text
(18)image
(19)timestamp
(20)uniqueidentifier
(21)nvarchar
(22)nchar
(23)varchar
(24)char
(25)varbinary
(26)binary(最低)

·3.Unicode数据
–Nchar、nvarchar、ntext

·4.Sql 2005新增数据类型
–Nchar(max)、nvarchar(max)、varbinary(max)、char(max)、varchar(max)、xml

·5.text数据类型专用操作函数及限制
–READTEXT UPDATETEXT

·尽量使用更小的数据类型
–bit<tinyint<smallint<integer<bigint

·使用varchar代替image只保存图片路径
·如果栏位值只能为数字,使用数字类型要优于字符类型
·注意float等类型数据的比较
declare @x float,@y float
select @x = 1.0000000000000000000000000000000000000
select @y = 1
if @x = @y
print '='
else
print '< >'
迯剉penc揯 ghV@b(W;N:g剉噀鯪  € N/f`O袕L圫
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

相关阅读

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 71+88=? 的结果(结果是:159)
结  果: