查询语句:
列重命名:SELECT title AS name。将查询出的titile列重命名为name列
SELECT字句使用表达式取代属性:SELECT title AS name, length*0.016667 AS lengthInHours。这个SELECT将查询出的电影时间,由以分钟做单位变成以小时做单位
SELECT语句中将常量作为表达式:SELECT title AS name, length*0.016667 AS lengthInHours, 'hrs' AS inHours。这个语句相比上一个,在最后增加了一列inHours,值都为字符串'hrs',表示第二列的单位。
WHERE语句中对字符串连接运算:'foo' || 'bar'。结果为'foobar'
SQL使用普通的计数法表示实数:-12.34, 1.23E45
模式匹配:暂时跳过,因为作业里面还没用到
NULL:和任何值进行算术运算结果仍为NULL,和任何值进行比较运算,结果为UNKNOWN值。NULL不是一个常量,不能直接将其作为操作数,但是可以将其放在表达式中
排序输出:ORDER BU<list of attributes>,默认为升序,通过给某一属性增加DESC关键字变为降序。ORDER子句放在WHERE和其他语句(包括GROUP BY 和 HAVING)后面,而且可以使用SELECT语句中没有包含的属性进行排序。
FROM子句中的子查询:FROM子句中可以将子查询当作关系使用,用()括起来,在右括号外给这个子查询起一个名字
DISTINCT:SELECT语句默认保留重复的元组,消除重复需要在SELECT后面加DISTINCT,但是消除重复代价极高。
需要注意的是,UNION,INTERSECT和EXCEPT中默认消除重复,若要保留重复,应当在这些关键字后面加ALL。
HAVING子句:是配合GROUP BY的,如果一个分组中,没有满足HAVING条件的元组,那么这个分组会被整个去掉。
约束和触发器:
外键约束声明:在CREATE TABLE时,在属性声明后加REFERENCES <表名>(<属性名>)。也可以单独一行声明FOREIGN KEY(<属性名>) REFERENCES <表名>(<属性名>).