当前位置:首页 » 编程语言 » sql数据类型比较
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql数据类型比较

发布时间: 2022-04-16 11:05:09

sql数据类型nchar,char,varchar与nvarchar区别

nchar与char是相似的,nvarchar与varchar是相似的。
char类型:
对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义
char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不够的字符用空格去填。因为是固定长度,所以速度效率高。
Varchar类型:Varchar
的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char
不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian
"(qian后共有96个空格,就是把它填满为100个字节)。
由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!
VARCHAR存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为
VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。
nchar类型和Nvarchar类型是怎么一回事呢?为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。
关于长度与汉字
varchar(100)/char(100)能存50个汉字,nvarchar(100)/nchar(100)能存100个汉字。

⑵ mysql和sql数据类型对比

MySql和SQL Server数据类型各有不同,使用脚本进行数据定义时,这些类型说明还是有用。 My Sql 数据类型SQL Server 数据类型Yes/NobitSmallint(字节型)tinyintInteger(长整型)intReal(单精度浮点型) realFloat(双精度浮点型)floatCurrencymoneysmallmoney Decimal/numericdecimalnumeric Date/(增量)int(带有定义的 Identity 属性)Text (n)varchar(n)nvarchar(n)MemotextIMAGE(OLE Object)图像Replication ID(也称作全球唯一标识符 (GUID))uniqueidentifier (仅适于 SQL Server 7.0)Hyperlinkntext(但超级链接没有激活)(无等价的数据类型)nchar(无等价的数据类型)varbinary(无等价的数据类型)用户定义(无等价的数据类型)smallint(无等价的数据类型)timestamp(无等价的数据类型)charnchar

⑶ 在线等。。SQL 两个数值类型的字段之间的比较

selece a=case when f1>f2 then f1 else f2 end from table

a是结果别名,你随便写.
f1是你第一个字段,f2是你第二个字段.

以上语句经过测试,结果正确.

selece f1,f2,a=case when f1>f2 then f1 else f2 end from table

你可以用这个语句来看,a是不是f1,f2中的较大的值.

⑷ SQL中数据类型float与real的区别

一、意思不同

FLOAT浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用IEEE(电气和电子工程师协会)格式。real是不精确的双精度浮点型,float 和 real 数据类型被称为近似的数据类型。

二、字节不同

real型数据的存储大小为4个字节,可精确到小数点后第7位数字。这种数据类型的数据存储范围为从-3.40E+38~-1.18E-38,0和1.18E-38~3.40E+38。

float型的数据存储大小为8个字节,可精确到小数点后第15位数字。这种数据类型的数据存储范围为从-1.79E+308~-2.23E-308,0和2.23E+308~1.79E+308。 FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。

二、写法

float型的数据可写成float[(n)]的形式。其中n是1~15之间的整数值,指定float型数据的精度。当n为1~7时,实际上用户定义了一个real型的数据,系统用4个字节存储;当n为8~15时,系统认为它是个float型的数据,用8个字节存储它。这样既增强了数据定义的灵活性,又节省了空间。

float 和 real 的使用遵循有关近似数值数据类型的 IEEE 754 规范。

⑸ 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,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。

(5)sql数据类型比较扩展阅读:

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

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

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

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

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

⑹ SQL中如何进行数据的比较

是完全匹配,还是部分匹配呢?

匹配"王"字

前面匹配,select * from [a] where 姓名 like '王%'
后面匹配,select * from [a] where 姓名 like '%王'
包含匹配,select * from [a] where 姓名 like '%王%'

完全相等,select * from [a] where 姓名 = '王'

⑺ 简述sql数据库表的三种类型及它们的区别

物理数据独立性是指DB内模式的改变尽量不影响逻辑模式,或DB物理结构的改变尽量不影响应用程序。逻辑数据独立性是指DB逻辑模式的改变尽量不影响外模式和应用程序,或DB逻辑结构的改变不影响应用程序。 27.候选键与超键有哪些联系和区别? 答:联系:候选键也是超键,两者都是唯一标识元组的属性集 区别:候选键中不含有多余的属性。 28.有如下部门信息表,试判断该表是否可以直接作为关系数据库中的关系,并说明原因。 部门号 部门名称 负责人 部门成员 Dl 财务部 张军 刘爽、王方 D2 人事部 李强 徐刚、张玉 D3 工程部 王洪 蔡鑫明、陈艺 该表不可以直接作为关系数据库中的关系。 因为属性“项目成员”的分量并不是原子数据项,该表不满足关系的最低要求,即1NF要求。

29.简述嵌入式SQL中引入游标的原因。 SQL语言是面向集合的,主语言是面向记录的,需要用游标机制把集合操作转换成单记录处理方式。

