[TIL] DB - SQL Basics

Alex J. Lee·2021년 11월 11일
0

TIL

목록 보기
48/58

Today I Learned

SQL

  • Structured Query Language
  • 관계형 데이터베이스에서 사용하는 언어
  • 관계형 데이터베이스 : 행(데이터)과 열(속성)로 구성된 테이블에 데이터 저장. 정해진 형식에 맞게 데이터를 저장해야 하며 정보 요청시 구조화된 쿼리 언어를 사용해야 함. 데이터베이스의 ACID 성질을 준수해야 하는 금융 서비스 등에서 사용됨.
  • SQL을 사용헤 데이터베이스에 쿼리(데이터 필터링을 위한 질의문)를 보내 특정 데이터를 불러오거나 삽입할 수 있음
  • SQL을 사용할 수 있는 데이터베이스 : MySQL, Oracle, SQLite, PostgreSQL

SQL 기본 문법

CREATE

  • 데이터베이스, 테이블 생성
CREATE DATABASE dbname;
CREATE TABLE tablename (
	col1 datatype,
  col2 datatype,
  col3 datatype
);

USE

  • 데이터베이스 사용
USE dbname;

DROP

  • 데이터베이스, 테이블 제거
DROP DATABASE dbname;
DROP TABLE tablename;

DESCRIBE

  • 테이블 정보 확인
DESCRIBE tablename;

SELECT ... FROM

  • 데이터 선택
  • 반환되는 데이터는 result-set이라고 불리는 테이블에 저장된다
SELECT col1, col2, col3, ...
FROM tablename;
  • 와일드카드(*)를 사용하면 모든 열이 선택된다
SELECT * FROM tablename;
  • SELECT DISTINCT : 유니크한 값들만 선택
SELECT DISTINCT col1, col2, col3, ...
FROM tablename;

INSERT INTO

  • 데이터 삽입
INSERT INTO tablename (col1, col2, col3, ...)
VALUES (val1, val2, val3, ...);
  • 만약 모든 테이블의 모든 열에 대해 값을 추가하는 경우 열 이름을 특정할 필요가 없다

DELETE

  • 데이터 제거

WHERE

  • 데이터 필터
SELECT col1, col2
FROM tablename
WHERE condition
  • tablename에서 주어진 조건 condition을 만족하는 레코드의 col1, col2 추출

UPDATE

  • 데이터 수정
UPDATE tablename
SET col1 = val1, col2 = val2
WHERE condition;
  • 주어진 조건 condition을 만족하는 레코드의 col1 값을 val1으로, col2 값을 val2로 바꾼다

ORDER BY

  • 데이터 정렬
SELECT col1, col2, ...
FROM tablename
ORDER BY col1, col2, ... ASC|DESC;
  • ASC 오름차순이 기본이며 내림차순으로 정렬하고 싶다면 DESC 키워드를 붙여주어야 한다

JOIN

  • 둘 이상의 테이블의 연관된 열을 기준으로 행들을 합치기 위해 사용된다
  • (INNER) JOIN : 교집합
  • LEFT JOIN : 왼쪽 테이블의 모든 레코드 + 오른쪽 테이블에서 일치하는 레코드
  • RIGHT JOIN : 오른쪽 테이블의 모든 레코드 + 왼쪽 테이블에서 일치하는 레코드
  • FULL (OUTER) JOIN : 합집합
profile
🦄✨글 잘 쓰는 개발자가 되기 위해 꾸준히 기록합니다 ✨🦄

0개의 댓글