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.
SQL) 순위함수(RANK, DENSE_RANK, ROW_NUMBER)
순위 함수 RANK(), DENSE_RANK(), ROW_NUMBER() RANK() : 순위에 대해서 중복되는 값들에 대해선 동일한 순위로 표시를 한다. 그리고 다음에 나오는 수의 순위는 이전에 중복되었던 값들의 수만큼 올라간다. CREATE TABLE Study ( Value INT ); INSERT INTO Study VALUES (100), (300), (300), (200), (300), (100), (200), (400); SELECT Value, RANK() OVER (ORDER BY Value ASC) AS 'Rank' FROM Study; 위 예시처럼 중복되는 값들에 대해선 동일한 순위가 부여가 되었고, 그 다음 값에 대한 순위는 이전에 중복된 값들의 개수만큼 올라간 순위가 부여되었다. ..
2021. 9. 3.