Special Characters
/* */ inline comments --, # line comments
; allows query chaining
', +, || allows string concatenation char() strings without quotes Example: SELECT * FROM users WHERE name = '+char(27) OR 1=1
Special Statements
- Union
두개 혹은 그 이상의 SELECT문을 결합할 때 사용UNION 쓸 조건
- 각 statement문에서 select되는 column의 수가 같아야한다
- 첫번째 SELECT문에 있는 첫번째 열의 데이터 유형은, 두(~)번째 SELECT문에 있ㄴ느 첫번째 열의 데이터 유형과 일치해야 함
- Joins
관련 column을 기준으로 2개 이상의 테이블에서 행을 결합하는 데 사용(INNER) JOIN
Returns records that have matching values in both tablesselect * from table1 INNER JOIN table2 table1.a = table2.b; select table1.*, table2.* from table1, table2 where table.a = table2.b;
사진을 보다시피, 교집합을 말한다. 즉, 두 테이블(table1, table2)이 모두 가지고 있는 데이터만 검색된다.
LEFT (OUTER) JOIN
Returns all records from the left table, and the matched records from the right tableselect * from table1 a LEFT JOIN table2 table1.a = table2.b; select table1.*, table2.* from table1, table2 where table.a = table2.b(+);
table1(LEFT)의 모든 데이터와 table1과 table2의 중복된 값이 검색된다
RIGHT (OUTER) JOIN
Returns all records from the right table, and the matched records from the left table
FULL (OUTER) JOIN
Returns all records when there is a match in either left or right tableselect * from table1 a FULL JOIN table2 table1.a = table2.b;
합집합 -> 모든 데이터가 검색됨
사진 출처