본문 바로가기
Programming/6. Elice AI Track

010_SQL (07/13)

by @sangseophwang 2021. 7. 16.

@pinterest

백엔드 1주차 수업 시작!

  한 주만에 돌아온 TIL 시간이다. 저번 주에는 그래도 내가 미리 공부했었던 HTML, CSS, JavaScript 파트여서 TIL을 작성할 여유가 있었는데, 이번 주는 2주차의 악몽이 사알짝 떠오를 정도로 수많은 정보들이 들어왔던 한 주였다. 정말 한 3일간은 수업이나 강의를 들어도 머리속에 '???' 가 가득 찼었는데 (다행이 같이 듣는 분들도 나와 비슷한 상황이었던 분들이 많았던지라 무언의 위로를 받았...ㅎ) 이번 주차 마지막 날 즈음 되니까 조금은 정리가 되는 기분이다. 강의에 알고리즘 문제 풀이에 개인 자습에 정보 탐색에 이래저래 정신 없는 나날이 이어지고 있는데 바짝 정신 차리고 초심 그대로 열심히 해야지!! 오늘의 블라블라는 여기까지 하고 우선 SQL부터 정리를 시작해봐야겠다!


SQL

  • Structured Query Language
  • 관계형 데이터베이스에 접근하고 조작하기 위한 표준 언어
  • 데이터 검색 / 삽입 / 수정 / 삭제 / 데이터베이스 생성, 테이블 생성 등

SELECT

SELECT column
FROM table;

SELECT * -- 모든 컬럼 (모든 데이터 가져오기)
FROM table;

-- SELECT 는 데이터를 가져오는 명령어이다.

DISTINCT

SELECT DISTINCT column
FROM table;

-- DISTINCT : 컬럼 중복 제거 / 2개 이상의 컬럼을 적었을 때 한 쪽에 중복이 있어도 값이 다르면 다르게 취급

WHERE

SELECT *
FROM table
WHERE 조건;

-- 조건에는 비교 연산자 (>, <, >=, != 등)와 복합조건 연산자 (&&, ||, !) 를 사용할 수 있다.

LIKE

SELECT column
FROM table
WHERE column LIKE %;

-- 특정 문자가 포함된 문자열을 찾고자 할 때.
-- '%A', 'A%' : 시작, 끝에 오는 문자가 A인 문자열
-- '%A%' : 중간에 A가 포함된 문자열

ORDER BY

SELECT column
FROM table
ORDER BY column 정렬조건;

-- 데이터를 검색할 때 정렬하여 결과를 출력하고자 할 때 사용
-- 정렬조건에는 ASC(오름차순), DESC(내림차순)가 있다.

INSERT

INSERT INTO 테이블(컬럼, 컬럼, ..)
VALUES (추가할 데이터, 추가할 데이터2 ..);

-- 테이블에 값 저장.
-- 테이블에 컬럼을 따로 입력하지 않으면 순서대로 값이 들어간다.

UPDATE

UPDATE 테이블
SET 컬럼 = '변경할 값'
WHERE 컬럼 = '현재 값'

-- 테이블에 이미 저장된 값을 수정할 때 사용.

DELETE

DELETE
FROM 테이블
WHERE 컬럼 = '값'; -- 조건

-- 테이블에 저장된 값 삭제.
-- WHERE 조건이 없으면 모든 데이터를 지운다.

COUNT

SELECT COUNT(컬럼)
FROM 테이블;

-- 데이터의 개수를 가져오는 함수.
-- 컬럼에 *를 입력하면 모든 데이터를 검색한다.

LIMIT

SELECT 컬럼
FROM 테이블
LIMIT (num), 제한할 숫자;

-- 출력할 데이터 개수를 제한하는 함수.
-- 예시 : 제안할 숫자에 1,5 => 2번째 컬럼부터 5개까지로 제한한다.

GROUP BY,  HAVING

SELECT 컬럼, 원하는 함수(SUM< AVG< COUNT 등등)
FROM 테이블
GROUP BY 그룹화할 컬럼;

-- 컬럼별로 데이터를 그룹화해 조회할 수 있도록 하는 함수.
-- 뒤에 'HAVING 조건' 을 달아서 그룹에 조건을 적용할 수 있다.
-- 예시 : 부서별 급여 평균, 반별 중간고사 수학 점수 1등 구하기 등

INNER JOIN

SELECT 컬럼
FROM 테이블
INNER JOIN 연결할 테이블;
(ON 연결할 조건 컬럼)

-- 두 테이블의 정보 중 겹치는 부분만 출력.
-- 교집합.

LEFT JOIN & RIGHT JOIN

SELECT 컬럼
FROM 기준 테이블
(LEFT or RIGHT) JOIN 연결할 테이블
(ON 조건);

-- 기준 테이블은 모두 출력, ON 조건에 따라 연결할 테이블의 나머지 데이터가 붙는다.
-- 조건에 없는 데이터는 NULL로 출력됨.

서브쿼리

  • 쿼리 속 쿼리.
  • 서브쿼리를 활용해 조건을 다양하게 설정할 수 있다.
  • 메인쿼리에 종속적인 관계이며 메인쿼리 실행 전에 한번만 실행한다.
  • 여러번 사용할 수 있다. (서브쿼리 안에 서브쿼리 안에 서브쿼리)

단일행 서브쿼리

SELECT 컬럼
FROM 테이블
WHERE 조건  연산자
(SELECT 컬럼 FROM 테이블 WHERE 조건);   -- 서브쿼리

-- 결과가 한 행만 나오는 서브쿼리
-- 예시 : (이름이 '김철수'인 직원의 급여)  보다 많이 받는 직원의 정보를 구하라.

다중행 서브쿼리

 SELECT 컬럼
 FROM 테이블
 WHERE 조건  다중행 연산자
 (SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 조건);
 
 -- 결과를 2개 이상 반환하는 서브쿼리
 -- 다중행 연산자로는  IN (하나라도 만족하면 반환) / ANY (하나라도 만족하면 반환, 비교 연산 가능)
 -- ALL (모두 만족하면 반환, 비교 연산 가능) 이 있다.
 
 -- < ANY  : 최대값  / > ANY : 최소값  / > ALL : 최대값  /  < ALL  :  최소값

스칼라 서브쿼리

SELECT 컬럼 , (
	SELECT 컬럼
    FROM 테이블 AS 별명1
    WHERE 별명1.컬럼 = 이어줄 테이블.컬럼
) AS 컬럼별명
FROM 테이블;

-- JOIN 과 같은 결과를 내지만 결과가 좀 더 빠르게 추출된다고 한다.
반응형

'Programming > 6. Elice AI Track' 카테고리의 다른 글

012_엘리스 트랙 톺아보기  (0) 2021.09.09
011_flask 기초 (~7/16)  (0) 2021.07.18
009_JavaScript 기초 (7/8-9)  (0) 2021.07.09
008_JavaScript 기초 (7/7)  (0) 2021.07.07
007_HTML, CSS (7/5 - 6)  (0) 2021.07.06

댓글