SQL2000里的数据类型

数据|数据类型

近来在做数据库设计,有时候真弄不清SQL2000里的数据类型,所以摘了这篇文章。

(1)char、varchar、text和nchar、nvarchar、ntext
char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。写过程序的朋友对Unicode应该很了解。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

(2)datetime和smalldatetime
datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。
smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。

(3)bitint、int、smallint、tinyint和bit
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的整数数据。
bit:1或0的整数数据。

(4)decimal和numeric
这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。

(5)float和real
float:从-1.79^308到1.79^308之间的浮点数字数据。
real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。

时间: 2024-11-01 23:35:43

SQL2000里的数据类型的相关文章

如何将一数据库复制多份并附加到sql2000里

问题描述 我sql2000企业管理器里有一数据库db,我想将这一数据库制作多份:db1,db2,db3并附加到sql2000里怎么操作呢?我是这样做的:首先在企业管理器里将原始的数据库db备份,即db数据库->所有任务->备份数据库(备份名为dbback);然后我在企业管理器里新建一数据库db1,再还原数据库:db1数据库->所有任务->勾选了"在数据库上强制还原"->我刚才备份的数据库dbback->确定还原时出现4200错误,说"无法重

sql事务,在sql2000里判断执行是否成功用@@ERROR 判断

原文:sql事务,在sql2000里判断执行是否成功用@@ERROR 判断 贴个sql事务,在sql2000里判断执行是否成功用@@ERROR 判断 这个东西多少还是有点问题,sql2005了可以用try..catch了,不管那块错都能捕捉,然后在回滚,很方便,贴出来晾晾    BEGIN TRANSACTION; BEGIN TRY  --try 执行sql       SELECT 1/0; END TRY BEGIN CATCH  --cache抓错     SELECT        

怎样快速的向SQL-2000里插入10万条数据啊?

问题描述 本人刚参加了一个公司的笔试,有这样一道题,想到了一个笨方法,但速度比较慢,有没有比较快速的方法,向数据库里插入10万条数据?谢谢了... 解决方案 解决方案二:BULKINSERT解决方案三:能不能说的清楚点,还是不明白.解决方案四:在SQL联机帮助里找找看,网上搜索下也行的.解决方案五:有点难度哦

winform程序里建SQL2000表的问题?

问题描述 我在winform程序里向sql2000数据中建一个表,在插入一条数据,代码如下stringqueryString1="createtabletbtest";queryString1+="(testidintprimarykeyidentity(1,1),";queryString1+="testcountintnotnull)";queryString1+="insertintotbtest(testcount)values

.net系统原来是用SQL2005做的,现在想改为用SQL2000,应该如何修改代码

问题描述 原来用的是2005的数据库.现在改成了2000的了.表都建好了.只是代码上还用再改哪么?还望大家帮忙.谢谢.现在出现的错误是用户'sa'登录失败. 解决方案 解决方案二: 连接字符串有问题,2000的sa用户自用木有解决方案三: 代码基本不用改报错可能是链接字符串写错了解决方案四: 基本来说好麻烦高版本到低版本,只能生成SQL语句去执行,还有数据,多的话这是个大问题解决方案五: 引用2楼的回复: 代码基本不用改报错可能是链接字符串写错了 只要你能将数据导到sql2000就可以了解决方案

java se-使用泛型打印输出任意类型的数组,为什么调用时有错误?

问题描述 使用泛型打印输出任意类型的数组,为什么调用时有错误? import java.util.Arrays; public class FanXing { public static void printMatrix(T[][] matrix){ for(int i=0;i<matrix.length;i++){ System.out.println(Arrays.toString(matrix[i])); } } public static void main(String[] args)

WCF分布式开发步步为赢(8)

使用数据集(DataSet).数据表(DataTable).集合(Collection)传递数据 数据集(DataSet).数据表(DataTable).集合(Collection)概念是.NET FrameWork里提供数据类型,在应用程序编程过程中会经常使用其来作为数据的载体,属于ADO.NET的一部分.今天我们WCF分布式开发步步为赢第8节的内容:使用数据集(DataSet).数据表(DataTable).集合(Collection)传递数据.本节内容除了介绍几个类型概念外的,同样会详细给

MFC中, win764位的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为乱码

问题描述 MFC中, win764位的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为乱码 MFC中, win764位的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为乱码, 解决方案 的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为 解决方案二: 乱码是编码的问题,为什么还和系统有关系呢?来点运行截图 解决方案三: 不知道你用的什么版本的vs,建议查一下代码里面是不是有硬编码,因为32位系统里很多数据类型占的字节数都是不一样的. 解决方案

这些特性,Postgre SQL秒杀其他数据库

你可能会问自己 "为什么选择PostgreSQL ?" 开源数据库我们有好几种选择(本文参考 MySQL, MariaDB 和 Firebird ), 那么 PostgreSQL 具有哪些其它开源数据库不具备的特性呢? PostgreSQL 宣称它是"世界上最先进的开源数据库."我们将会给出 PostgreSQL 这么宣称的原因.本系列将带我们一起看看数据存储 – 数据模型, 结构, 数据类型, 和大小限制.数据操作和检索. 数据模型  PostgreSQL 不仅仅