在sql server和oracle中,定义字段如果用到char(6),那括号中的6表示的是字节还是字符?看到很多地方讲的是表示字符,我认为不对啊!
ãã1ãChar(n)æ¯é¿åº¦ä¸ºn个åèçå®é¿çéunicodeçå符æ°æ®ãN为ä¸ä¸ªä»äº1å°8000ä¹é´çå¼ã
ãã2ãå ¶åå¨å¤§å°ä¸ºè¾å ¥æ°æ®çå®é åèé¿åº¦ï¼èä¸æ¯n个åèãå¦æä½ è¾å ¥çå®é åèé¿åº¦å°äºn,é£ä¹å ¶ä»ä½ç½®ä¼è¢«ç©ºæ ¼å¡«å ãå¨æ°æ®åå¨ä¸è±æåæ¯åæ°åå ä¸ä¸ªåèï¼æ±åå 两个åèã
ãã3ãé£ä¹char(n)æå¤å¯ä»¥åå¨n个è±æåæ¯ææ°åï¼æè n/2个æ±åã
ãã2ãå ¶åå¨å¤§å°ä¸ºè¾å ¥æ°æ®çå®é åèé¿åº¦ï¼èä¸æ¯n个åèãå¦æä½ è¾å ¥çå®é åèé¿åº¦å°äºn,é£ä¹å ¶ä»ä½ç½®ä¼è¢«ç©ºæ ¼å¡«å ãå¨æ°æ®åå¨ä¸è±æåæ¯åæ°åå ä¸ä¸ªåèï¼æ±åå 两个åèã
ãã3ãé£ä¹char(n)æå¤å¯ä»¥åå¨n个è±æåæ¯ææ°åï¼æè n/2个æ±åã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-01-09
从 SQL Server 联机丛书 查询的结果:
char [ ( n ) ]
固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。char 的 ISO 同义词为 character。
实际操作一下:
创建一个表, 2个字段, 一个 char(1) 一个 char(2)
1> create table #t( t1 char(1), t2 char(2) );
2> go
1> insert into #t(t1) values('男');
2> go
消息 8152,级别 16,状态 14,服务器 TESTPC\SQLEXPRESS,第 1 行
将截断字符串或二进制数据。
语句已终止。
1> insert into #t(t2) values('男');
2> go
(1 行受影响)1>
char [ ( n ) ]
固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。char 的 ISO 同义词为 character。
实际操作一下:
创建一个表, 2个字段, 一个 char(1) 一个 char(2)
1> create table #t( t1 char(1), t2 char(2) );
2> go
1> insert into #t(t1) values('男');
2> go
消息 8152,级别 16,状态 14,服务器 TESTPC\SQLEXPRESS,第 1 行
将截断字符串或二进制数据。
语句已终止。
1> insert into #t(t2) values('男');
2> go
(1 行受影响)1>
第2个回答 2013-01-09
2个字节一个汉字,比如“的”;
全角标点2个字节,半角标点一个字节
一个字母一个字节
字符指一个字母或一个字或一个标点或一个符号,不一定几个字节,看情况定
用字符不易出错.追问
全角标点2个字节,半角标点一个字节
一个字母一个字节
字符指一个字母或一个字或一个标点或一个符号,不一定几个字节,看情况定
用字符不易出错.追问
如果字段限制为char(1),按你的理论,是不是可以把字符‘男’ 插进去?
追答男女在数据库里一般用 1或0表示..或者真假..不直拦用 男,女...
追问create table tb_test(
sex char(1)
)
insert into tb_test values('男'),这句能插进去么?
可以的... oracle一般用varchar (2) ..
追问不可以吧。 你去试试。
本回答被网友采纳第3个回答 2013-01-09
应该是字节更精确一点,
如果是字符,基本上特指ansi字符。本回答被提问者采纳
如果是字符,基本上特指ansi字符。本回答被提问者采纳