当前位置:首页 » 编程语言 » sql表类型

sql表类型

发布时间: 2023-05-30 09:12:13

sql server中如何创建表类型,并用该表类型创建一张新表。

如果禅局唯只创建表结构,可用如下语句;

1

select * into 新表 from 旧表 where 1<>1;

如果创建表结构并且同时数腊判据也要,可用如下语句:

1

select * into 新表 from 旧表;

说贺培明:
其中第一句用了1<>1,也就代表条件永远为false,这样就表示没有数据被筛选,所以只是建立了一个空表。

㈡ SQL serⅴer的数据表分为那几个类型

MySQL支持主流的数据类型,可以分为3类:数值、日期/时间、字符串(字符)类型。

关于每个类型的具体介绍可以看一下下图哦

㈢ sql数据库中常用的数据类型有什么

一、整数数据类型:整数数据类型是最常用的数据类型之一。

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 位表示整数值的长度和大小。

二、浮点数据类型:浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。

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 个字节存储它。

三、二进制数据类型

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数据类型。

四、逻辑数据类型

1、BIT:BIT数据类型占用1 个字节的存储空间,其值为0 或1 。如果输入0 或1 以外的值,将被视为1。 BIT 类型不能定义为NULL 值(所谓NULL 值是指空值或无意义的值)。

五、字符数据类型:字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下,使用字符类型数据时须在其前后加上单引号’或双引号” 。

1、CHAR

CHAR 数据类型的定义形式为CHAR[ (n) ]。 以CHAR 类型存储的每个字符和符号占一个字节的存储空间。n 表示所有字符所占的存储空间,n 的取值为1 到8000, 即可容纳8000 个ANSI 字符。

若不指定n 值,则系统默认值为1。 若输入数据的字符数小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。

(3)sql表类型扩展阅读:

SQL包括了所有对数据库的操作,主要是由4个部分组成:

1、数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。

2、数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。

3、数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。

4、嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。

㈣ SQL的数据类型

【三】SQL的数据类型(表的字段类型)

3.1 四种基本的常用数据类型(表的字段类型)

1、字符型,2、数值型,3、日期型,4、大对象型

3.1.1 字符型:

字符类型char和varchar2的区别

SCOTT@ prod> create table t1(c1 char(10),c2 varchar2(10));

SCOTT@ prod> insert into t1 values('a','ab');

SCOTT@ prod> select length(c1),length(c2) from t1; char和varchar2默认以byte为计算单位

LENGTH(C1) LENGTH(C2)

---------- ----------

10 2

3.1.2 数值型:

3.1.3 日期型:

系统安装后,默认日期格式是DD-MON-RR, RR和YY都是表示两位年份,但RR是有世纪认知的,它将指定日期的年份和当前年份比较后确定年份是上个世纪还是本世纪(如表)。

当前年份 指定日期 RR格式 YY格式

------------------------------------------------------------------------------

1995 27-OCT-95 1995 1995

1995 27-OCT-17 2017 1917

2001 27-OCT-17 2017 2017

2013 27-OCT-95 1995 2095

3.1.4 LOB型:

大对象是10g 引入的,在11g中又重新定义,在一个表的字段里存储大容量数据,所有大对象最大都可能达到4G。CLOB,NCLOB,BLOB都是内部的LOB类型,没有LONG只能有一列的限制。

保存图片或电影使用BLOB最好、如果是小说则使用CLOB最好。虽然LONG、RAW也可以使用,但LONG是oracle将要废弃的类型,因此建议用LOB。

虽说将要废弃,但还没有完全废弃,比如oracle 11g里的一些视图如dba_views,对于text(视图定义)仍然沿用了LONG类型。

Oracle 11g重新设计了大对象,推出SecureFile Lobs的概念,相关的参数是db_securefile,采用SecureFile Lobs的前提条件是11g以上版本,ASSM管理等,符合这些条件的。BasicFile Lobs也可以转换成SecureFile Lobs。较之过去的BasicFile Lobs, SecureFile Lobs有几项改进:

1)压缩,2)去重,3)加密

当create table定义LOB列时,也可以使用LOB_storage_clause指定SecureFile Lobs或BasicFile Lobs,而LOB的数据操作则使用Oracle提供的DBMS_LOB包,山首通过编写PL/SQL块完成LOB数据的管理。

3.2 数据类型的转换

3.2.1 转换的需求

什么情况下需要数据类型转换

