在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’,这样才行;
这是为什么呢,究竟何时必须要单引号,何时可以省略呢;