https://academy.elice.io/courses/74413/lectures/613436/lecturepages/6830298

SQL 실력테스트

Q. SQL 구문의 실행순서에 대해 옳은것은?
A. FROM- WHERE -GROUP BY - HAVING -SELECT - ORDER BY
: FROM이 가장 첫번째, SELECT는 거의 맨 마지막에 나오고, ORDER BY 가 있다면 ORDER BY가 가장 끝이다.

Q. 다음 중 결과가 다른것을 고르시오

-- create a table

CREATE TABLE A(
DATA1 INT,
CODE VARCHAR(5),
COL1 INT,
COL2 INT);

INSERT INTO A VALUES 
(1, 'A',100, 350),
(2, 'A',130, 300),
(3, 'B',150, 400),
(4, 'A',200, 300),
(5, 'B',250, 200),
(6, 'A',300, 150);

SELECT * FROM A; 

#1
SELECT * FROM A WHERE 1=1 AND CODE IN ('A','B') AND COL1 BETWEEN 200 AND 400;

#2
SELECT * FROM A WHERE 1=1 AND (CODE='A' AND 200 BETWEEN COL1 AND COL2) 
OR (CODE='B' AND 200 BETWEEN COL1 AND COL2);

#3
SELECT * FROM A WHERE 1=1 AND 200 BETWEEN COL1 AND COL2;

#4
SELECT * FROM A WHERE 1=1 AND COL1 <=200 AND COL2 >=200;

  • WHERE 1=1 혹은 WHERE 2=2 등은 항상 참을 의미한다. 질의에서 2가지 이상의 조건이 필요할 때 주로 쓰는 문법이다.
    #1 예제에서의 결과 혼자 3 rows로 구성되어 있으므로 정답
    SELECT * FROM A WHERE 1=1 AND 200 BETWEEN COL1 AND COL2; 용법이 특이한데,
    COL1은 200이하, COL2는 200 이상인걸 찾으면 된다.

Q. 다음 쿼리문 빈칸에 들어가면 오류가 생기는 구문은?


SELECT () FROM DUAL;

  • NULL<1

    NULL값과 사칙연산은 무시되는 요소이다. NULL <1 은 비교연산자로 비교가 불가함 .

profile
데이터분석

0개의 댓글