[Zero-Base]데이터 취업 스쿨 스터디 노트(SQL기초문법)
INSERT
- insert into 테이블명 (컬럼1, 컬럼2, 컬럼3, 컬럼4)
-> values (값1, 값2, 값3, 값4); : 해당 컬럼에 값 집어넣기
- insert into 테이블명
-> values(값1, 값2, 값3, 값4); : 모든 값을 집어넣는 경우라면 컬럼명 명시 안 해줘도 가능

SELECT, WHERE
- select * from 테이블명; : 테이블의 모든 컬럼을 출력
- select 컬럼1, 컬럼2, ... from person; : 특정 컬럼만 출력
- select * from person where 조건; : 특정 조건을 만족하는 모든 컬럼 출력(*대신 컬럼명 입력시 해당 컬럼만 출력)
UPDATE, DELETE
- update: table내의 데이터를 수정
- update 테이블명 set 수정할값 where 조건; : where절 조건에 해당하는 데이터를 수정할 값으로 변경

- delete from 테이블명 where 조건; : 조건에 해당하는 데이터 삭제

ORDER BY
- 실습 기본환경

- select 컬럼1, 컬럼2
->from 테이블명
->order by 컬럼명; : 기본적으로 오름차순 정렬

- select 컬럼1, 컬럼2
->from 테이블명
->order by 컬럼명 DESC; : 내림차순 정렬 옵션

- order by절에 컬럼 여러개 사용 가능

Comparision Operators(비교연산자)
- where 절에 =,!=,>,<, >= ,<= 과 같은 비교연산자를 사용해서 조건을 만들 수 있다.
Logical Operators(논리연산자)

- SELECT* FROM celeb
-> where 컬럼명 IN (값1, 값2); : ()안에 조건을 만족하는 값이 있으면 출력(OR와 비슷)
- 논리 연산자의 경우 조건의 순서를 헷갈리지 않게 ()로 묶어줘서 사용해주는 것 추천
- LIKE연산자 와일드카드 참고: 와일드카드 설명
- 여러 논리연산자를 사용하여 조건문을 만들 수 있다.

UNION
- UNION: 여러개의 SQL문을 합쳐서 하나의 SQL문으로 만드는 것.(주의- 컬럼의 개수가 같아야 함.)
- UNION : 중복된 값을 제거하여 출력
- UNION ALL : 중복된 값을 포함하여 출력
- select * from 테이블명
-> where 조건
-> UNION ALL(또는 UNION)
-> select * from 테이블명
-> where 조건;

- 컬럼의 개수가 같지 않을경우 아래와 같이 오류가 발생

JOIN
- inner join: 두개의 테이블에서 공통된 요소들을 통헤 결합하는 조인 방식(교집합)

- left join: 두개의 테이블에서 공통영역을 포함해 왼쪽 테이블의 다른 데이터를 포함하는 조인 방식(from 뒤에 나오는 테이블이 기준이 되는 테이블)

- right join:두개의 테이블에서 공통영역을 포함해 오른쪽 테이블의 다른 데이터를 포함하는 조인 방식

- full outer join:두개의 테이블에서 공통영역을 포함하여 양쪽 테이블의 다른 영역을 모두 포함하는 조인 방식(합집합)
(하지만 MySql에서는 full join을 지원하고 있지 않기 때문에 LEFT JOIN + UNION + RIGHT JOIN 쿼리로 사용한다.)

- self join: 내부조인(from 절에 테이블이 2개이상 존재)
📌 괄호를 제대로 묶어주지 않으면 아래처럼 결과가 여러개 나오게 된다.

📌 아래와 같이 괄호로 잘 묶어줘야한다.

📌 컬럼명이 겹치는 경우가 아니라면 앞에 테이블 명을 적어주지 않아도 된다.
📌 ~중은 AND로 ~이거나는 OR로 연결
CONCAT
- concat: 여러 문자열을 하나로 합치거나 연결
- select concat('str1','str2 ','str3'...); : 파이썬의 문자열 포맷팅과 비슷


ALIAS
- ALIAS: 칼럼이나 테이블에 이름 별칭 생성(EX> IMPORT PANDAS AS PD)
(컬럼에 ALIAS를 사용하는 것 과 테이블에 사용하는 것이 있음.
-컬럼에 사용한 경우

- concat과 함께 사용 가능


- as는 생략 가능

DISTINCT
- DISTINCT:검색한 결과의 중복 제거(파이썬의 UNIQUE와 비슷)
- SELECT DISTINCT 컬럼1, 컬럼2 ... FROM 테이블명;

LIMIT
- LIMIT: 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회(SELECT> FROM > WHERE> ORDER BY >LIMIT 순서, 파이썬에서 HEAD와 비슷)
![업로드중..]()