Ⅰ 在oracle中一个汉字,一个字母,一个数字分别占多少个字符
需要看数据库使用什么字符集?如果是rtf8,那么一个汉字需要3个字节。如果是GBK,它需要2个字节。
从表名中选择*,其中length(NVL(field,'))=1orderbyfield
例如:如何确定具有多个不同长度的列中的数字的长度
如:I_CODE
从表名中选择I_CODE,其中length(I_CODE)=4。所以我们可以算出答案
此外,一个汉字在Oracle数据库中占用的字节数与数据库的字符集有关。当UTF8时,长度为3。从al中选择lengthb('float')可以查询在Oracle数据库中中国字符占用多少字节
(1)sql中一个数字占多少字符扩展阅读:
使用以下函数查询包含字段长度小于10的DNO字段的表
Select * from user_tab_cols t where t。conumn_name,比如'%DNO '和data_length <
10;select * from user_tab_cols t where t。conumn_name,比如'%DNO'和data_length < 10;
有时,当数据库中有许多包含相同字段的表时,您可以通过询问需要更改什么来更改表字段的长度。
Ⅱ 数据库中一个汉字占几个字符
如果你说的“字符”就是指 Java 中的 char,那好,那它就是 16 位,2 字节。
如果你说的“字符”是指我们用眼睛看到的那些“抽象的字符”,那么,谈论它占几个字节是没有意义的。具体地讲,脱离具体的编码谈某个字符占几个字节是没有意义的。
就好比有一个抽象的整数“42”,你说它占几个字节?这得具体看你是用 byte,short,int,还是 long 来存它。
用 byte 存就占一字节,用 short 存就占两字节,int 通常是四字节,long 通常八字节。
当然,如果你用 byte,受限于它有限的位数,有些数它是存不了的,比如 256 就无法放在一个 byte 里了。
字符是同样的道理,如果你想谈“占几个字节”,就要先把编码说清楚。同一个字符在不同的编码下可能占不同的字节。
就以你举的“字”字为例,“字”在 GBK 编码下占 2 字节,在 UTF-16 编码下也占 2 字节,在 UTF-8 编码下占 3 字节,在 UTF-32 编码下占 4 字节。不同的字符在同一个编码下也可能占不同的字节。
“字”在 UTF-8 编码下占3字节,而“A”在 UTF-8 编码下占 1 字节。(因为 UTF-8 是变长编码),而 Java 中的 char 本质上是 UTF-16 编码。而 UTF-16 实际上也是一个变长编码(2 字节或 4字节)。
如果一个抽象的字符在 UTF-16 编码下占 4 字节,显然它是不能放到 char 中的。换言之, char 中只能放 UTF-16 编码下只占 2 字节的那些字符。而 getBytes 实际是做编码转换,你应该显式传入一个参数来指定编码,否则它会使用缺省编码来转换。
你说“ new String("字").getBytes().length 返回的是3 ”,这说明缺省编码是 UTF-8.
如果你显式地传入一个参数,比如这样“ new String("字").getBytes("GBK").length ”,那么返回就是 2。你可以在启动 JVM 时设置一个缺省编码,假设你的类叫 Main,那么在命令行中用 java 执行这个类时可以通过 file.encoding 参数设置一个缺省编码。
比如这样:java -Dfile.encoding=GBK Main
这时,你再执行不带参数的 getBytes() 方法时,new String("字").getBytes().length 返回的就是 2 了,因为现在缺省编码变成 GBK 了。
当然,如果这时你显式地指定编码,new String("字").getBytes("UTF-8").length 返回的则依旧是 3.
否则,会使用所在操作系统环境下的缺省编码。
通常,Windows 系统下是 GBK,Linux 和 Mac 是 UTF-8.
但有一点要注意,在 Windows 下使用 IDE 来运行时,比如 Eclipse,如果你的工程的缺省编码是 UTF-8,在 IDE 中运行你的程序时,会加上上述的 -Dfile.encoding=UTF-8 参数,这时,即便你在 Windows 下,缺省编码也是 UTF-8,而不是 GBK。
由于受启动参数及所在操作系统环境的影响,不带参数的 getBytes 方法通常是不建议使用的,最好是显式地指定参数以此获得稳定的预期行为。
Ⅲ sql字符串占用空间
默认汉字会占俩位,英文字母、数字占一位。
是想要看,一个字符串,存储到varchar里占多少位?
select length('我') from al --返回1
select lengthb('我') from al --返回2
select length('AB') from al --返回2
select lengthb('AB') from al --返回2
Ⅳ pl/sql中中文是几个字符
在计算机中一个字的占位是按字节计算的,一个字节占8位二进制。
通常分为单字节字,和双字节字。数字、字母、常用符号都属于单字节字,
汉子都属于双字节字。通常可以说一个汉子占两个字符位。
例如:在SQL函数SUBSTR中,按字计算,数字、字母、汉字都看做一个字,
但在SUNSTRB中,按字节计算,数字、字母是一个字节,汉字算2个字节。
Ⅳ Sql中类型占多少字节
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 bit 1 或 0 的整数数据。 decimal 和 numeric decimal 从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。 numeric 功能上等同于 decimal。 money 和 smallmoney money 货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。 smallmoney 货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。 近似数字 float 从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。 real 从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。 datetime 和 smalldatetime datetime 从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。 smalldatetime 从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。 字符串 char 固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。 varchar 可变长度的非 Unicode 数据,最长为 8,000 个字符。 text 可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。 Unicode 字符串 nchar 固定长度的 Unicode 数据,最大长度为 4,000 个字符。 nvarchar 可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。 ntext 可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。 二进制字符串 binary 固定长度的二进制数据,其最大长度为 8,000 个字节。 varbinary 可变长度的二进制数据,其最大长度为 8,000 个字节。 image 可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。 其它数据类型 cursor 游标的引用。 sql_variant 一种存储 SQL Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型。 table 一种特殊的数据类型,存储供以后处理的结果集。 timestamp 数据库范围的唯一数字,每次更新行时也进行更新。 uniqueidentifier 全局唯一标识符 (GUID)。
Ⅵ SQL中字符数据类型有占单字节和双字节字符之分。。
nvarchar表是汉字..
varchar是表示所有的字符,包括汉字,字母,数字,特殊符号..
Ⅶ SQL数据类型nchar,char,varchar与nvarchar所占字节数是多少
nchar与char是相似的,nvarchar与varchar是相似的。
(1)char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义 char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不够的字符用空格去填。因为是固定长度,所以速度效率高。
(2)Varchar类型:Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"。
(3)而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
(4)由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉。
(5)VARCHAR存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。
(6)nchar类型和Nvarchar类型是怎么一回事呢?为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。
(7)关于长度与汉字:varchar(100)/char(100)能存50个汉字,nvarchar(100)/nchar(100)能存100个汉字。