30.数据库的并发操作会带来哪些问题? 丢失数据,读脏数据,不可重复读 31.用户对数据库模式有哪些修改权限? 修改数据库模式的权限有四种:索引。资源、修改、撤销 32.什么是角色?其作用是什么? 一组具有相同权限的用户称为角色。 角色的作用是为了便于对用户及权限的管理。 33.简述SQL Server 2000中Msdb数据库的作用。 Msdb数据库主要用于SQL server 2000存储任务计划信息、时间处理信息、备份恢复信息以及异常报告 34简述PowerBuilder中数据窗口对象的功能。 数据窗口对象可以实现对数据库的各种操作,并按照不同的风格显示数据。 35.述SQL/CLI中描述记录的功能。 保存元祖或参数的有关信息,如元祖中的属性个数及其类型,或某个函数调用中的参数个数及其类型

⑻ 在sql中字符串怎么与数值类型比较

Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个,类推。

字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较。
Oracle在执行SQL的时候有些时候会自动转换,比如:
select * from chan_customer cc where cc.customer_id = '1';
即使customer_id是数字型的也可以查出来,但是Oracle有区分字符和数字
就是通过加不加单引号来区分。

⑼ SQL中varchar和nvarchar有什么区别

SQL中varchar和nvarchar区别:输入不同,含义不同。

一、输入不同:

varchar(4)可以输入4个字线,也可以输入两个汉字。

nvarchar(4)可以输四个汉字,也可以输4个字母,但最多四个。

二、含义不同:

varchar(n)长度为n个字节的可变长度且非Unicode的字符数据。n必须是一个介于1和8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是n个字节。

nvarchar(n)包含n个字符的可变长度Unicode字符数据。n的值必须介于1与4,000之间。字节的存储大小是所输入字符个数的两倍。

字符数据类型

Varchar是变长字符数据,其长度不超过8KB。Char是定长字符数据,其长度最多为8KB。超过8KB的ASCII数据可以使用Text数据类型存储。例如,因为Html文档全部都是ASCII字符,并且在一般情况下长度超过8KB,所以这些文档可以Text数据类型存储在SQLServer中。

在SQLServer中,Unicode数据以Nchar、Nvarchar和Ntext数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar字符类型,这时最多可以存储4000个字符。

以上内容参考:网络-SQL数据类型

⑽ sql数据库和access数据库的数据类型对比

将access数据库转换成sql
server数据库。
试试以下方法
1、打开“控制面板”下“管理工具”中的“数据库源”。
2、按“添加”添加一个新的数据源,在选择栏里选“driver
do
microsoft
access
(*.mdb)”,完成后将出现一个框,在“数据库源”里面输入你想写的名称,我取名叫“abc”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的access数据库),然后确定。数据源在这里建好了,剩下转换了。
3、打开sql2000企业管理器,进入数据库,新建一个空的数据库“abc”。
4、选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续。
5、在数据库源下拉但中选择“driver
do
microsoft
access(*.mdb)”,在“用户/系统dsn”中,选种你刚才添加的“abc”,按“下一步”。
6、“目的”不需要修改,选择服务器(一般下为自己的本机local,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),使用windows身份验证指用自己的系统管理员身份操作,使用sql身份操作验证可以用于网站的操作,推荐用后者。
7、选上使用sql身份操作验证后,填写你的用户名和密码,我自己选择的是系统默认号码sa,****,数据库选择刚新建的abc,按下一步。
8、这一步的两个单项选择,从数据源复制表和视图与用一条查询指令指定要传输的数据,选择前者,按下一步继续。
9、这里将出现你自己access数据库的表,按全选后,下一步。
10、dts导入/导出向导,看立即运行被选中按下一步。
11、按完成继续。
12、这个步骤你将看到你的数据被导入sql
2000里面,当出现已经成功把xxx个表导入到数据库的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的*的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了。
数据修改
1、由于sql2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的标示选择是,种子为1,增量为1。
2、另外,access
2000转换成sql
2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须修改成自己想要的属性了。
3、另外,大家要注意对时间函数的把握access与sql是有很多不同的。
数据库转换的经验
1.access的数据库中的自动编号类型在转化时,sql
server并没有将它设为自动编号型,我们需在sql创建语句中加上identity,表示自动编号!
2.转化时,跟日期有关的字段,sql
server默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3.对此两种数据库进行操作的sql语句不全相同,例如:在对access数据库进行删除纪录时用:
delete
*
from
user
where
id=10,
而对sql
server数据库进行删除是用:delete
user
where
id=10。
4.日期函数不相同,在对access数据库处理中,可用date()、time()等函数,但对sql
server数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5.在对access数据库处理中,sql语句中直接可以用一些vb的函数,像cstr()函数,而对sql
server数据库处理中,却不能用。