‘壹’ 定长记录和变长记录各有什么特点在sql server中,数据记录的存储有什么特点
定长的,就是不管存储多少内容,长度都是这么长,以空格填充。比如定义char(40),如果你的内容只有“123”,那么,实际存储就是“123 (37个空格) ”
变长的,就是内容多少,就存储多长。
一般来说,定长的效率会好一些。变长的需要处理一下。但这个效率应该不会影响到应用。
‘贰’ sql语句修改字段长度
SQL Server修改表的字段长度的语法规则及示例如下:
SQL格式:ALTER TABLE table_name(表名) ALTER Column column_name(列名) type_name(数据类型) null(是否允许NULL)
--将UserList表的Name字段长度修改为varchar(100)
(100)notnull;
SQL Server 2008的教程示例如下图:
‘叁’ SQL语句问题
定长字段的优势在于每个字段都是固定长度的,那么查找速度就快多了。
而不定长的优势显然就是在于存储空间的有效利用了。
所以什么时候使用定长,什么时候使用不定长,关键是看要存储的数据:
比如有个字段是存储身份证号码的,而且是必填字段,且后期会大量使用该字段进行查询,那么用定长显然比不定长更加具有优势;
而再比如,还有个字段是存储家庭住址的,因为每个人的住址长度都不一致,而且我们不知道多大的长度最合适,所以可以设置这个字段为不定长,并且把最大长度设置稍微大些,比如500字节到1000字节,这样即使很长的地址也可以保存,而很短的地址,也并不会像存储在定长字段里面那样浪费存储空间。
‘肆’ SQL小疑问 既然变长字符串比定长的呀节省空间,那么为何不都用变长的呢
1、保持向下的兼容性
2、也是有时需要的
‘伍’ sql语句如何修改字段长度
代码示例:
alter table T1 alter column F1 varchar(10)
一般地,改字段名可以用这条语句:
复制代码代码示例:
alter table A rename column a to c
实际应用中,往往是用J-SQL进行编译,而J-SQL不支持修改字段名。
因此,如果一定要修改字段名,那么只有通过变通的方法了。思路:
1.新建一个字段,取名为c;
2.将字段a的内容拷贝到c;
3.删除字段a;sql修改字段长度的语法:
alter table 表名 modify 字段名 字段类型;sql修改字段长度:
复制代码代码示例:
alter table qtline modify qtl_bidernote VARCHAR2(4000);
标准SQL,对任何数据库都适用
复制代码代码示例:
alter table fzrtmis.reporttemplate modify REPNAME varchar(100);
修改字段名名称:
复制代码代码示例:
ALTER TABLE TABLENAME RENAME COLUMN COL1 TO COL2;
添加字段:
复制代码代码示例:
alter table fzrtmis.itiembuildqk add STATIONSTATE CHAR(1)
‘陆’ SQL数据库存入的数据怎么变长了
char为定长字符串,不足用空格补,你可以换成varchar,
‘柒’ SQL Server中定长char(n)和变长varchar(n)有什么区别,谁能告诉我啊
VARCHAR 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
CHAR 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
VARCHAR 的类型不以空格填满,比如VARCHAR(100),但它的值只是"QIAN",则它的值就是"QIAN"
而CHAR 不一样,比如CHAR(100),它的值是"QIAN",而实际上它在数据库中是"QIAN "(QIAN后共有96个空格,
就是把它填满为100个字节)。
由于CHAR是以固定长度的,所以它的速度会比VARCHAR快得多!但程序处理起来要麻烦一点,要用TRIM之类的函数把两边的空格去掉!
[上面的理论是从网上来的]
至于用法如下:
在一些长度变化不是很大的字段应该用char类型,而对长度变化很大的字段应该用varchar类型了。
‘捌’ sql中数据长度问题,我选的类型是char(10) 存入的数据是"123" 但是读取的时候是"123 "请问如何修改
一个是程序语言中的trim()方法可以去掉空白,一个是数据库中的rtrim(col)可以去掉空白
char类型一般是定长数据,如果变长的话不足位用空白补,所以如果变长应该用varchar类型
‘玖’ sql数据库问题 !!高手请进!
把name的数据类型由char(20)改成varchar(20)
Varchar与char的区别 :
Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!