relation 을 매우 쉽게 생각하면 그냥 collection of tuples having same attributes 이다.
Relation 을 표시하는데 Table 을 사용한다.
Row == Tuple
Column == Attribute
Degree of a relation
Cardinality of a relation
"SQL 레벨업" 책에서는 조건 분기를 UNION 으로 하고 있다면, CASE 구문을 사용하여 처리하도록 고쳐야한다고 한다.
SELECT p_name AS name FROM programmer
UNION
SELECT s_name AS name FROM student;
오라클에서만 지원되고, MySQL 에서는 지원되지 않는다고 한다.
SELECT p_name AS name FROM programmer
INTERSECT
SELECT s_name AS name FROM student;
오라클에서만 지원되고, MySQL 에서는 지원되지 않는다고 한다.
SELECT p_name AS name FROM programmer
MINUS
SELECT s_name AS name FROM student;
SELECT (column names) FROM (table name)
테이블에서 정보를 가져올 때 * 이 아니라, 가져올 attribute 를 마음껏 정할 수 있는게 projection 이다.
SELECT * FROM (table name) WHERE (unary operator)
WHERE 문을 쓸 수 있다는게 Selection 이다.
CROSS JOIN
이 Cartesian Product 연산이다.Relational operator 를 통해 연산한 결과는 다시 relation 이다!