Skip to content

Latest commit

 

History

History
71 lines (58 loc) · 2.37 KB

sql.md

File metadata and controls

71 lines (58 loc) · 2.37 KB

SQL 기초 문법 정리

테이블 생성

books 라는 이름을 가지고 있으며 id, title, writer , quantity의 컬럼을 가지고 있는 테이블을 생성해보자.

CREATE TABLE books
(id INTEGER PRIMARY KEY
  title TEXT,
  writer TEXT,
  released_year INTEGER);

데이터 입력하기

위에서 만든 books 테이블에 데이터를 입력하자 입력하는 방식은 두 가지다.

INSERT INTO books VALUES(1,"title" , "hope" , 2022);
INSERT INTO books VALUES(2,"titile","wow",2001)

이렇게 모든 값을 입력해주기는 귀찮은 일이다. 가끔 몇몇 값은 빈값으로 둬야 할 때도 있다. 테이블을 생성할 때 id값에 autoincrement 설정을 두면 데이터를 입력할 때 id 값을 일일이 입력하지 않아도 저절로 값이 증가하면서 입력된다.

CREATE TABLE books
(id INTEGER PRIMARY KEY AUTOINCREMENT
  title TEXT, 
  writer TEXT, 
  released_year INTEGER);

컬럼명을 지정하면 입력하지 않은 값은 NULL 처리가 된다.


데이터 불러오기

데이터를 불러올 떄는 SELECT 문을 쓰는데 순서를 지켜야한다

  • 작성 순서
SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY
  • 실행 순서
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

SELECT

가져오고 싶은 COLUMN 명을 입력한다 column 명은 변경이 가능하고, 기존에 없던 데이터를 추가할 수도 있다.

SELECT '2005' year, HOUR(datetime) HOUR, count(hour(datetime)) COUNT

이 경우는 year이라는 컬럼이 기존에 없더라도 추가가 가능하며 '2005' 라는 데이터기 일괄적으로 들어간다. 그리고 hour(datetime)뒤에 넣고싶은 컬럼명을 설정하면된다. "HOUR" 이라고 표시할 수도 있다.

FROM

from 뒤에는 값을 가져오고 싶은 테이블 명을 입력한다.

WHERE

집계함수를 사용할 수 없다.

  • 필드 값이 있는지 확인하고 싶을때는 IS NULL , IS NOT NULL 을 사용하면 된다.
SELECT * FROM books WHERE released_year IS NULL;

출판년도가 NULL인 데이터만 가져온다

GROUP BY

데이터를 그룹화하여 가져온다.

HAVING

group by 절과 함께 사용되며, 집계함수로 조건비교를 할 수 있다.

ORDER BY

데이터 정렬 기준. 여러개의 기준을 세울수도 있고, 역순으로 배열하는것도 가능하다.