1)如果表中的某字段是日期型的,而日期又是可以进行比较和运算的,这时通常要保证参与比较和运算的数据类型都是日期型。

2)当对函数的参数进行抽(截)取、拼接,或运算等操作时,需要转换为那个函数的参数要求的数据类型。

3)制表输出有格式需求的,可将date类型,或number类型转换为char类型

4)转换成功是有条件的,有隐性转换和显性转换两种方式

3.2.2隐性类型转换:

是指oracle自动完成的类型转换。在一些带有明显意图的字面值上,可以由Oracle自主判断进行数据类型的转换。

一般规律:

①比较、运算或连接时:

SQL> select empno,ename from emp where empno='7788'

empno本来是数值类型的,这里字符'7788'隐性转换成数值7788

SQL> SELECT '12.5'则和+11 FROM al;

将字符型‘12.5’运孙唯盯转成数字型再求和

SQL> SELECT 10+('12.5'||11) FROM al;

将数字型11隐转成字符与‘12.5’合并,其结果再隐转数字型与10求和

②调用函数时

SQL> select length(sysdate) from al;

将date型运转成字符型后计算长度

③向表中插入数据时

create table scott. t1 (id int,name char(10),birth date);

insert into scott.t1 values('123',456,'2017-07-15');

按照字段的类型进行隐式转换

3.2.3 显性类型转换

即强制完成类型转换(推荐),有三种形式的数据类型转换函数:

TO_CHAR

TO_DATE

TO_NUMBER

1)日期-->字符

SQL> select ename,hiredate, to_char(hiredate, 'DD-MON-YY') month_hired from emp

where ename='SCOTT';

ENAME HIREDATE MONTH_HIRED

---------- ------------------- --------------

SCOTT 1987-04-19 00:00:00 19-4月 -87

fm压缩空格或左边的'0'

SQL> select ename, hiredate, to_char(hiredate, 'fmyyyy-mm-dd') month_hired from emp

where ename='SCOTT';

ENAME HIREDATE MONTH_HIRED

---------- ------------------- ------------

SCOTT 1987-04-19 00:00:00 1987-4 19

其实DD-MM-YY是比较糟糕的一种格式,因为当日期中天数小于12时,DD-MM-YY和MM-DD-YY容易造成混乱。

以下用法也很常见:

SQL> select to_char(hiredate,'yyyy') FROM emp;

SQL> select to_char(hiredate,'mm') FROM emp;

SQL> select to_char(hiredate,'dd') FROM emp;

SQL> select to_char(hiredate,'DAY') FROM emp;

2)数字-->字符:9表示数字,L本地化货币字符

SQL> select ename, to_char(sal, 'L99,999.99') Salary from emp where ename='SCOTT';

ENAME SALARY

---------- --------------------

SCOTT 3,000.00

以下四个语句都是一个结果:

SQL> select to_char(1890.55,'$99,999.99') from al;

SQL> select to_char(1890.55,'$0G000D00') from al;

SQL> select to_char(1890.55,'$99G999D99') from al;

SQL> select to_char(1890.55,'$99G999D00') from al; 9和0可用,其他数字不行

3)字符-->日期

SQL> select to_date('1983-11-12', 'YYYY-MM-DD') tmp_DATE from al;

4)字符-->数字:

SQL> SELECT to_number('$123.45','$9999.99') result FROM al;

使用to_number时如果使用较短的格式掩码转换数字,就会返回错误。不要混淆to_number和to_char转换。

SQL> select to_number('123.56','999.9') from al;

报错:ORA-01722: 无效数字

练习:建立t1表,包括出生日期,以不同的日期描述方法插入数据,显示小于15岁的都是谁

SQL> create table t1 (id int,name char(10),birth date);

insert into t1 values(1,'tim',sysdate);

insert into t1 values(2,'brian',sysdate-365*20);

insert into t1 values(3,'mike',to_date('1998-05-11','yyyy-mm-dd'));

这一句也可以写成insert into t1 values(3,'mike',to_date('1998-05-11')),因为'1998-05-11'是和当前日期格式匹配的。

insert into t1 values(4,'nelson',to_date('15-2月-12','dd-mon-rr'));

SQL> select * from t1;

ID NAME BIRTH

---------- ---------- -------------------

1 tim 2016-02-25 17:34:00

2brian 1996-03-01 17:34:22

3 mike 1998-05-11 00:00:00

4 nelson 2012-02-15 00:00:00

SQL> select name||'的年龄是'||to_char(months_between(sysdate,birth)/12,99) age from t1

