SQL study [21.09.02]
본문 바로가기
Data Base/Daily_study

SQL study [21.09.02]

by 조훈이 2021. 9. 2.

SQL study [21.09.02]


AS 의 생략

SELECT A.Name NAME FROM S0902_2 A;			# AS 생략
SELECT A.Name AS NAME FROM S0902_2 AS A;	# AS 생략 X

  AS 를 생략하여도 위와 같이 ALIAS를 지을 수 있다는 것을 알았다. 

 

WHERE 조건 내에서 같은 Table 을 참조할 때 생기는 오류

DELETE FROM Person 
WHERE Id NOT IN (
    SELECT MIN(Id)
    FROM Person 
    GROUP BY Email
);

  위와 같은 경우 Update 하려는 Table 과 WHERE 조건 내의 Table 과 같은 Table 을 사용한다. 이 경우 

이와 같은 오류가 발생할 수 있다. 이런 경우에는 SUB QUERY 를 한번 더 감싸서 해결할 수 있다.

DELETE FROM Person 
WHERE Id NOT IN (
    SELECT Sub.Minval FROM (
        SELECT MIN(Id) AS Minval
        FROM Person
        GROUP BY Email
        ) AS Sub
    );

 

INTERVAL n DAY

#잘못된 표현
T1.Date = T2.Date + 1

#맞는 표현
T1.Date = T2.Date + INTERVAL 1 DAY

  두 데이터가 하루가 차이나는 경우를 위와 같이 잘못된 표현으로 하면 에러가 발생한다. 날짜끼리 원하는 날만큼 차이나는 케이스를 검사할 땐 INTERVAL n DAY 를 사용해야 한다.


오늘의 한 마디 : SQLD 를 위한 SQL공부가 아닌, SQL 공부를 흥미있게 하다보니 SQLD 는 가볍게 따는걸 원한다.

728x90

'Data Base > Daily_study' 카테고리의 다른 글

SQL study [21.09.03]  (0) 2021.09.03
SQL study [21.08.25]  (0) 2021.08.25
SQL study [21.08.24]  (0) 2021.08.24
SQL study [21.08.23]  (0) 2021.08.24
SQL study [21.08.19]  (0) 2021.08.19

댓글