用户名 密码 真实姓名 电话 家庭地址 本人简介 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数据库的字段类型长度、什么是字段长度值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)