INNER JOIN 첫번째 테이블과 두번째 테이블에 조건을 만족하는 데이터만 출력 SELECT * FROM TABLE_A INNER JOIN TABLE_B ON 조건 OUTERJOIN LEFT JOIN 첫 번째 테이블을 기준으로 두 번째 테이블에 조건을 만족하는 데이터가 없더라도 출력 첫 번째 테이블의 필드 값은 그대로 가져오고 두 번째 테이블의 필드 값은 NULL로 표시 SELECT * FROM TABLE_A LEFT JOIN TABLE_B ON 조건 RIGHT JOIN LEFT JOIN과 반대로 두번쨰 테이블을 기준으로 한다. SELECT * FROM TABLE_A RIGHT JOIN TABLE_B ON 조건 ❓JOIN할 때 ON과 WHERE의 차이 ON : JOIN 전에 조건을 필터링 WHERE :..
WHEN에 적은 조건식에 따라 결과식을 다르게 조회할 수 있다. CASE문은 SELECT절 뿐만 아니라 WHERE, ORDER BY 등 SQL 모든 구문에서 활용할 수 있다. SELECT CASE WHEN [조건식1] THEN [결과식1] WHEN [조건식2] THEN [결과식2] ... ELSE [조건식N] END -- 예시 SELECT CASE WHEN deptId = 1 THEN '홍보' WHEN deptId = 2 THEN '기획' ELSE '무소속' END AS `부서명`
유형별로 정보를 알고싶을 때는 데이터를 그룹화할 수 있는 GROUP BY를 사용한다. GROUP BY : 특정 컬럼을 그룹화 HAVING : 그룹화한 결과에 거는 조건 ❓ WHERE과 HAVING의 차이 WHERE은 그룹화 하기 전 조건, HAVING은 그룹화 한 후의 조건이다. 조건은 생략 가능하다. SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼; SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식;
DDL(Data Definition Language) - 데이터 정의어 데이터를 생성, 수정, 삭제하는 등 데이터의 전체 구조를 결정 create, alter, drop, truncate DML (Data Manipulation Language) - 데이터 조작어 DB에 입력된 레코드를 조회, 수정, 삭제하는 역할 select, insert, update, delete DCL(Data Control Language) DB에 접근하거나 객체에 권한을 주는 역할 grant, revoke, commit, rollback
DB 다루기 DB 생성 : create database DB 삭제 : drop database --전체 데이터베이스 보기 SHOW DATABASES; -- 만약 기존에 sqlDB가 존재하면 삭제 DROP DATABASE IF EXISTS sqlDB; -- 새 데이터베이스 생성 CREATE DATABASE sqlDB; -- 데이터베이스 선택 USE sqlDB; 테이블 다루기 TB 생성 : create table TB 삭제 : drop table TB 수정 : alter table 테이블 생성, 삭제 -- 테이블 생성 CREATE TABLE 테이블명 ( 칼럼명1 타입1, 칼럼명2 타입2, 칼럼명3 타입3 ); -- 테이블 삭제 DROP TABLE 테이블명 NOT NULL : 필드에 NULL값 저장할 수 없음..