重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以用这条语句"sex char(2) check(sex='男' or sex='女') not null",用来限制sqlserver取值范围。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了郸城免费建站欢迎大家使用!
SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。
SQL Server 2000是Microsoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
sqlserver的数据类型比较多,常用的包括:
第一大类:整数数据
bit:bit数据类型代表0,1或NULL,就是表示true,false.占用1byte.
int:以4个字节来存储正负数.可存储范围为:-2^31至2^31-1.
smallint:以2个字节来存储正负数.存储范围为:-2^15至2^15-1
tinyint: 是最小的整数类型,仅用1字节,范围:0至此^8-1
第二大类:精确数值数据
numeric:表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化.
decimal:和numeric差不多
第三大类:近似浮点数值数据
float:用8个字节来存储数据.最多可为53位.范围为:-1.79E+308至1.79E+308.
real:位数为24,用4个字节,数字范围:-3.04E+38至3.04E+38
第四大类:日期时间数据
datatime:表示时间范围可以表示从1753/1/1至9999/12/31,时间可以表示到3.33/1000秒.使用8个字节.
smalldatetime:表示时间范围可以表示从1900/1/1至2079/12/31.使用4个字节.
第五大类:字符串数据
char:长度是设定的,最短为1字节,最长为8000个字节.不足的长度会用空白补上.
varchar:长度也是设定的,最短为1字节,最长为8000个字节,尾部的空白会去掉.
text:长宽也是设定的,最长可以存放2G的数据.
第六大类:Unincode字符串数据
nchar:长度是设定的,最短为1字节,最长为4000个字节.不足的长度会用空白补上.储存一个字符需要2个字节.
nvarchar:长度是设定的,最短为1字节,最长为4000个字节.尾部的空白会去掉.储存一个字符需要2个字节.
ntext:长度是设定的,最短为1字节,最长为2G.尾部的空白会去掉,储存一个字符需要2个字节.
第七大类:货币数据类型
money:记录金额范围为:-92233720368577.5808至92233720368577.5807.需要8 个字节.
smallmoney:记录金额范围为:-214748.3648至214748.36487.需要4个字节.
第八大类:标记数据
timestamp:该数据类型在每一个表中是唯一的!当表中的一个记录更改时,该记录的timestamp字段会自动更新.
uniqueidentifier:用于识别数据库里面许多个表的唯一一个记录.
第九大类:二进制码字符串数据
binary:固定长度的二进制码字符串字段,最短为1,最长为8000.
varbinary:与binary差异为数据尾部是00时,varbinary会将其去掉
image:为可变长度的二进制码字符串,最长2G.
select tope(@size)*from(select * from table) as _table
where _table.id not in (select top(@size*@page)id from table)order by id
每个sqlserver实例的数据库个数32,767
每个基表的列数 1,024
每个 SELECT 语句的列数 4,096
每个 INSERT 语句的列数 1,024
一个数据库里可以最多建立20亿张表,一个表里的记录条数是大于20亿,这些都是理论上的数据。在MSDN里头应该可以找到的.
excel普通电子表格,用于日常简单的数据处理。
access数据库程序,用于稍为复杂的数据处理,安全性不高。
sqlserver大型数据库程序,用复杂的数据处理,安全性高。
这种情况和sqlserver优化利用的索引有关。
在你的sql语句中,应该是有多个索引字段,而且其中一个索引是时间。
当时间范围较大时(示例中的1月1日到10月31日),sqlserver认为时间范围较大,采用了其他索引字段,而恰巧这个索引在本次查询效率较高。
当时间范围缩小时(示例中的10月1日到10月31日),sqlserver认为时间范围较小,采用了时间索引字段,而恰巧时间索引在本次查询效率较慢。
如果你的sql加上强制使用其他索引,就能发现,即使缩小时间范围,也没有问题:
select * from [table_name] with (NoLock,Index = [index_name]) where ......
-----by 谊信