创建了一个学生表,如下:
create table xsb
(
学号 char(6) not null primary key,
姓名 char(8) not null,
性别 char(2) default '男' not null,
出生时间 date not null,
专业 char(12) null,
总学分 number(2) null,
备注 varchar2(200) null
);
插入如下数据并提交:
insert into xsb
values('151101','王琳','男',TO_DATE('19970210','YYYYMMDD'),'计算机',50,null);
然后使用like和下划线查“王某”:
select * from xsb where 姓名 like '王_';
结果为“未选定行”,查不出“王琳”。
原因是:姓名是char类型,定长字符串,每个姓名都是8位,所以查不出来。
修改方法:首先将char类型转换为varchar2类型,alter table xsb modify 姓名 varchar2(8);
然后删掉原来的数据重新录入,delete from xsb;
insert into xsb
values('151101','王琳','男',TO_DATE('19970210','YYYYMMDD'),'计算机',50,null);
再次使用like查询,成功!