帮我设计一下 mysql数据库的字段类型,再介绍下各个字段所对应实际数值的长度。谢谢

帮我设计一下 mysql数据库的字段类型,再介绍下各个字段所对应实际数值的长度。谢谢,第1张

用户名 密码 真实姓名 电话 家庭地址 本人简介 varchar 长度50就好(家庭地址,本人简介 可适当加到:200)

性别 年龄 也可以是varchar 长度 4 就好 不适合用boolean (是否 作为性别的判断不太好,很少见)

性别如果用:0,1 替代用 int 长度 4

年龄 适合用int 长度 4

1、通过图形界面 *** 作,在左侧依次选择objects-tables,右键单击要修改的表名,选中‘Edit’-column,可以直接修改;

2、使用DDL语句:alter table 表名 modify 字段名(字符类型(长度))

例如:

alter table emp modify ename(varchar2(32))

char [ ( n ) ]

固定长度字符数据类型,非Unicode字符数据,长度为n个字节

n 的取值范围为 1至 8,000,存储大小是n个字节。如果输入的

字符串长度不足N 则在右边用空格补足

例:

declare @str char(5)

set @str='ab'

select @str

select DATALENGTH(@str)

/

ab(三个空格)

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

5

/

varchar [ ( n | max ) ]

可变长度的字符数据类型,非Unicode字符数据。n的取值范围为

1 至 8,000或者max,max指示最大存储大小是 2^31-1(2^31为的次方)个字节。

存储大小是输入数据的实际长度加 2 个字节。所输入数据的长度可以为 0 个字符。

例:

declare @str varchar(5)

set @str='ab'

select @str

select DATALENGTH(@str)

/

ab(没有空格)

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

2

/

如果未在数据定义或变量声明语句中指定 n,则默认长度为 1。

如果在使用 CAST 和 CONVERT函数时未指定n,则默认长度为 30。

将为使用 char或varchar 的对象指派数据库的默认排序规则,

除非使用 COLLATE子句指派了特定的排序规则。

该排序规则控制用于存储字符数据的代码页。

如果站点支持多语言,请考虑使用Unicodenchar 或 nvarchar 数据类型,

以最大限度地消除字符转换问题。如果使用char或 varchar,建议执行以下 *** 作:

如果列数据项的大小一致,则使用char。

如果列数据项的大小差异相当大,则使用varchar。

如果列数据项大小相差很大,而且大小可能超过 8,000字节,请使用varchar(max)。

当执行 CREATETABLE或 ALTER TABLE 时,如果SETANSI_PADDING 为 OFF,则定义为NULL的 char 列将作为 varchar处理。

当排序规则代码页使用双字节字符时,存储大小仍然为n个字节。根据字符串的不同,n个字节的存储大小可能小于n 个字符。

字符数据类型(nchar长度固定,nvarchar长度可变)和 Unicode数据使用 UNICODEUCS-2字符集。

nchar [ ( n ) ]

n 个字符的固定长度的Unicode字符数据。n值必须在 1到 4,000之间(含)。

存储大小为两倍 n 字节。

例:

declare @str1 nchar(5)

set @str1='ab'

select @str1

select DATALENGTH(@str1)

/

ab(三个空格)

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

10

/

declare @str2 nchar(5)

set @str2='我爱你小三'

select @str2

select DATALENGTH(@str2)

/

我爱你小三

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

10

/

nvarchar [ ( n | max ) ]

可变长度 Unicode 字符数据。n值在 1到 4,000之间(含)。

max 指示最大存储大小为 2^31-1字节。存储大小是所输入字符个数的两倍+ 2 个字节。

所输入数据的长度可以为 0 个字符。

例:

declare @str1 nvarchar(5)

set @str1='ab'

select @str1

select DATALENGTH(@str1)

/

ab(无空格)

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

4

/

declare @str2 nvarchar(5)

set @str2='我爱你小三'

select @str2

select DATALENGTH(@str2)

/

我爱你刘桦

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

10

/

如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用CAST函数指定 n,则默认长度为 30。

如果列数据项的大小可能相同,请使用nchar。

如果列数据项的大小可能差异很大,请使用nvarchar。

sysname 是系统提供的用户定义数据类型,除了不可为空值外,

在功能上与 nvarchar(128)相同。sysname用于引用数据库对象名。

为使用 nchar或nvarchar 的对象分配的是默认的数据库排序规则,

但可使用 COLLATE子句分配特定的排序规则。

SET ANSI_PADDINGON永远适用于 nchar 和 nvarchar。SETANSI_PADDINGOFF不适用于 nchar 或nvarchar 数据类型。

解决办法是将字段改成NChar,NVarchar等类型,在入库的时候每个字符串插入前都加入一个N,如N’lily’、N’Male’,兼容性会更好,作为Nvarchar字段,这是一种推荐做法!

小贴士:

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

以上就是关于帮我设计一下 mysql数据库的字段类型,再介绍下各个字段所对应实际数值的长度。谢谢全部的内容,包括:帮我设计一下 mysql数据库的字段类型,再介绍下各个字段所对应实际数值的长度。谢谢、如何修改oracle数据库的字段类型长度、什么是字段长度值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9445996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存