where months_between(sysdate,birth)/12<15;

AGE

-------------------------

tim 的年龄是 0

nelson 的年龄是 4

the end !!!

@jackman 共筑美好!

㈤ SQL语言包括哪三种类型,每种类型又包括哪些语句

SQL包含四种程序设计语言类别的语句:数据定义语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)和事物控制语言(TCL)。

1、Data Definition Language(DDL) :CREATE DATABASE - 创建新数据库 ;ALTER DATABASE - 修改数据库;CREATE TABLE - 创建新表;ALTER TABLE - 变更(改变)数据库表;DROP TABLE - 删除表;CREATE INDEX - 创建索引(搜索键);DROP INDEX - 删除索引。

2、Data Manipulation Language(DML) :SELECT - 从数据库表中获取数据;UPDATE - 更新数据库表中的数据;DELETE - 从数据库表中删除数据;INSERT INTO - 向数据库表中插入数据。

3、Data Control Language(DCL) :GRANT - 授权;REVOKE - 撤销授权;DENY - 拒绝授权。

4、Transaction Control Language(TCL) :SAVEPOINT - 设置保存点;ROLLBACK - 回滚;COMMIT - 提交。

(5)sql表类型扩展阅读:

SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词: CREATE、 ALTER、DROP、 SELECT、 INSERT、 UPDATE、 DELETE、GRANT、 REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。

SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

㈥ SQL中表的类型

在SQL里,基本表的关键字是TABLE,是一张二维表,存放数据集的表。视图的关键字是VIEW,视图可以理解为虚拟表,里边是不存放数据的,只是存放一条查询语句,查询视图时显示的数据都是从基本表中根据条件筛选出来的结果。 其具体定义如下:(1)所谓基本表,是这样的一种表,它本身是实际存在的,每个表在存储中可用一个存储文件来表示(一个基本表就是一个关系),它不是由其他表导出的表。
(2)视图是数据库中的虚拟表,由一个或几个基本表导出,用于让用户变换角度来操作基本表。数据库中只保存视图的定义,视图中不存放对应的数据。 (3)导出表:在基本表的基础上通过定义视图而生成的表,称为导出表。导出表是虚表,其本身不存储于数据库中,数据库仅在数据字典中存储其定义。
视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系

㈦ sql server表有什么类型

1.字符型数据:
char\varchar\text
这几种数据类型都是用来装字符串的
char 固定长度存储数据
varcahr 按变长存储数据
text 当你需要存储非常大量的字符串时使用
nchar、nvarchar、ntext
这几个也是存储字符串的,与上面的对应相同。唯一不同的是这三种类型,是采用Unicode编码,当你做国际氏知化的网站时使用

2.日期时间型数据
datetime、smalldatetime
都是用于存储日期和时间信息
datetime:存放1/1/1753-12/31/9999的时间数据,精确到0.001s
smalldatetime: 存放1/1/1900-6/6/2079的时间,精确到秒

3.整数型数据
用于存放整数
bigint、int、蚂仿smallint、tinyint

bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。

int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。

smallint 从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整数数据。

tinyint 从 0 到 255 的整数数据。

4.精确小数型数据
用于存放小数
decimal、numeric

5.近似数值类型
用于存放近似数
float、real

6.货歼物消币型数据
用于存放货币数据
money、smallmoney
在输入货币型数据时要在其前加货币符号,若为负值,则在货币符号后加符号

7.位类型数据
bit
这个刚学不好理解,我给你打个比方吧。比如你的表中有一列放性别,性别只有两种可能性,不是男就是女。这时你就可以把性别这列的数据类型设为bit。凡是与之类似的情况都可以用bit类型数据。

㈧ sql server中创建表时各个数据类型时什么意思

SQL Server 数据类型分类及含义如下:

1、Character 字符串:

(8)sql表类型扩展阅读:

关于SQL数据类型的特征厅前解析:

在 SQL Server 中,每个列、局部变量、表达式和参数都具有一个相关的数据类型。 数据类型是一种属性,用于指定对象可保存的数据的类型:整数数据、字符数据、货币数据、日期和时间数据、二进制字符串等。

当两个具有不同数扮乎清据类型、排序规则、精度、小数位数或长度的表达式通过运算符进行组合时,结果的特征由以下规则确定:

1、结果的数据类型是通过将数据类型的优先顺序规顷蚂则应用到输入表达式的数据类型来确定的。 有关详细信息,请参阅数据类型优先级 (Transact-SQL)。

