SQL学习指南第二篇

使用集合

SQL语言包含3个集合操作符,且每个集合操作符可以有两种修饰符:一个表示包含重复项,另一个表示去除重复项。

union操作符

union与union all操作符可以连接多个数据集,它们的区别在于union对连接后的集合排序并去除重复项,而union all 得到的最终数据集的行数总是等于所要连接的各集合的行数之和。

intersect操作符

ANSI的SQL规范中定义了intersect操作符来执行集合交操作,但MySQL还未实现intersect操作符。

except操作符

ANSI SQL规范定义了except操作符以执行集合差操作,但MySQL还未实现except操作符。

数据生成,转换和操作

使用字符串数据

MySQL中有以下字符数据类型:

  • CHAR 固定长度,不足部分用空格填充
  • VARCHAR 变长字符串
  • TEXT 容纳大长度的变长字符串

生成字符串

当我们向表中插入的字符串数据长度超过字符列的最大长度时,服务器会抛出异常,而在早先的服务器版本中,默认方式是截断字符串并发出一个警告。如果希望数据库引擎采取后一种方式,可以将之修改为ANSI模式。

SET sql_mode = 'ansi';
SELECT @@session..sql_mode;
SHOW WARNINGS;

所以我们可以将列长度的上限设置为足够大,以处理可能存储在列中的最长字符串(由于服务器是在存储字符串时按需分配空间,因此不会因为将varchar列的上限值设置得比较大而浪费资源)。
内建函数quote()会用单引号将整个字符串包含起来,并为字符串本身的单引号/撇号增加转义符。例如:SELECT quote(text_fld) FROM string_tbl;

操作字符串

length()函数返回字符串的字符数。concat()函数可以根据多个独立的数据片段来构建返回字符串。

使用时间数据

猜你喜欢

转载自www.cnblogs.com/sunshine21/p/10540065.html