MySQL) IF, IFNULL, NULLIF, CASE ~ WHEN ~ END
IF, IFNULL, NULLIF, CASE ~ WHEN ~ END [제어 흐름 함수] 설명 * IF ( , , ) 이 참이면 이 반환이 되고, 이 거짓이면 이 반환이 된다. SELECT IF (100 > 200, 'True', 'False'); # False가 출력이 될 것 이다. SELECT IF (200 > 100, 'True', 'False'); # True가 출력이 될 것 이다. 이 100 > 200 인 선언문은 거짓 이므로 이 출력되어 'False'가 출력이 되었고, 수식이 200 > 100 인 선언문은 참 이므로 이 출력되어 'True'가 출력이 되었다. * IFNULL ( , ) 이 NULL이 아니면 이 반환이 되고, NULL이면 가 반환이 된다. SELECT IFNULL (NULL, 'T..
2022. 1. 11.
MySQL) WITH절을 이용한 비재귀적 CTE
WITH절 (비재귀적 CTE) Non Recursive CTE(Common Table Expression) 설명 아래와 같이 테이블들이 생성되고 데이터들이 삽입되었다고 하자. CREATE TABLE department ( dept_num INT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL ); INSERT INTO department VALUES (1, 'A'), (2, 'B'), (3, 'C'); CREATE TABLE employee ( emp_id INT NOT NULL PRIMARY KEY, dept_num INT NOT NULL, name VARCHAR(20), salary INT NULL, FOREIGN KEY (dept_num) REFERENCES d..
2022. 1. 4.
MySQL) ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDTAE 중복된 Key 입력 시 이렇게 처리 해 주세요 설명 CREATE TABLE users ( id INT NOT NULL PRIMARY KEY, name VARCHAR(20), addr VARCHAR(30) ); INSERT INTO users VALUES (1111, 'David', 'Songtan'), (2222, 'Jihoon', 'Seoul'), (3333, 'Yujin', 'Anyang'); 위와 같이 테이블 생성 및 data INSERT 를 하였다. 당연히 알고있는 것 이지만 중복되는 id값을 가지는 data의 삽입은 아래와 같이 불가능하다. 하지만 아래와 같은 방법들을 통해 중복되는 Primary key 값을 가지는 data에 대해서 처리 방식을 지정할..
2022. 1. 4.
MySQL) 샘플 데이터 테이블 생성
샘플 데이터 테이블 생성 CREATE TABLE SELECT 설명 CREATE TABLE emp ( id INT NOT NULL PRIMARY KEY, name VARCHAR(30) NOT NULL, age INT NULL ); INSERT INTO emp VALUES (11111, 'David', 34), (22222, 'Jiyeon', 29), (33333, 'Roy', 31), (44444, 'John', 23); 위와 같은 테이블을 생성한 뒤 4개의 데이터를 집어 넣었다. emp 테이블에는 아래와 같이 data들이 들어있게 된다. 만약, 이 테이블에서 name COLUMN 만 따로 가져와서 emp_names 테이블을 따로 만들고 싶다면 어떻게 해야할까? 아래와 같이 하면 된다. [첫 번째 방법] ..
2022. 1. 4.
MySQL) 층간 합계 (ROLLUP)
MySQL) WITH ROLLUP GROUP BY 절과 함께 사용되는 총합 또는 층간 합계 함수 [CREATE TABLE] CREATE TABLE price ( Category1 VARCHAR(10), Category2 VARCHAR(10), Cnt INT ); 위와 같은 TABLE 을 만들었다. [INSERT INTO price] INSERT INTO price VALUES ('Book', 'A', 12), ('Book', 'B', 8), ('Book', 'C', 23), ('Clothes', 'A', 9), ('Clothes', 'B', 11), ('Clothes', 'C', 7), ('Elec', 'A', 52), ('Elec', 'B', 19); price TABLE에 위와 같은 data들을 삽입..
2021. 12. 28.