仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 790|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL网页设计数据范例

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:18:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功在盘算机中数占有两种特性:范例和长度。所谓数据范例就是以数据的体现体例和存储体例来分别的数据的品种。
在SQLServer中每一个变量、参数、表达式等都无数据范例。体系供应的数据范例分为几年夜类,如表4-2所示。

个中,BIGINT、SQL_VARIANT和TABLE是SQLServer2000中新增添的3种数据范例。上面分类报告各类数据范例。

4.3.1整数数据范例
整数数据范例是最经常使用的数据范例之一。
1、INT(INTEGER)
INT(或INTEGER)数据范例存储从-2的31次方(-2,147,483,648)到2的31次方-1(2,147,483,647)之间的一切正负整数。每一个INT范例的数据按4个字节存储,个中1位暗示整数值的正负号,别的31位暗示整数值的长度和巨细。
2、SMALLINT
SMALLINT数据范例存储从-2的15次方(-32,768)到2的15次方-1(32,767)之间的一切正负整数。每一个SMALLINT范例的数据占用2个字节的存储空间,个中1位暗示整数值的正负号,别的15位暗示整数值的长度和巨细。
3、TINYINT
TINYINT数据范例存储从0到255之间的一切正整数。每一个TINYINT范例的数据占用1个字节的存储空间。
4、BIGINT
BIGINT数据范例存储从-2^63(-9,223,372,036,854,775,807)到2^63-1(9,223,372,036,854,775,807)之间的一切正负整数。每一个BIGINT范例的数据占用8个字节的存储空间。

4.3.2浮点数据范例
浮点数据范例用于存储十进制小数。浮点数值的数据在SQLServer中接纳上舍进(Roundup或称为只进不舍)体例举行存储。所谓上舍进是指,当(且仅当)要舍进的数是一个非零数时,对其保存数字部分的最低无效位上的数值加1,并举行需要的进位。若一个数是上舍进数,其相对值不会削减。如:对3.14159265358979分离举行2位和12位舍进,了局为3.15和3.141592653590。
1、REAL数据范例
REAL数据范例可准确到第7位小数,其局限为从-3.40E-38到3.40E+38。每一个REAL范例的数据占用4个字节的存储空间。
2、FLOAT
FLOAT数据范例可准确到第15位小数,其局限为从-1.79E-308到1.79E+308。每一个FLOAT范例的数据占用8个字节的存储空间。FLOAT数据范例可写为FLOAT[n]的情势。n指定FLOAT数据的精度。n为1到15之间的整数值。当n取1到7时,实践上是界说了一个REAL范例的数据,体系用4个字节存储它;当n取8到15时,体系以为其是FLOAT范例,用8个字节存储它。
3、DECIMAL
DECIMAL数据范例能够供应小数所必要的实践存储空间,但也有必定的限定,您能够用2到17个字节来存储从-10的38次方-1到10的38次方-1之间的数值。可将其写为DECIMAL[p]的情势,p和s断定了准确的比例和数位。个中p暗示可供存储的值的总位数(不包含小数点),缺省值为18;s暗示小数点后的位数,缺省值为0。比方:decimal(155),暗示共有15位数,个中整数10位,小数5。位表4-3列出了各准确度所需的字节数之间的干系。

