SQL 8

서브쿼리(Subquery)

서브쿼리(Subquery) 서브쿼리(Subquery)는 SQL에서 다른 쿼리의 내부에 포함되어 실행되는 쿼리를 의미합니다.서브쿼리는 주로 메인 쿼리(Main Query)의 일부로 동작하며, 메인 쿼리에서 필요한 데이터를 계산하거나 필터링하는 데 사용됩니다.서브쿼리는 항상 괄호 ()로 감싸서 사용됩니다.반환 값에 따른 분류 (연산자) 1. 단일 행 서브쿼리 (Single-row Subquery)서브쿼리의 실행 결과로 1건 이하의 행 반환단일행 비교 연산자 =, =, 와 함께 사용ex. 특정 학생의 최고 점수를 가져올 때SELECT nameFROM studentsWHERE score = (SELECT MAX(score) FROM students); 2. 다중 행 서브쿼리(Multi-row Subquery..

DB/MySQL 2025.01.06

GROUP_CONCAT feat. DISTINCT

GROUP_CONCAT GROUP_CONCAT은 GROUP BY로 그룹화된 데이터에서, 그룹별로 데이터를 콤마로 구분된 문자열로 반환합니다. * 기본 문법GROUP_CONCAT([DISTINCT] column_name [ORDER BY column_name] [SEPARATOR 'separator_string'])예제 * Table : EmployeesdepartmentnameITAliceITBobITEveITAliceHRCharlieHRDavid  1. 기본 사용부서별 직원 이름을 하나의 문자열로 반환 (1) QuerySELECT department, GROUP_CONCAT(name) AS employee_namesFROM EmployeesGROUP BY department; (2) Resultdepa..

DB/MySQL 2025.01.03

GROUP BY

기본 문법 SELECT column1, column2, aggregate_function(column3)FROM table_nameWHERE conditionsGROUP BY column1, column2HAVING conditionsORDER BY column1; 그룹화 기준 열(Column)GROUP BY 뒤에 오는 열이 데이터 그룹화 기준이 됩니다.집계 함수(Aggregate Function)각 그룹에 대해 COUNT, SUM, AVG, MAX, MIN과 같은 집계 함수가 적용됩니다.WHERE 절과 HAVING 절WHERE : 그룹화 전에 데이터를 필터링HAVING : 그룹화 이후, 집계 결과를 필터링정렬(ORDER BY)GROUP BY의 결과를 정렬할 수 있습니다.HAVING을 사용하는 이유그룹화..

DB/MySQL 2025.01.02

JOIN

JOIN SQL JOIN은 두 개 이상의 테이블을 공통 열(조건)을 기준으로 결합하여 데이터를 조회하는 데 사용됩니다. JOIN은 관계형 데이터베이스에서 테이블 간의 관계를 활용하여 필요한 데이터를 통합하는 중요한 기능입니다.JOIN 을 통해서 만들어진 테이블은 유지되지 않고 SELECT 가 종료되면 바로 사라진다.두 테이블을 조인할 때 ON 을 통해서 조인 조건을 주지 않으면 무지성 조인이 된다.종류  1. INNER JOIN두 테이블에서 조인 조건을 만족하는 행만 반환합니다.조인 조건이 성립되지 않는 데이터는 결과에 포함되지 않습니다.좌우 테이블의 순서가 중요하지 않습니다. 2. LEFT JOIN (LEFT OUTER JOIN)왼쪽 테이블의 모든 행과 조인 조건을 만족하는 오른쪽 테이블의 데이터를 반..

DB/MySQL 2025.01.01

DBMS를 사용하는 이유 feat. MySQL

DB (Data Base) 데이터베이스는 데이터를 저장하는 저장소입니다.데이터 파일과 같은 역할을 하며, 데이터 구조(테이블, 열, 행 등)로 구성됩니다.DBMS (Data Base Managing System) DBMS는 데이터베이스를 관리하고, 데이터를 저장하거나 조회하는 명령(SQL)을 처리하는 프로그램입니다.MySQL, PostgreSQL, Oracle, SQL Server 등이 DBMS의 대표적인 예입니다.데이터 저장 과정 소스 코드 작성자바 개발자는 IntelliJ와 같은 IDE(소스코드 편집기)를 사용해 자바 소스 코드를 작성합니다.빌드(Build)작성된 소스 코드는 Gradle이나 Maven과 같은 빌드 도구를 통해 컴파일되고, 실행 가능한 프로그램으로 빌드됩니다.결과물은 JAR 또는 WA..

DB/MySQL 2024.12.27

SQL

SQL SQL은 명령어 이다.SQL은 DBMS에게 명령을 내릴 때 사용된다.예제 대소문자 구분 없음` 으로 감싸는 경우 : 칼럼명, 테이블명, DB명Tips ✨ 한 줄씩 실행하는 단축키mac : Command + Returnwindow : Crtl + Enter 1. SHOW DATABASES전체 데이터베이스 리스팅SHOW DATABASES; 2. USE특정 데이터베이스 선택, 다른말로 하면 특정 폴더(DB)로 접속 명령어USE `DB이름`;ex.USE mysql;데이터베이스(`a1`) 선택USE `a1`; 3. SHOW TABLES# 테이블 확인# 현재 접속해 있는 DB안의 모든 테이블들을 리스팅SHOW TABLES; 4. DESC특정 테이블의 구조DESCRIBE `user`;또는 DESC `user`..

DB/MySQL 2024.12.26

INDEX

INDEX INDEX는 데이터베이스에서 데이터를 더 빠르게 검색할 수 있도록 도와주는 구조입니다.책의 목차와 같은 역할을 합니다.책에서 원하는 내용을 찾으려면 처음부터 끝까지 읽는 대신, 목차를 보고 바로 해당 페이지로 갈 수 있죠.데이터베이스에서도 인덱스를 사용하면 원하는 데이터를 훨씬 빠르게 찾을 수 있습니다.인덱스의 지도 데이터를 사용하면, 테이블의 모든 데이터를 탐색하지 않고도 원하는 데이터를 빠르게 찾을 수 있습니다.INDEX 동작 원리데이터베이스는 테이블에서 인덱스를 생성하면, 특정 열(Column)에 대해 정렬된 구조를 별도로 유지합니다.검색 요청이 들어오면, 전체 테이블을 탐색(Full Table Scan)하지 않고, 인덱스를 통해 바로 해당 데이터 위치를 찾아갑니다.장단점  * 장점검색 ..

DB/MySQL 2024.12.21
반응형