2、当结果数据类型为 char、varchar、text、nchar、nvarchar 或 ntext 时,结果的排序规则由排序规则的优先顺序规则确定。 有关详细信息,请参阅排序规则优先顺序 (Transact-SQL)。

3、结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。 有关详细信息,请参阅精度、小数位数和长度 (Transact-SQL)。

㈨ SQL中表的类型

不知道什么叫“导出表”是什么,把表导出?
基本表就是你创建的一个表。
视图是通过SELECT语句,外加JOIN,把这些基本表链接成一个逻辑表。

㈩ SQL Server数据库--表--新建表时的数据类型都是什么意思啊

(1) 整数型
整数包罩顷让括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。
l bigint:大整数,数范围为 -263 (-9223372036854775808)~263-1 (9223372036854775807) ,其精度为19,小数位数为0,长度为8字节。
l int:整数,数范围为 -231 (-2,147,483,648) ~231 - 1 (2,147,483,647) ,其精度为10,小数位数为0,长度为4字节。
l smallint:短整数,数范围为 -215 (-32768) ~215 - 1 (32767) ,其精度为5,小数位数为0,长度为2字节。
l tinyint:微短整数,数范围为 0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。
(2) 精确整数型
精确整数型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。精确整数型包括decimal 和 numeric两类。从功能上说两者完全等价,两者的唯一区别在于decimal不能用于带有identity关键字的列。
声明精确整数型数据的格式是numeric | decimal(p[,s]),其中p为精度,s为小数位数,s的缺省值为0。例如指定某列为精确整数型,精度为6,小数位数为3,即decimal(6,3),那么若向某记录的该列赋值56.342689时,该列实际存储的是56.3427。
decimal和numeric可存储从 -1038 +1 到 1038 –1 的固定精度和小数位的数字数据,它物局们的存储长度随精度变化而变化,最少为5字节,最多为17字节。
l 精度为1~9时,存储字节长度为5;
l 精度为10~19时,存储字节长度为9;
l 精度为20~28时,存储字节长度为13;
l 精度为29~38时,存储字节长度为17。
例如若有声明numeric(8,3),则存储该类型数据需5字节,而若有声明numeric(22,5),则存储该类型数据需13字节。
注意:声明精确整数型数据时,其小数位数必须小于精度;在给精确整数型数据赋值时,必须使所赋数据的整数部分位数不大于列的整数部分的长度。
(3) 浮点型
浮点型也称近似数值型。顾名思义,这种类型不能提供精确表示数据的精度,使用这种类型来存储某些数值时,有可能会损失一些精度,所以它可用于处理取值范围非常大且对精确度要求不是十分高的数值量,如一些统计量。
有两种近似数值数据类型:float[(n)]和real,两者通常都使用科学计数法表示数据,即形为:尾数E阶数,如5.6432E20,-2.98E10,1.287659E-9等。
l real:使用4字节存储数据,表数范围为-3.40E + 38 到 3.40E + 38,数据精度为7位有效数字。
l float:定义中的n取值范围是1~53,用于指示其精度和存储大小。当n在1~24之间时,实际上是定义了一个real型数据,存储长度为4字节,精度为7位有效数字;当n在25~53之间时,存储长度为8字节,精度为15位有效数字。当缺省n时,代表n在乎乱25~53之间。float型数据的数范围为- 1.79E+308 到 1.79E+308。
(4) 货币型
SQL Server提供了两个专门用于处理货币的数据类型:money和smallmoney,它们用十进制数表示货币值。
l money:数据的数范围为-263 (-922337203685477.5808)~263-1 (922337203685477.5807) ,其精度为19,小数位数为4,长度为8字节。money的数的范围与bigint相同,不同的只是money型有4位小数,实际上,money就是按照整数进行运算的,只是将小数点固定在末4位。
l smallmoney:数范围为 –231 (-2,147,48.3648) ~231 - 1 (2,147,48.3647) ,其精度为10,小数位数为4,长度为4字节。可见smallmoney与int的关系就如同money与bigint的关系。
当向表中插入money或smallmoney类型的值时,必须在数据前面加上货币表示符号($),并且数据中间不能有逗号(,);若货币值为负数,需要在符号$的后面加上负号(-)。例如:$15000.32,$680,$-20000.9088都是正确的货币数据表示形式。
(5) 位型
SQL Server中的位(bit)型数据相当于其他语言中的逻辑型数据,它只存储0和1,长度为一个字节。但要注意,SQL Server对表中bit类型列的存储作了优化:如果一个表中有不多于 8 个的bit列,这些列将作为一个字节存储,如果表中有 9 到 16 个 bit 列,这些列将作为两个字节存储,更多列的情况依此类推。
当为bit类型数据赋0时,其值为0,而赋非0(如100)时,其值为1。
若表中某列为bit类型数据,那么该列不允许为空值(有关空值概念本节稍后即做介绍),并且不允许对其建立索引。
(6) 字符型
字符型数据用于存储字符串,字符串中可包括字母、数字和其它特殊符号(如#、@、&等等)。在输入字符串时,需将串中的符号用单引号或双引号括起来,如’abc’、”Abc<Cde”。
SQL Server字符型包括两类:固定长度 (char) 或可变长度 (varchar) 字符数据类型。
l char[(n)]
定长字符数据类型,其中n定义字符型数据的长度,n在1到8000之间,缺省为1。当表中的列定义为char(n)类型时,若实际要存储的串长度不足n时,则在串的尾部添加空格以达到长度n,所以char(n)的长度为n。例如某列的数据类型为char(20),而输入的字符串为”ahjm1922”,则存储的是字符ahjm1922和12个空格。若输入的字符个数超出了n,则超出的部分被截断。
l varchar[(n)]
变长字符数据类型,其中n的规定与定长字符型char中n完全相同,但这里n表示的是字符串可达到的最大长度。varchar(n)的长度为输入的字符串的实际字符个数,而不一定是n。例如,表中某列的数据类型为varchar(100),而输入的字符串为”ahjm1922”,则存储的就是字符ahjm1922,其长度为8字节。
当列中的字符数据值长度接近一致时,例如姓名,此时可使用 char;而当列中的数据值长度显着不同时,使用varchar较为恰当,可以节省存储空间。
(7) Unicode字符型
Unicode是“统一字符编码标准”,用于支持国际上非英语语种的字符数据的存储和处理。SQL Server的Unicode字符型可以存储Unicode标准字符集定义的各种字符。
Unicode字符型包括nchar[(n)]和nvarchar[(n)]两类。nchar是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。
l nchar[(n)]:nchar[(n)]为包含n个字符的固定长度 Unicode 字符型数据,n 的值在 1 与 4,000 之间,缺省为1。长度为2n字节。若输入的字符串长度不足n,将以空白字符补足。
l nvarchar[(n)]:nvarchar[(n)]为最多包含n个字符的可变长度 Unicode 字符型数据,n 的值在 1 与 4,000之间,缺省为1。长度是所输入字符个数的两倍。
实际上,nchar、nvarchar与char、varchar的使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用ASCII字符集)。
(8) 文本型
当需要存储大量的字符数据,如较长的备注、日志信息等等,字符型数据的最长8000个字符的限制可能使它们不能满足这种应用需求,此时可使用文本型数据。
文本型包括text和ntext两类,分别对应ASCII字符和Unicode字符。text类型可以表示最大长度为 231-1 (2,147,483,647) 个字符,其数据的存储长度为实际字符数个字节。ntext可表示最大长度为 230 - 1 (1,073,741,823) 个Unicode字符,其数据的存储长度是实际字符个数的两倍(以字节为单位)。
(9) 二进制型
二进制数据类型表示的是位数据流,包括binary(固定长度)和varbinary(可变长度)两种。
l binary [(n) ]:固定长度的n个字节二进制数据。n取值范围为 1 到 8,000,缺省为1。binary(n)数据的存储长度为 n+4 字节。若输入的数据长度小于n,则不足部分用0填充;若输入的数据长度大于n,则多余部分被截断。
输入二进制值时,在数据前面要加上0x,可以用的数字符号为0—9、A—F(字母大小写均可)。因此,二进制数据有时也被称为十六进制数据。例如0xFF、0x12A0分别表示值FF和12A0。因为每字节的数最大为FF,故在“0x”格式的数据每两位占1个字节。
l varbinary [(n) ]:n个字节变长二进制数据。n取值范围为 1 到 8,000,缺省为1。varbinary(n)数据的存储长度为实际输入数据长度+4个字节。
(10) 日期时间类型
日期时间类型数据用于存储日期和时间信息,包括datetime和smalldatetime两类。
l datetime:datetime类型可表示的日期范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确度为百分之三秒(3.33 毫秒或 0.00333 秒),例如1到3毫秒的值都表示为0毫秒,4到6毫秒的值都表示为4毫秒。
datetime类型数据长度为8字节,日期和时间分别使用4个字节存储。前4 字节用于存储datetime类型数据中距1900 年 1 月 1 日的天数,为正数表示日期在1900年1月1日之后,为负数则表示日期在1900年1月1日之前。后4个字节用于存储datetime类型数据中距12:00(24小时制)的毫秒数。
用户以字符串形式输入datetime类型数据,系统也以字符串形式输出datetime类型数据,将用户输入到系统以及系统输出的datetime类型数据的字符串形式称为datetime类型数据的“外部形式”,而将datetime在系统内的存储形式称为“内部形式”,SQL Server负责datetime类型数据的两种表现形式之间的转换,包括合法性检查。
用户给出datetime类型数据值时,日期部分和时间部分分别给出。
日期部分的表示形式常用的格式如下:

