1、联合查询注意事项
① 联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。
②在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型。
③在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:
查询1 UNION (查询2 UNION 查询3)
2、INSERT语句
①INSERT INTO <表名> (列1,列2,列3,……) VALUES(值1,值2,值3,……);
原则上,执行一次INSERT语句会插入一行数据,若需要插入多行数据,通常需要循环执行所需行数次的INSERT语句。
②省略INSERT语句中的列名,就会自动设定为该列的默认值(没有默认值则为NULL).
③复制数据时可用INSERT…SELECT语句,原有数据不变,可做数据备份。
④INSERT语句的SELECT语句,可以使用WHERE子句或者GROUP BY子句等任何SQL语法,但使用ORDER BY子句不会产生任何效果。
注意事项:
①当向表中插入字符串值(以及一些数据值时)。必须使用单引号,否则MySQL认为它们是字段名;
②在一个单独的Insert语句中使用多个VALUES()子句可以插入多条记录,也可以不使用INSERT……VALUES格式,而是使用类似的UPDATE语句,它使用SET语句分别为每一列设置值。
③将超出列范围的值设置给一个数字列,值被剪切为范围内适当的端点值。
④将数字列设成例如'10.34 a'的值,拖尾的垃圾被剥去并仍然是数字部分被插入。如果值根本不是一个数字,列被设置到0。
⑤把一个字符串插入到超过列的最大长度的一个CHAR、VARCHAR、TEXT或BLOB列中。值被截断为列的最大长度。
⑥如果VALUES中什么都不写,那MySQL将使用表中每一列的默认值来插入新记录。
⑦果表名后什么都不写,就表示向表中所有的字段赋值。使用这种方式,不仅在VALUES中的值要和列数一致,而且顺序不能颠倒。
本文详细介绍了SQL联合查询的注意事项及INSERT语句的各种用法,包括如何进行联合查询、INSERT语句的基本语法、特殊用法及其注意事项。
7663

被折叠的 条评论
为什么被折叠?



