在mysql数据库javabook中创建一表:
create table Course(
courseId char(5) not null,
subjectId char(4) not null,
courseNumber integer,
title varchar(50) not null,
numOfCredits integer,
constraint pkCourse primary key (courseId),
constraint fkSubjectId foreign key (subjectId)
references Subject(subjectId));然后试图向里面加入一组信息(外键条件满足):
insert into course(courseId,subjectId,courseNumber,title,numOfCredits) values(11119,CSCI,1345,Web programming,3);
这时报错,我给上面这条加入语句中的两个值CSCI和web programming加上单引号',如下:
insert into course(courseId,subjectId,courseNumber,title,numOfCredits) values(11119,'CSCI',1345,'Web programming',3);
这条语句执行成功,看到确实往表中加入了这组信息;
执行insert 语句时每个值都要加单引号'吗,可是上面这条语句中的其他三个值11119,1345,3都没加单引号',也执行成功了,11119也是char类型啊,这时为什么呢;
执行别的语句呢,比如select或update,也要给相关值加单引号吗,
比如select * frok course where courseId=11111,这样写可以吗,还是必须要给11111加上单引号‘’,写成select * frok course where courseId=‘11111’,这样才行;
这是为什么呢,究竟何时必须要单引号,何时可以省略呢;
create table Course(
courseId char(5) not null,
subjectId char(4) not null,
courseNumber integer,
title varchar(50) not null,
numOfCredits integer,
constraint pkCourse primary key (courseId),
constraint fkSubjectId foreign key (subjectId)
references Subject(subjectId));然后试图向里面加入一组信息(外键条件满足):
insert into course(courseId,subjectId,courseNumber,title,numOfCredits) values(11119,CSCI,1345,Web programming,3);
这时报错,我给上面这条加入语句中的两个值CSCI和web programming加上单引号',如下:
insert into course(courseId,subjectId,courseNumber,title,numOfCredits) values(11119,'CSCI',1345,'Web programming',3);
这条语句执行成功,看到确实往表中加入了这组信息;
执行insert 语句时每个值都要加单引号'吗,可是上面这条语句中的其他三个值11119,1345,3都没加单引号',也执行成功了,11119也是char类型啊,这时为什么呢;
执行别的语句呢,比如select或update,也要给相关值加单引号吗,
比如select * frok course where courseId=11111,这样写可以吗,还是必须要给11111加上单引号‘’,写成select * frok course where courseId=‘11111’,这样才行;
这是为什么呢,究竟何时必须要单引号,何时可以省略呢;
解决方案 »
- 各位大侠。。在eclipse中,怎么用代码创建一个java project呢?急!!急!!急!!急!!急!!
- java兴趣小组,有兴趣的来
- 怎么用JAVA访问linux下的Progress数据库
- 请高手们帮帮忙,"玩"一个大家来找茬的游戏!急!谢谢了!
- 在jpanel上显示本地磁盘上的图象?
- 数据库连接的问题!我在查询分析器能登陆,但是在程序里却报异常,这问题好奇怪.
- 用JAVA写的页面,利用IE打印功能,可以用程序控制页面排版吗?
- 小儿科问题:大家好,我的applet小程序不能在浏览器中显示,请问这是为什么
- 哪里有类似visual j++6.0 MSDN的java2帮助文档?
- Object数组中的数字如何相加
- switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?
- 关于界面,刚学java,AWT,感觉做出来的界面好丑。
如果是字母的话,数据库会认为这是一个标识符,然后去查找这个标识符,找不到就会报错,
虽然数字不加''是可以运行的,但是不推荐这种写法,会影响效率,如果是字符串类型,都加'',
这是涉及到编译的时候的一个问题,不会因为select,update...而有不同的对字符串的编译方式,
所以字符串都加''吧
courseId char(5) not null,
subjectId char(4) not null,
courseNumber integer,
title varchar(50) not null,
numOfCredits integer,char,varchar或者date这种字符类型就要单引号。。integer是数字类型。所以不需要单引号。。
其实插入也会自动转换类型,不过像 Web programming 这样的信息,因为中间有空格,所以如果不用引号括起来,就有可能造成解析错误