年 月 日 2001 Jan 20、2001 Janary 20
年 日 月 2001 20 Jan
月 日[,]年 Jan 20 2001、Jan 20,2001、Jan 20,01
月 年 日 Jan 2001 20
日 月[,]年 20 Jan 2001、20 Jan,2001
日 年 月 20 2001 Jan
年(4位数) 2001表示2001年1月1日
年月日 20010120、010120
月/日/年 01/20/01、1/20/01、01/20/2001、1/20/2001
月-日-年 01-20-01、1-20-01、01-20-2001、1-20-2001
月.日.年 01.20.01、1.20.01、01.20.2001、1.20.2001

说明:年可用4位或2位表示,月和日可用1位或2位表示。
时间部分常用的表示格式如下:

时:分 10:20、08:05
时:分:秒 20:15:18、20:15:18.2
时:分:秒:毫秒 20:15:18:200
时:分AM|PM 10:10AM、10:10PM

l smalldatetime:smalldatetime类型数据可表示从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间,数据精确到分钟,即29.998 秒或更低的值向下舍入为最接近的分钟,29.999 秒或更高的值向上舍入为最接近的分钟。Smalldatetime类型数据的存储长度为4字节,前2个字节用来存储smalldatetime类型数据中日期部分距1900年1月1日之后的天数;后2个字节用来存储smalldatetime类型数据中时间部分距中午12点的分钟数。
用户输入smalldatetime类型数据的格式与datetime类型数据完全相同,只是它们的内部存储可能不相同。
(11) 时间戳型
标识符是timestamp。若创建表时定义一个列的数据类型为时间戳类型,那么每当对该表加入新行或修改已有行时,都由系统自动将一个计数器值加到该列,即将原来的时间戳值加上一个增量。记录timestamp列的值实际上反映了系统对该记录修改的相对(相对于其他记录)顺序。一个表只能有一个timestamp 列。Timestamp类型数据的值实际上是二进制格式数据,其长度为8字节。
(12) 图象数据类型
标识符是image,它用于存储图片、照片等。实际存储的是可变长度二进制数据,介于 0 与 231-1 (2,147,483,647) 字节之间。
(13) 其它数据类型
除了上面所介绍的常用数据类型外,SQL Server 2000还提供了其它几种数据类型:cursor、sql_variant、table和uniqueidentifier。
Cursor:是游标数据类型,用于创建游标变量或定义存储过程的输出参数。
Sql_variant:是一种存储 SQL Server 支持的各种数据类型(除text、ntext、image、timestamp 和 sql_variant 外)值的数据类型。Sql_variant的最大长度可达 8016 字节。
Table:是用于存储结果集的数据类型,结果集可以供后续处理。
Uniqueidentifier:是唯一标识符类型。系统将为这种类型的数据产生唯一标识值,它是一个16字节长的二进制数据。

热点内容
广饶编程 发布:2024-04-29 20:39:07 浏览:120
长城服务器管理口ip 发布:2024-04-29 20:15:24 浏览:375
java静态成员变量 发布:2024-04-29 20:04:52 浏览:874
现代伊兰特女生选哪个配置 发布:2024-04-29 19:59:44 浏览:508
d盘不能访问权限 发布:2024-04-29 19:41:56 浏览:415
考试版脚本 发布:2024-04-29 19:33:43 浏览:64
html编译成JavaScript 发布:2024-04-29 00:00:15 浏览:367
html编译器手机 发布:2024-04-28 23:59:22 浏览:518
大宇精雕机的密码是多少 发布:2024-04-28 23:50:02 浏览:457
androidapi查询 发布:2024-04-28 23:44:06 浏览:58