[제로베이스_데이터 취업 스쿨 16기] SQL

김세훈·2023년 7월 4일
post-thumbnail

SQL 구성

  1. 데이터 정의 언어 (DDL : Data Definition Language)
  • create, alter, drop 등
  1. 데이터 조작 언어 (DML : Data Manipulation Language)
  • select, insert, update, delete 등
  1. 데이터 제어 언어 (DCL : Data Control Language)
  • grant, revoke, commit, rollback 등

권한관리

  • grant, revoke
# 사용자에게 특정 데이터베이스 모든 권한 부여
GRANT ALL ON dbname.* to 'username'@'localhost';

# 사용자에게 특정 데이터베이스 모든 권한 삭제
REVOKE ALL ON dbname.* from 'username'@'localhost';

UNION

여러 개의 SQL문을 합쳐서 하나의 SQL문으로 만들어주는 방법
(합치는 SQL문의 컬럼 개수 같아야 함)

  • union : 중복된 값을 제거
  • union all : 중복된 값 포함
select * from test1
union (all)
select * from test2;

JOIN

두 개 이상의 데이블을 결합하는 방법

  • inner join, left join, right join, full outer join
  • self join
# inner join
select column1, column2 from tableA
inner join tableB
on tableA.column = tableB.column
where condition;

# left join
select column1, column2 from tableA
left join tableB
on tableA.column = tableB.column
where condition;

# right join
select column1, column2 from tableA
right join tableB
on tableA.column = tableB.column
where condition;

# full outer join
select column1, column2 from tableA
full outer join tableB
on tableA.column = tableB.column
where condition;

# self join
select column1, column2 from tableA, tableB
where condition;

Primary Key (기본키)

  • 테이블의 각 레코드를 식별
  • 중복되지 않은 고유값을 포함
  • Null 값 허용 안됨
  • 테이블 당 하나의 기본키를 가짐

Foreign Key (외래키)

  • 한 테이블을 다른 테이블과 연결해 주는 역할
  • 참조되는 테이블의 항목은 그 테이블의 기본키

Aggregate Functions (집계함수)

  • count, sum, avg, min, max, first, last

Having

조건에 집계함수가 포함되는 경우 where절 대신 having 사용

select column1, column2, ... from table
where condition
group by column1, column2
having condition (Aggregate Functions)
order by column1

Sub Query

  • 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말함
  • 메인쿼리가 서브쿼리를 포함하는 종속적인 관계
  • Sub Query는 괄호로 묶어서 사용
  • 단일행 혹은 복수행 비교 연산자와 함께 사용 가능
  • Sub Query에서는 order by를 사용 안 함
# Scalar Sub Query (select절에 사용)
select column1, (select column2 from table2 where condition)
from table1
where condition;

# Inline View (from절에 사용)
select a.column, b.column
from table1 a, (select column1, column2, from table2) b
where condition;

# Nested Sub Query (where절에 사용)
# # Single Row : 하나의 열을 검색하는 서브쿼리
# # Multiple Row : 하나 이상의 열을 검색하는 서브쿼리
# # Multiple Column = 하나 이상의 행을 검색하는 서브쿼리
profile
KimSe's 주절주절

0개의 댓글