4、NUMERIC
NUMERIC数据范例与DECIMAL数据范例完整不异。
注重:SQLServer为了和前真个开辟工具共同,其所撑持的数据精度默许最年夜为28位。但能够经由过程利用命令来实行sqlserver.exe程序以启动SQLServer,可改动默许精度。命令语法以下:SQLSERVR[/Dmaster_device_path][/Pprecisim_leve1]
例4-4:用最年夜数据精度38启动SQLServer
sqlservr/dc:Mssql2000datamaster.dat/p38
/*在利用了/P参数后,假如厥后没有指定详细的精度数值,则默许为38位./*

4.3.3二进制数据范例
1、BINARY
BINARY数据范例用于存储二进制数据。其界说情势为BINARY(n),n暗示数据的长度,取值为1到8000。在利用时必需指定BINARY范例数据的巨细,最少应为1个字节。BINARY范例数据占用n+4个字节的存储空间。在输出数据时必需在数据前加上字符“0X”作为二进制标识,如:要输出“abc”则应输出“0xabc”。若输出的数据太长将会截失落其超越部分。若输出的数据位数为奇数,则会在肇端标记“0X”后增加一个0,如上述的“0xabc”会被体系主动变成“0x0abc”。
2、VARBINARY
VARBINARY数据范例的界说情势为VARBINARY(n)。它与BINARY范例类似,n的取值也为1到8000,若输出的数据太长,将会截失落其超越部分。分歧的是VARBINARY数据范例具有变化长度的特征,由于VARBINARY数据范例的存储长度为实践数值长度+4个字节。当BINARY数据范例同意NULL值时,将被视为VARBINARY数据范例。
一样平常情形下,因为BINARY数据范例长度流动,因而它比VARBINARY范例的处置速率快。

4.3.4逻辑数据范例
BIT:BIT数据范例占用1个字节的存储空间,其值为0或1。假如输出0或1之外的值,将被视为1。BIT范例不克不及界说为NULL值(所谓NULL值是指空值或偶然义的值)。
4.3.5字符数据范例
字符数据范例是利用最多的数据范例。它能够用来存储各类字母、数字标记、特别标记。一样平常情形下,利用字符范例数据时须在其前后加上单引号’或双引号”。
1CHAR
CHAR数据范例的界说情势为CHAR[(n)]。以CHAR范例存储的每一个字符和标记占一个字节的存储空间。n暗示一切字符所占的存储空间,n的取值为1到8000,便可包容8000个ANSI字符。若不指定n值,则体系默许值为1。若输出数据的字符数小于n,则体系主动在厥后增加空格来填满设定好的空间。若输出的数据太长,将会截失落其超越部分。
2、NCHAR
NCHAR数据范例的界说情势为NCHAR[(n)]。它与CHAR范例类似。分歧的是NCHAR数据范例n的取值为1到4000。由于NCHAR范例接纳UNICODE尺度字符集(CharacterSet)。UNICODE尺度划定每一个字符占用两个字节的存储空间,以是它比非UNICODE尺度的数据范例多占用一倍的存储空间。利用UNICODE尺度的优点是因其利用两个字节做存储单元,其一个存储单元的包容量就年夜年夜增添了,能够将全球的言语笔墨都包括在内,在一个数据列中就能够同时呈现中文、英文、法文、德文等,而不会呈现编码抵触。
3、VARCHAR
VARCHAR数据范例的界说情势为VARCHAR[(n)]。它与CHAR范例类似,n的取值也为1到8000,若输出的数据太长,将会截失落其超越部分。分歧的是,VARCHAR数据范例具有变化长度的特征,由于VARCHAR数据范例的存储长度为实践数值长度,若输出数据的字符数小于n,则体系不会在厥后增加空格来填满设定好的空间。
一样平常情形下,因为CHAR数据范例长度流动,因而它比VARCHAR范例的处置速率快。
4、NVARCHAR
NVARCHAR数据范例的界说情势为NVARCHAR[(n)]。它与VARCHAR范例类似。分歧的是,NVARCHAR数据范例接纳UNICODE尺度字符集(CharacterSet),n的取值为1到4000。

4.3.6文本和图形数据范例
这类数据范例用于存储大批的字符或二进制数据。
1、TEXT
TEXT数据范例用于存储大批文本数据,其容量实际上为1到2的31次方-1(2,147,483,647)个字节,在实践使用时必要视硬盘的存储空间而定。
SQLServer2000之前的版本中,数据库中一个TEXT工具存储的实践上是一个指针,它指向一个个以8KB(8192个字节)为单元的数据页(DataPage)。这些数据页是静态增添并被逻辑链接起来的。在SQLServer2000中,则将TEXT和IMAGE范例的数据间接寄存到表的数据行中,而不是寄存到分歧的数据页中。这就削减了用于存储TEXT和IMA-GE范例的空间,并响应削减了磁盘处置这类数据的I/O数目。
2NTEXT
NTEXT数据范例与TEXT.范例类似分歧的,是NTEXT范例接纳UNICODE尺度字符集(CharacterSet),因而其实际容量为230-1(1,073,741,823)个字节。
3IMAGE
IMAGE数据范例用于存储大批的二进制数据BinaryData。其实际容量为2的31次方-1(2,147,483,647)个字节。其存储数据的形式与TEXT数据范例不异。一般用来存储图形等OLEObjectLinkingandEmbedding,工具毗连和嵌进)工具。在输出数据时同BINARY数据范例一样,必需在数据前加上字符“0X”作为二进制标识

4.3.7日期和工夫数据范例
1DATETIME
DATETIME数据范例用于存储日期和工夫的分离体。它能够存储从公元1753年1月1日零时起到公元9999年12月31日23时59分59秒之间的一切日期和工夫,其准确度可达三百分之一秒,即3.33毫秒。DATETIME数据范例所占用的存储空间为8个字节。个中前4个字节用于存储1900年1月1日之前或今后的天数,数值分正负,负数暗示在这天期以后的日期,正数暗示在这天期之前的日期。后4个字节用于存储今后日零时起所指定的工夫经由的毫秒数。假如在输出数据时省略了工夫部分,则体系将12:00:00:000AM作为工夫缺省值:假如省略了日期部分,则体系将1900年1月1日作为日期缺省值。
2SMALLDATETIME
SMALLDATETIME数据范例与DATETIME数堇嘈拖嗨疲淙掌谑奔浞段Ы闲。?900年1月1日到2079年6月6:日精度较低,只能准确到分钟,其分钟个位上为依据秒数四舍五进的值,即以30秒为界四舍五进。如:DATETIME工夫为14:38:30.283
时SMALLDATETIME以为是14:39:00SMALLDATETIME数据范例利用4个字节存储数据。个中前2个字节存储从基本日期1900年1月1日以来的天数,后两个字节存储这天零时起所指定的工夫经由的分钟数。
上面先容日期和工夫的输出格局
日期输出格局
日期的输出格局良多大抵可分为三类:

  • 英文+数字格局
    此类格局中月份可用英文全名或缩写,且不辨别巨细写;年和月日之间可不必逗号;
    年份可为4位或2位;当其为两位时,若值小于50则视为20xx年,若年夜于或即是50则
    视为19xx年;若日部分省略,则视为当月的1号。以下格局均为准确的日期格局:
    June212000Oct11999January20002000February
    2000May120001Sep99JuneJuly00
  • 数字+分开符格局
    同意把斜杠(/)、毗连符(-)和小数点(.)作为用数字暗示的年、月、日之间的分
    隔符。如:
    YMD:2000/6/222000-6-222000.6.22
    MDY:3/5/20003-5-20003.5.2000
    DMY:31/12/199931-12-199931.12.2000
  • 纯数字格局
    纯数字格局是以一连的4位6、位或8位数字来暗示日期。假如输出的是6位或8位
    数字,体系将按年、月、日来辨认,即YMD格局,而且月和日都是用两位数字来暗示:
    假如输出的数字是4位数,体系以为这4位数代表年份,其月份和日缺省为此年度的1月
    1日。如:
    20000601---2000年6月1日991212---1999年12月12日1998---1998年
????工夫输出格局
在输出工夫时必需按“小时、分钟、秒、毫秒”的按次来输出。在其间用冒号“:”离隔。但可将毫秒部分用小数点“.”分,隔厥后第一名数字代表非常之一秒,第二位数字代表百分之一秒,第三位数字代表千分之一秒。当利用12小时制时用AM。am和PM(pm)分离指准时间是午前或午后,若不指定,体系默许为AM。AM与PM均不辨别巨细写。如:
3:5:7.2pm---下战书3时5分7秒200毫秒
10:23:5.123Am---上午10时23分5秒123毫秒
可使用SETDATEFORMAT命令来设定体系默许的日期-工夫格局。
4.3.8泉币数据范例
泉币数据范例用于存储泉币值。在利用泉币数据范例时,应在数据前加上泉币标记,体系才干辨识其为哪国的泉币,假如不加泉币标记,则默许为“¥”。各泉币标记如-2所示。
1MONEY
MONEY数据范例的数据是一个有4位小数的DECIMAL值,其取值从-2的63次方(-922,337,203,685,477.5808到2的63次方-1(+922,337,203,685,477.5807),数据精度为万分之一泉币单元。MONEY数据范例利用8个字节存储。

2SMALLMONEY
SMALLMONEY数据范例相似于MONEY范例,但其存储的泉币值局限比MONEY数据范例小,其取值从-214,748.3648到+214,748.3647,存储空间为4个字节。

4.3.9特定命据范例
SQLServer中包括了一些用于数据存储的特别数据范例。
1TIMESTAMP
TIMESTAMP数据范例供应数据库局限内的唯一值此范例相称于BINARY8或VARBINARY(8),但当它所界说的列在更新或拔出数据行时,此列的值会被主动更新,一个计数值将主动地增加到此TIMESTAMP数据列中。每一个数据库表中只能有一个TIMESTAMP数据列。假如创建一个名为“TIMESTAMP”的列,则该列的范例将被主动设为TIMESTAMP数据范例。
2UNIQUEIDENTIFIER
UNIQUEIDENTIFIER数据范例存储一个16位的二进制数字。此数字称为(GUIDGloballyUniqueIdentifier,即环球唯一判别号)。此数字由SQLServer的NEWID函数发生的环球唯一的编码,在环球各地的盘算机经过此函数发生的数字不会不异。

4.3.10用户自界说数据范例
SYSNAMESYSNAME数据范例是体系供应给用户的,便于用户自界说数据范例。它被界说为NVARCHAR(128),即它可存储128个UNICODE字符或256个一样平常字符。其详细利用办法请拜见第7章“办理数据库表”中的“自界说数据范例”章节。
4.3.11新数据范例
SQLServer2000中增添了3种数据范例:BIGINT、SQL_VARIANT和TABLE。个中BIGINT数据范例已在整数范例中先容,上面先容其他两种:
1SQL_VARIANT
SQL_VARIANT数据范例能够存储除文本、图形数据(TEXT、NTEXT、IMAGE)和TIMESTAMP范例数据外的别的任何正当的SQLServer数据。此数据范例年夜小气便了SQLServer的开辟事情。
2TABLE
TABLE数据范例用于存储对表或视图处置后的了局集。这一新范例使得变量能够存储一个表,从而使函数或历程前往查询了局加倍便利快、捷其、利用请拜见第13章“游标、视图和自界说函数”。
提供用于管理、检查、优化数据库操作的管理工具。
再现理想 该用户已被删除
沙发
发表于 2015-1-19 07:37:25 | 只看该作者
以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了
小魔女 该用户已被删除
板凳
发表于 2015-1-24 15:46:22 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
简单生活 该用户已被删除
地板
发表于 2015-2-2 06:06:27 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-7 17:17:50 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
蒙在股里 该用户已被删除
6#
发表于 2015-2-22 19:33:27 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-7 01:57:12 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
乐观 该用户已被删除
8#
发表于 2015-3-14 07:24:00 | 只看该作者
SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 04:03

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表