A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭清贵 中级黑马   /  2013-2-19 01:47  /  1542 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我在sql 输入查询语句
create table Pesson(id int not null,Name nvarchar(max) null,Age int null,Sex char null );

insert into Pesson (id,name,age,sex)values(1,N'小米',20,N'男');
insert into Pesson (id,name,age,sex)values(1,N'小米',20,'男');

为啥"男"没有显示出来,求解,老师说汉字字符串前面加N,我加了吧,还是为NULL,没加的我也试了  还是NULL    求解脱啊




评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

3 个回复

倒序浏览

回帖奖励 +5

你用的char,汉字是两个字符  char(2)  
char(10)   可以存10个字母 ,5个汉字,如果长度不够后面留空
Nchar(10)   10个汉字   留空 固定长度的Unicode编码

create table Pesson(id int not null,Name nvarchar(max) null,Age int null,Sex char(2) null );
insert into Pesson (id,name,age,sex)values(1,'小米',20,'男');
insert into Pesson (id,name,age,sex)values(1,N'小米',20,'男');

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
create table Person --Person
(
id int not null,
Name nvarchar(max) null,
Age int null,
Sex char(2) null --如果不加默认为1(char(1)),一个汉字2byte
)                    --下面会报将截断字符串或二进制数据,因为 放不下
drop table Person
insert into Person (id,Name,Age,Sex)values(1,'小米',20,N'男');
insert into Person (id,Name,Age,Sex)values(1,'小米',20,'男');
--以上加不加 N 都可以存入'男' 我用的是 Sql server 2008 R2

select * from Person
另:你可以查下 联机丛书 关于 char nvarchar  varchar 一搜就有
再给你提供个 http://www.cnblogs.com/yelaiju/archive/2010/05/29/1746826.html  我以前看的- -

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
你改下性别的char类型换做nvarchar,一般用法是不含有汉字的地方用char,含有的地方都用nvarchar,在插入值的地方用N''表示,为的就是解决乱码。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马