MySQL
-
1. 기본키 (Primary Key) ✅ Primary Key, 기본키란? : SQL 데이터베이스에서 특정 레코드를 유일하게 식별하기 위해 사용되는 필드 또는 필드의 집합. : Primary Key는 테이블에서 각 레코드를 식별하는 데 사용되며, 테이블의 각 레코드에는 Primary Key 값이 반드시 있어야 함. ✅ Primary Key 특징 👉 각 레코드에 대해 고유하다.(Unique) 👉 NULL 값이 허용 안됨(NOT NULL) 👉 레코드를 식별하는 데 사용 , 테이블당 하나의 기본키만 지정 가능 ✅ Primary Key 생성 방법 ✔️ 기본키 생성 방법1 CREATE TABLE users( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100), p..
SQL | MySQL | 기본키, 고유키, 외래키1. 기본키 (Primary Key) ✅ Primary Key, 기본키란? : SQL 데이터베이스에서 특정 레코드를 유일하게 식별하기 위해 사용되는 필드 또는 필드의 집합. : Primary Key는 테이블에서 각 레코드를 식별하는 데 사용되며, 테이블의 각 레코드에는 Primary Key 값이 반드시 있어야 함. ✅ Primary Key 특징 👉 각 레코드에 대해 고유하다.(Unique) 👉 NULL 값이 허용 안됨(NOT NULL) 👉 레코드를 식별하는 데 사용 , 테이블당 하나의 기본키만 지정 가능 ✅ Primary Key 생성 방법 ✔️ 기본키 생성 방법1 CREATE TABLE users( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100), p..
2023.04.01 -
00. 서브쿼리(Subquery)란? ✅ 서브쿼리란? 👉 서브쿼리(Subquery)란 다른 쿼리 내부에 포함되어 있는 SELECT 문을 의미 👉 서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 함 👉 서브쿼리는 내부쿼리(inner query) 라고도 함 👉 서브쿼리는 반드시 괄호 안에 있어야 함 👉 복잡한 JOIN이나 UNION을 대체할 수 있음 👉 메인쿼리 안에서 SELECT, FROM, WHERE, HAVING, 또는 IN 절과 함께 사용 ✅ 서브쿼리의 예 SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); ✅ 예제 테이블들 -- customers 테이블 생성 DROP TABLE customers; CREATE TABLE cus..
SQL | MySQL | 서브쿼리 (Subquery)00. 서브쿼리(Subquery)란? ✅ 서브쿼리란? 👉 서브쿼리(Subquery)란 다른 쿼리 내부에 포함되어 있는 SELECT 문을 의미 👉 서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 함 👉 서브쿼리는 내부쿼리(inner query) 라고도 함 👉 서브쿼리는 반드시 괄호 안에 있어야 함 👉 복잡한 JOIN이나 UNION을 대체할 수 있음 👉 메인쿼리 안에서 SELECT, FROM, WHERE, HAVING, 또는 IN 절과 함께 사용 ✅ 서브쿼리의 예 SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); ✅ 예제 테이블들 -- customers 테이블 생성 DROP TABLE customers; CREATE TABLE cus..
2023.03.21 -
✅ 예제 테이블 생성 CREATE TABLE employees ( employee_id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), department_id INT ); CREATE TABLE departments ( department_id INT PRIMARY KEY, department_name VARCHAR(50) ); INSERT INTO employees (employee_id, first_name, last_name, department_id) VALUES (1, 'John', 'Doe', 1), (2, 'Jane', 'Smith', 2), (3, 'Bob', 'Johnson', 1), (4, 'Alice', 'Brown'..
SQL | MySQL | 테이블 집합 연산 - UNION, UNION ALL 등✅ 예제 테이블 생성 CREATE TABLE employees ( employee_id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), department_id INT ); CREATE TABLE departments ( department_id INT PRIMARY KEY, department_name VARCHAR(50) ); INSERT INTO employees (employee_id, first_name, last_name, department_id) VALUES (1, 'John', 'Doe', 1), (2, 'Jane', 'Smith', 2), (3, 'Bob', 'Johnson', 1), (4, 'Alice', 'Brown'..
2023.03.15 -
01. MySQL에서의 JOIN MySQL에서 JOIN은 두 개 이상의 테이블에서 데이터를 검색하는 데 사용됨. 두 개 이상의 테이블의 자료를 결합 ✅JOIN의 종류 ① (INNER) JOIN 👉 EQUI JOIN : 주어진 (열에 대한) 조인 조건을 만족하는 자료(행) - 양쪽 모두에 값이 있는 행(NOT NULL) 반환 - 만약 동일 조인 내에 있는 컬럼들이 동일한 이름을 가지고 있으면, USING 함수를 사용할 수 있음. 👉 CROSS JOIN - 두 개 이상의 테이블에서 모든 조합을 반환 - 왼쪽 테이블의 모든 행이 오른쪽 테이블의 모든 행과 결합 👉 NATURAL JOIN - EQUI JOIN의 한 유형으로 조인 구문이 조인된 테이블에서 동일한 컬럼명을 가진 2개의 테이블에서 모든 컬럼들을 비교..
SQL | MySQL | JOIN - inner, left, right01. MySQL에서의 JOIN MySQL에서 JOIN은 두 개 이상의 테이블에서 데이터를 검색하는 데 사용됨. 두 개 이상의 테이블의 자료를 결합 ✅JOIN의 종류 ① (INNER) JOIN 👉 EQUI JOIN : 주어진 (열에 대한) 조인 조건을 만족하는 자료(행) - 양쪽 모두에 값이 있는 행(NOT NULL) 반환 - 만약 동일 조인 내에 있는 컬럼들이 동일한 이름을 가지고 있으면, USING 함수를 사용할 수 있음. 👉 CROSS JOIN - 두 개 이상의 테이블에서 모든 조합을 반환 - 왼쪽 테이블의 모든 행이 오른쪽 테이블의 모든 행과 결합 👉 NATURAL JOIN - EQUI JOIN의 한 유형으로 조인 구문이 조인된 테이블에서 동일한 컬럼명을 가진 2개의 테이블에서 모든 컬럼들을 비교..
2023.03.15 -
01. Window Functions - 윈도우 함수 MySQL 8.0부터 Window Functions이 도입됨 OVER( ) 절을 사용해 지정된 윈도우 프레임에서 연산을 수행하는 함수 OVER ( [PARTITION BY ] [ORDER BY [ASC|DESC], ... ] [] ) 은 윈도우 함수를 넣으면 됨. PARTITION BY은 GROUP BY와 같은 기능을 함 👉 대표적인 윈도우 함수들 ROW_NUMBER( ) : 각 행에 일련번호 부여 RANK( ) : 각 행의 순위를 할당(중복이 있을 경우 중복 값은 같은 순위 부여, 1,1,3등으로 넘어감) DENSE_RANK( ) : 각 행의 순위를 할당(중복가능, 1, 1, 2,3... 순차적으로 순위부여) SUM( ), AVG( ), MIN( )..
SQL | MySQL | Window Functions (2) - 집계 함수01. Window Functions - 윈도우 함수 MySQL 8.0부터 Window Functions이 도입됨 OVER( ) 절을 사용해 지정된 윈도우 프레임에서 연산을 수행하는 함수 OVER ( [PARTITION BY ] [ORDER BY [ASC|DESC], ... ] [] ) 은 윈도우 함수를 넣으면 됨. PARTITION BY은 GROUP BY와 같은 기능을 함 👉 대표적인 윈도우 함수들 ROW_NUMBER( ) : 각 행에 일련번호 부여 RANK( ) : 각 행의 순위를 할당(중복이 있을 경우 중복 값은 같은 순위 부여, 1,1,3등으로 넘어감) DENSE_RANK( ) : 각 행의 순위를 할당(중복가능, 1, 1, 2,3... 순차적으로 순위부여) SUM( ), AVG( ), MIN( )..
2023.03.10 -
01. Window Functions - 윈도우 함수 MySQL 8.0부터 Window Functions이 도입됨 OVER( ) 절을 사용해 지정된 윈도우 프레임에서 연산을 수행하는 함수 OVER ( [PARTITION BY ] [ORDER BY [ASC|DESC], ... ] [] ) 은 윈도우 함수를 넣으면 됨. PARTITION BY은 GROUP BY와 같은 기능을 함 👉 대표적인 윈도우 함수들 ROW_NUMBER( ) : 각 행에 일련번호 부여 RANK( ) : 각 행의 순위를 할당(중복이 있을 경우 중복 값은 같은 순위 부여, 1,1,3등으로 넘어감) DENSE_RANK( ) : 각 행의 순위를 할당(중복가능, 1, 1, 2,3... 순차적으로 순위부여) SUM( ), AVG( ), MIN( )..
SQL | MySQL | Window Functions (1) - 데이터 순위01. Window Functions - 윈도우 함수 MySQL 8.0부터 Window Functions이 도입됨 OVER( ) 절을 사용해 지정된 윈도우 프레임에서 연산을 수행하는 함수 OVER ( [PARTITION BY ] [ORDER BY [ASC|DESC], ... ] [] ) 은 윈도우 함수를 넣으면 됨. PARTITION BY은 GROUP BY와 같은 기능을 함 👉 대표적인 윈도우 함수들 ROW_NUMBER( ) : 각 행에 일련번호 부여 RANK( ) : 각 행의 순위를 할당(중복이 있을 경우 중복 값은 같은 순위 부여, 1,1,3등으로 넘어감) DENSE_RANK( ) : 각 행의 순위를 할당(중복가능, 1, 1, 2,3... 순차적으로 순위부여) SUM( ), AVG( ), MIN( )..
2023.03.09 -
01. GROUP BY 절 GROUP BY절은 특정 컬럼을 기준으로 그룹화하여 테이블에 존재하는 행들을 그룹별로 구분해 준다. 그룹 함수를 쓰되, 어떤 컬럼값을 기준으로 그룹 함수를 적용할지 기술해야 함. GROUP BY Syntax SELECT column names FROM table_references [WHERE where_condition ] [GROUP BY {column name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] 1) 그룹 함수 그룹 함수는 여러 개의 레코드를 하나의 그룹으로 묶어서 계산을 수행 ➡️MySQL에서 자주 사용되는 그룹 함수들(NULL값은 집계X) COUNT( ) : 그룹의 레..
SQL | MySQL | 그룹에 따른 집계 - GROUP BY, HAVING01. GROUP BY 절 GROUP BY절은 특정 컬럼을 기준으로 그룹화하여 테이블에 존재하는 행들을 그룹별로 구분해 준다. 그룹 함수를 쓰되, 어떤 컬럼값을 기준으로 그룹 함수를 적용할지 기술해야 함. GROUP BY Syntax SELECT column names FROM table_references [WHERE where_condition ] [GROUP BY {column name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] 1) 그룹 함수 그룹 함수는 여러 개의 레코드를 하나의 그룹으로 묶어서 계산을 수행 ➡️MySQL에서 자주 사용되는 그룹 함수들(NULL값은 집계X) COUNT( ) : 그룹의 레..
2023.03.09 -
01. 현재 날짜, 시간 반환 함수 CURRENT_DATE( ) , CURDATE( ) : 현재 날짜 반환 CURRENT_TIME( ), CURTIME( ) : 현재 시간 반환 CURRENT_TIMESTAMP( ), NOW( ) : 현재 시간과 날짜 반 SELECT CURDATE(), CURTIME(), NOW(); 02. 특정 날짜, 시간정보 반환 · 예제 테이블 CREATE TABLE orders ( order_id INT NOT NULL AUTO_INCREMENT, order_date DATE NOT NULL, order_time TIME NOT NULL, PRIMARY KEY (order_id) ); INSERT INTO orders (order_date, order_time) VALUES ('2..
SQL | MySQL | 내장 함수(2) - 날짜, 시간 함수01. 현재 날짜, 시간 반환 함수 CURRENT_DATE( ) , CURDATE( ) : 현재 날짜 반환 CURRENT_TIME( ), CURTIME( ) : 현재 시간 반환 CURRENT_TIMESTAMP( ), NOW( ) : 현재 시간과 날짜 반 SELECT CURDATE(), CURTIME(), NOW(); 02. 특정 날짜, 시간정보 반환 · 예제 테이블 CREATE TABLE orders ( order_id INT NOT NULL AUTO_INCREMENT, order_date DATE NOT NULL, order_time TIME NOT NULL, PRIMARY KEY (order_id) ); INSERT INTO orders (order_date, order_time) VALUES ('2..
2023.03.09 -
MySQL에서는 다양한 기능의 내장 함수가 있음. 대표적인 내장함수는 아래와 같다. 1. 문자열 함수 2. 수학 함수 3. 날짜와 시간 함수 00. 사용 예제 테이블 원래는 예제 테이블을 하나 하나 데이터 제공 사이트에서 찾았는데,,, 요즘 ChatGPT가 많이 뜨길래 혹시 몰라서 사용해봤다^~^ https://chat.openai.com/chat 에 접속 후 Regenerate response 창에'MySQl에서 수학 함수, 문자열 함수를 모두 다룰 수 있는 20행짜리 예제 테이블 생성쿼리 알려줘' 라고 치면CREATE문과 INSERT INTO문을 날려준다...! CREATE TABLE func_ex( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age..
SQL | MySQL | 내장 함수(1) - 숫자, 문자와 관련된 함수MySQL에서는 다양한 기능의 내장 함수가 있음. 대표적인 내장함수는 아래와 같다. 1. 문자열 함수 2. 수학 함수 3. 날짜와 시간 함수 00. 사용 예제 테이블 원래는 예제 테이블을 하나 하나 데이터 제공 사이트에서 찾았는데,,, 요즘 ChatGPT가 많이 뜨길래 혹시 몰라서 사용해봤다^~^ https://chat.openai.com/chat 에 접속 후 Regenerate response 창에'MySQl에서 수학 함수, 문자열 함수를 모두 다룰 수 있는 20행짜리 예제 테이블 생성쿼리 알려줘' 라고 치면CREATE문과 INSERT INTO문을 날려준다...! CREATE TABLE func_ex( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age..
2023.03.08 -
MySQL은 대부분의 프로그래밍 언어에서 지원하는 기본적인 연산자를 모두 제공. 이러한 연산자를 사용하여 데이터를 추출하고 처리할 수 있다. 01. 산술 연산자(사칙연산) · + , - , * , / : 더하기, 빼기, 곱하기, 나누기 · DIV : 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 소수 부분을 버림. · % OR MOD : 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후 , 그 나머지를 반환. SELECT 10 + 3, 10 - 7, 10 * 3, 10 / 3, 10 DIV 3, 10 % 3, 10 MOD 3 ; ※ 문자열에 사칙연산을 가하면 0으로 인식 SELECT 10 + "ABC", 10 - "ABC", 10 * "ABC" ; ※ 숫자로 구성된 문자열은 숫자로 자동인식 SELECT '1' +..
SQL | MySQL | SELECT(2) - 연산자(산술, 비교, 논리)MySQL은 대부분의 프로그래밍 언어에서 지원하는 기본적인 연산자를 모두 제공. 이러한 연산자를 사용하여 데이터를 추출하고 처리할 수 있다. 01. 산술 연산자(사칙연산) · + , - , * , / : 더하기, 빼기, 곱하기, 나누기 · DIV : 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 소수 부분을 버림. · % OR MOD : 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후 , 그 나머지를 반환. SELECT 10 + 3, 10 - 7, 10 * 3, 10 / 3, 10 DIV 3, 10 % 3, 10 MOD 3 ; ※ 문자열에 사칙연산을 가하면 0으로 인식 SELECT 10 + "ABC", 10 - "ABC", 10 * "ABC" ; ※ 숫자로 구성된 문자열은 숫자로 자동인식 SELECT '1' +..
2023.03.07 -
SELECT문을 사용하여 테이블의 데이터를 선택할 수 있다. SELECT [ALL | DISTINCT | DISTINCTROW] select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_l..
SQL | MySQL | SELECT(1) - 간단한 데이터 조작SELECT문을 사용하여 테이블의 데이터를 선택할 수 있다. SELECT [ALL | DISTINCT | DISTINCTROW] select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_l..
2023.03.07 -
01. UPDATE - 주어진 조건의 행 수정 MySQL에서는 UPDATE 문을 사용하여 행의 내용을 수정할 수 있음 UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 1) 예제 데이터 전처리 및 테이블 생성 · 소상공인시장진흥공단의 상가(상권) 정보 데이터 사용 https://www.data.go.kr/data/15083033/fileData.do 소상공인시장진흥공단_상가(상권)정보_20221231 영업 중인 전국 상가업소 데이터를 제공합니다. (상호명, ..
SQL | MySQL | 데이터 수정, 삭제 - Update, Delete01. UPDATE - 주어진 조건의 행 수정 MySQL에서는 UPDATE 문을 사용하여 행의 내용을 수정할 수 있음 UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 1) 예제 데이터 전처리 및 테이블 생성 · 소상공인시장진흥공단의 상가(상권) 정보 데이터 사용 https://www.data.go.kr/data/15083033/fileData.do 소상공인시장진흥공단_상가(상권)정보_20221231 영업 중인 전국 상가업소 데이터를 제공합니다. (상호명, ..
2023.03.06