시도의 이름을 큰 지역으로 구분하는 CASE 식
SELECT name,address,
CASE WHEN address = '서울시' THEN '경기'
WHEN address = '인천시' THEN '경기'
WHEN address = '부산시' THEN '영남'
WHEN address = '속초시' THEN '관동'
WHEN address = '서귀포시' THEN '호남'
ELSE NULL
END AS district
FROM Address;
결과
+--------+---------+----------+
| name | address | district |
+--------+---------+----------+
| A | 서울시 | 경기 |
| B | 인천시 | 경기 |
| C | 부산시 | 영남 |
| D | 속초시 | 관동 |
| E | 서귀포시 | 호남 |
| F | 대전시 | NULL |
+--------+---------+----------+
SELECT * FROM Address
UNION
SELECT * FROM Address2 ;
+--------+---------+------+------+--------------+
| name | address | age | sex | phone_number |
+--------+---------+------+------+--------------+
| A | 서울시 | 30 | M | 123-456-7890 |
| B | 인천시 | 25 | F | 234-567-8901 |
| C | 부산시 | 35 | M | 345-678-9012 |
| D | 대구시 | 40 | M | 456-789-0123 |
| E | 대전시 | 28 | F | 567-890-1234 |
| F | 광주시 | 32 | F | 678-901-2345 |
+--------+---------+------+------+--------------+
SELECT * FROM Address
INTERSECT
SELECT * FROM Address2 ;
+--------+---------+------+------+--------------+
| name | address | age | sex | phone_number |
+--------+---------+------+------+--------------+
| B | 인천시 | 25 | F | 234-567-8901 |
| D | 대구시 | 40 | M | 456-789-0123 |
+--------+---------+------+------+--------------+
SELECT * FROM Address
EXCEPT
SELECT * FROM Address2 ;
+--------+---------+------+------+--------------+
| name | address | age | sex | phone_number |
+--------+---------+------+------+--------------+
| A | 서울시 | 30 | M | 123-456-7890 |
| C | 부산시 | 35 | M | 345-678-9012 |
+--------+---------+------+------+--------------+
SELECT address, COUNT(*) OVER(PARTITION BY address)
FROM Address2 ;
+---------+----------+
| address | count |
+---------+----------+
| 서울시 | 3 |
| 서울시 | 3 |
| 서울시 | 3 |
-----------------------
| 인천시 | 1 |
-----------------------
| 부산시 | 2 |
| 부산시 | 2 |
+---------+----------+
윈도우 함수 종류는 아래 블로그를 참고하면 좋을 것 같습니다 !
[SQL] 윈도우 함수 (WINDOW FUNCTION)
기본적으로 SQL 갱신 작업은 3 종류로 분류한다.
INSERT INTO [테이블] ([필드1],[필드2],[필드3] ... )
VALUES([값1],[값2],[값3]);
INSERT INTO [테이블] ([필드1],[필드2],[필드3] ... )
VALUES([A값1],[A값2],[A값3]),
([B값1],[B값2],[B값3]),
([C값1],[C값2],[C값3]);
DELETE FROM [테이블 이름];
DELETE FROM [테이블 이름] WHERE [필드]=[값];
UPDATE [테이블 이름] SET [필드 이름] = [값];
1) 필드를 쉼표로 구분해서 나열
UPDATE [테이블 이름] SET [필드 이름1] = [값1],[필드 이름2] = [값2] WHERE [필드 이름3] = [값3];
2) 필드를 괄호로 감싸서 나열 (DBMS에 따라 지원하지 않을 수 있음)
UPDATE [테이블 이름] SET ([필드 이름1],[필드 이름2]) = ([값1],[값2]) WHERE [필드 이름3] = [값3];