择表达式应具有雷同的数据类型,或是可以主动将它们转换为雷同的数据类型。在主动转换时,对于数值类
型,体系将低精度的数据类型转换为高精度的数据类型。
在包含多个查询的UNION语句中,其履行次序是自左至右,应用括号可以改变这一履行次序。例如:
查询1 UNION (查询2 UNION 查询3)
INSERT语句
用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以应用如下语句:
INSERT INTO EMPLOYEES valueS
(\""Smith\"",\""John\"",\""1980-06-10\"",
\""Los Angles\"",16,45000);
经由过程如许的INSERT语句,体系将试着将这些值填入到响应的列中。这些列遵守我们创建表时定义的次序分列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。
我们说过体系会“试着”将值填入,除了履行规矩之外它还要进行类型搜检。若是类型不符(如将一个字符串填入到类型为数字的列中),体系将拒绝这一次操纵并返回一个错误信息。
若是SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL供给对事务的支撑。一次事务将数据库从一种一致性转移到另一种一致性。若是事务的某一项目组失败,则全部事务都邑失败,体系将会被恢复(或称之为回退)到此事务之前的状况。
回到本来的INSERT的例子,请重视所有的整形十进制数都不须要用单引号引起来,而字符串和日期类型的值都要用单引号来差别。为了增长可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。
同样要重视输入文字值时要应用单引号。双引号用来封装限界标识符。
对于日期类型,我们必须应用SQL标准日期格局(yyyy-mm-dd),然则在体系中可以进行定义,以接管其他的格局。当然,2000年邻近,请你最好还是应用四位来默示年份。
既然你已司懂得了INSERT语句是如何工作的了,让我们转到EMPLOYEES表中的其他项目组:
INSERT INTO EMPLOYEES valueS
(\""Bunyan\"",\""Paul\"",\""1970-07-04\"",
\""Boston\"",12,70000);
INSERT INTO EMPLOYEES valueS
(\""John\"",\""Adams\"",\""1992-01-21\"",
\""Boston\"",20,100000);
INSERT INTO EMPLOYEES valueS
(\""Smith\"",\""Pocahontas\"",\""1976-04-06\"",
\""Los Angles\"",12,100000);
INSERT INTO EMPLOYEES valueS
(\""Smith\"",\""Bessie\"",\""1940-05-02\"",
\""Boston\"",5,200000);
INSERT INTO EMPLOYEES valueS
(\""Jones\"",\""Davy\"",\""1970-10-10\"",
\""Boston\"",8,45000);
INSERT INTO EMPLOYEES valueS
(\""Jones\"",\""Indiana\"",\""19