SQL/MYSQL
[MYSQL] SUBSTRING_INDEX 문자열 분리 함수 사용방법
MySQL에서 문자열을 분리하는 쿼리는 여러 가지 방법으로 수행할 수 있습니다. 일반적으로 문자열을 분리하기 위해 SUBSTRING_INDEX 함수를 사용합니다. 이 함수는 주어진 문자열을 구분자(delimiter)를 기준으로 분리하고 지정된 위치의 부분 문자열을 반환합니다. 다음은 SUBSTRING_INDEX 함수를 사용하여 문자열을 분리하는 쿼리의 예시입니다. 이 예시에서는 쉼표로 구분된 문자열을 분리하여 각각의 부분 문자열을 추출합니다. SELECT SUBSTRING_INDEX('apple,banana,orange', ',', 1) AS part1, SUBSTRING_INDEX(SUBSTRING_INDEX('apple,banana,orange', ',', 2), ',', -1) AS part2, S..
[MYSQL] GROUP_CONCAT 함수 사용 방법
MySQL에서 GROUP_CONCAT() 함수는 그룹 내에서 열 값을 결합하여 하나의 문자열로 반환합니다. 기본적으로 구분자는 쉼표(,)입니다. 구분자를 변경하려면 SEPARATOR 옵션을 사용할 수 있습니다. GROUP_CONCAT() 함수의 기본 문법은 다음과 같습니다. GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) DISTINCT: 중복된 값을 제거합니다. DISTINCT 키워드를 지정하지 않으면 중복된 값도 그대로 출력됩니다. expr: 결합할 열을 지정합니다. 쉼표로 구분하여 여러 개의 열을 지정..
[MYSQL] Coalesce 함수 Null이 아닌 값 반환 사용 방법
MySQL에서 COALESCE 함수는 입력된 값 중 첫 번째로 NULL이 아닌 값을 반환하는 함수입니다. COALESCE 함수는 두 개 이상의 인수를 받을 수 있습니다. 일반적인 사용법은 다음과 같습니다. COALESCE(expr1, expr2, ...) 이 함수는 expr1이 NULL이 아니면 expr1을 반환하고, expr1이 NULL이면 expr2를 반환합니다. 만약 expr1과 expr2 모두 NULL이면, 다음 인수로 넘어가서 NULL이 아닌 값을 반환합니다. 이 과정을 인수가 끝날 때까지 반복합니다. 모든 인수가 NULL이면, COALESCE 함수는 NULL을 반환합니다. 예를 들어, 다음 쿼리는 employees 테이블에서 first_name이 NULL인 경우 last_name을, last_..
[MYSQL] INNER, LEFT, RIGHT, FULL JOIN 쿼리 사용 방법
MySQL에서 JOIN은 두 개 이상의 테이블에서 데이터를 가져와 연결하는 방법입니다. JOIN을 사용하면 여러 테이블의 데이터를 하나의 테이블처럼 조회할 수 있습니다. MySQL에서는 다양한 JOIN 방법을 제공합니다. 1. INNER JOIN: INNER JOIN은 두 개의 테이블에서 공통된 값을 가지는 행만을 연결하는 방법입니다. SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; 위 쿼리는 table1과 table2에서 공통된 column_name 값을 가지는 행만을 가져와 column_name(s)를 반환합니다. 2. LEFT JOIN: LEFT JOIN은 첫 번째 테이블의 모..
[MYSQL] Copy table, Insert Into / 테이블 복사 쿼리
MySQL에서 테이블을 복사하는 쿼리는 CREATE TABLE 문을 사용하여 수행할 수 있습니다. 복사하려는 테이블의 이름, 구조 및 데이터 유형을 모두 새 테이블에 복사합니다. 아래는 MySQL에서 테이블을 복사하는 데 사용되는 기본 쿼리입니다. CREATE TABLE new_table_name LIKE old_table_name; 위의 쿼리에서 new_table_name은 새로 생성 할 테이블 이름을 나타내고, old_table_name은 복사 할 원본 테이블 이름을 나타냅니다. 새로운 테이블을 생성한 후에는 INSERT INTO 문을 사용하여 데이터를 새 테이블에 삽입 할 수 있습니다. INSERT INTO new_table_name SELECT * FROM old_table_name; 위의 쿼리에..
[MYSQL] Date_add 함수 사용 방법
MySQL에서는 DATE_ADD() 함수를 사용하여 날짜에 일, 시간, 분, 초 등을 더할 수 있습니다. DATE_ADD() 함수는 다음과 같은 구문을 가집니다. DATE_ADD(date, INTERVAL expr unit) date: 날짜 또는 시간 값을 나타내는 유효한 MySQL 표현식입니다. 예를 들어 NOW() 함수를 사용하여 현재 날짜와 시간을 나타낼 수 있습니다. expr: 더할 값입니다. 음수 값을 사용하면 날짜나 시간을 빼도록 할 수 있습니다. unit: expr에 지정된 값의 단위입니다. YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 등이 가능합니다. 예를 들어, 현재 날짜와 시간에 3일을 더하려면 다음과 같이 작성합니다. SELECT DATE_ADD(NOW(), ..
[MYSQL] With 절 사용 방법
MySQL에서 'WITH'절은 서브쿼리를 만들고 재사용 가능한 공통 테이블 표현식(Common Table Expression, CTE)을 정의하는 방법입니다. WITH절을 사용하여 쿼리를 단순화하고 가독성을 높일 수 있습니다. 다음은 WITH절을 사용하는 기본적인 구문입니다. WITH [cte_name] AS ( SELECT [column_name(s)] FROM [table_name] WHERE [condition] ) SELECT [column_name(s)] FROM [table_name] JOIN [cte_name] ON [join_condition] WHERE [condition]; 위 구문에서 cte_name은 임의의 이름으로, 서브쿼리에서 반환된 결과를 참조할 수 있는 임시 테이블의 이름입니..
[MYSQL] Create Temp Table / 임시 테이블 생성 쿼리
MySQL에서 임시 테이블을 생성하려면 CREATE TEMPORARY TABLE 문을 사용합니다. 임시 테이블은 현재 세션에서만 유지되며 세션이 종료되면 자동으로 삭제됩니다. 다음은 임시 테이블을 생성하고 데이터를 삽입하는 샘플 쿼리입니다. CREATE TEMPORARY TABLE temp_table ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255), age INT, PRIMARY KEY (id) ); INSERT INTO temp_table (name, age) VALUES ('John', 25); INSERT INTO temp_table (name, age) VALUES ('Jane', 30); 위의 쿼리에서는 temp_table이라는 임시 테이블을 생성하고..
[MYSQL] Truncate Table / 테이블 전체 데이터 삭제 사용 방법
MySQL에서 테이블의 데이터를 전체적으로 지우는 방법에는 여러 가지가 있지만, 가장 간단한 방법은 "TRUNCATE TABLE" 구문을 사용하는 것입니다. 이 구문을 사용하면 테이블의 모든 데이터를 한 번에 지울 수 있습니다. 다음은 "TRUNCATE TABLE" 구문을 사용하여 테이블의 모든 데이터를 지우는 예시입니다: TRUNCATE TABLE table_name; 여기서 "table_name"은 데이터를 지우려는 테이블의 이름입니다. 예를 들어, "customers"라는 이름의 테이블의 모든 데이터를 지우려면 다음과 같은 쿼리를 실행합니다: TRUNCATE TABLE customers; 이 작업은 테이블의 데이터를 모두 영구적으로 삭제합니다. 따라서, 이 작업을 수행하기 전에 데이터를 백업하거나 ..
[MYSQL] Drop Table / 테이블 삭제 쿼리
테이블을 삭제하기 위해서는 "DROP TABLE" 구문을 사용합니다. DROP TABLE table_name; "table_name"은 삭제하려는 테이블의 이름입니다. 예를 들어, "customers"라는 이름의 테이블을 삭제하려면 다음과 같은 쿼리를 실행합니다: DROP TABLE customers; 이 작업은 테이블과 해당 데이터를 영구적으로 삭제합니다. 따라서, 이 작업을 수행하기 전에 데이터를 백업하거나 삭제 작업에 대해 신중하게 검토해야 합니다.