SQL 문법

성훈·2021년 8월 26일
0

OiMW

목록 보기
11/12
post-thumbnail

SQL 문법

SELECT

문법으로 데이터 베이스에서 호출할 column (field)을 선택하는 문법이다.

애스터리스크(*)를 사용할 경우 테이블의 모든 column이 호출된다.

FROM

어떤 테이블에서 호출할지 정해주는 문법이다.

SELECT 와 항상 같이 써주며 반드시 필요한 문법 중 하나이다.

SELECT * FROM tableName 이런 방식으로 사용한다.

WHERE

조건을 달아 필터링하는 문법이다.

어느 column에서 어떤 조건을 걸지 정하는 문법으로 =, <>, <, >, IN, IS 등등 다양한 연산자를 이용해 조건을 달 수 있다.

=

column에서 일치하는 문자를 찾는 연산자이다.

<>

LIKE

유사한 문자열을 필터링하는 메소드로 보통 where와 함께 사용한다.

SELECT table WHERE columns LIKE 'a%' 다음과 같이 사용하며

% 의 경우 그 위치에 어떠한 글자가 들어와도 된다는 뜻으로 위 예의 경우에는 'abc''abasdfas' 전부 필터링 될 것이다.

NOT 연산자 역시 사용가능한데, like 앞에 적거나 where 뒤에 적는 것으로 사용가능하다.

IN

정확히 일치하는 값을 찾을때 사용하는 연산자.

일치하는 값은 소괄호로 꼭 씌워주어야 한다.

물론 여러개의 값이 일치하도록 작성할 수도 있다.

SELECT * FROM table WHERE column IN ('value1', 'value2')

위와 같이 사용하면 된다.

INSERT INTO table (column1,column2) VALUES (values1,value2)

AND, OR

말 그대로의 연산자이다.

AND의 경우 모두 충족되어야

NOT

말 그대로 부정 연산자이다.

다만 위치가 조금 헷갈릴 수 있는데,

IS 를 부정할때는 IS 뒤에 위치하거나 WHERE 뒤에 위치하면 된다.

다만 LIKE나 IN을 부정할때는 WHERE 뒤에 붙거나 LIKE 나 IN 앞에 붙어야한다.

AS ( alias, 가명 )

긴 테이블명이나 특성명을 다른 가칭으로 지정해줄 수 있는 연산자로

SELECT column1, column2, column3 as col3 FROM table

이런 식으로 사용할때 column3을 사용할때 col3으로 사용할 수 있게 해준다.

ORDER BY (DESC)

사전 순서대로 정렬시키는 문법이고 DESC 가 오면 역순으로 정렬시킨다.

여러개의 특성을 순서대로 정렬시킬 수 있는데,

예를 들어 column1 과 column2가 있을때

우선 column 2의 값을 사전순서대로 정렬 시킨 다음 column1의 값 대로 정렬 시키고 싶다면

ORDER BY column1, column2 이렇게 사용해주면 된다.

즉, 최종적으로 column1의 값에 대해 오름차 순으로 정렬되게 된다.

  • 콤마 써줘야한다!

UPDATE table SET column=value, column1=value1 (WHERE column=value)

콤마를 적어줌으로 여러 개의 특성을 변경할 수 있다.

DELETE FROM table (WHERE 조건)

특정 조건에 해당하는 레코드를 삭제하려면 조건을 설정하고,

조건을 따로 설정하지 않으면 테이블 레코드 전부를 삭제한다.

JOIN

두개 이상의 테이블이나 데이터베이스를 연결해서 데이터를 검색하는 방법이다

INNER, OUTER, FULL, CROSS 등이 있으며 따로 명기해주지 않을 경우 inner 로 조인하게 된다.

INNER JOIN

쉽게 말해 교집합이라고 생각하면 된다.

기준 테이블과 조인한 테이블의 중복된 값을 보여준다.

OUTER JOIN

BETWEEN

두 값의 사이에 있는 레코드들을 반환하는 연산자이다.

두 값은 AND 로 이어주며 역시 NOT 연산자를 사용할 수 있는데, NOT BETWEEN value1 AND value2 와 같은 형식으로 사용한다.

값이 숫자열일땐 따옴표 없이 사용해도 비교를 해주나, 값이 문자열인 경우에는 따옴표를 적어줘야 사전 순서대로 비교를 해서 반환을 해준다.

IS NULL, IS NOT NULL

IS 는 = 과 같고

IS NOT 은 != 와 같다

= 과 NOT 을 같이 쓰려면 WHERE NOT 'column' = 'value' 와 같은 식으로 사용해야한다.

NOT 은 IS의 뒤에 올 수 있으며

WHERE 'column' IS NOT 'value'WHERE NOT 'column' IS 'value' 가 같은 결과를 반환한다.

MAX, MIN

SELECT MIN(column) FROM table 테이블의 해당 특성에서 가장 작은 값을 가진 레코드를 선택한다.

SELECT MAX(column) FROM table 테이블의 해당 특성에서 가장 큰 값을 가진 레코드를 선택한다.

_ ( underbar )

해당 위치에 어떤 글자가 들어오더라도 필터링해주는 연산자

단 언더바 하나당 한글자이며, 예를 들어 세번째 글자가 a인 문자열을 찾는 방법은

SELECT * FROM table WHERE columns = '__a' 이런 식으로 찾아준다.

괄호 안에 있는 문자는 어느것이든 상관없을때 사용하는 연산자.

예를 들어 첫 글자가 a, b, c 중 하나인 값을 필터링하려고 하면,

SELECT * FROM table WHERE columns = '[abc]%' 다음과 같이 쓸 수 있다.

이어지는 문자일 경우에는 -(dash)를 사용할 수 있는데,

SELECT * FROM table WHERE columns = '[a-c]%' 다음과 같이 작성해도 똑같은 레코드들을 얻을 수 있다.

SQL 내장 함수

Group By

값이 같은 것 끼리 묶을때 사용한다.

SELECT Count(column), column FROM table GROUP BY column 의 경우 column의 값이 같은 것끼리 묶으며 묶인 레코드가 몇개인지 확인할 수 있게된다.

GROUP BY로 묶인 데이터들은 해당 필드의 값에 따라 오름차순 정렬이 된다.

Count(*)

Count 함수는 레코드의 갯수를 헤아릴 때 사용한다.

SELECT COUNT(column) FROM table GROUP BY column 다음과 같이 사용하며

AVG(column)

SELECT AVG(column) FROM table 다음과 같이 작성하며 테이블의 해당 특성의 평균값을 반환한다.

SUM(column)

SELECT SUM(column) FROM table 다음과 같이 작성하며 테이블의 해당 특성의 총 합을 반환한다.

SQL DATABASE 문법

create database dbname

drop database dbname

create table tableName ()

TRUNCATE

뭉텅이로 삭제

vs DELETE

내부적으로 한줄한줄 삭제

Alter Table tableName

ADD columnNameToAdd dataType

한줄로 여러개 추가하려면 ADD 를 띄어쓰기로 구분해서 이어써주면 된다.

DROP COLUMN

컬럼 삭제

profile
어떻게 이걸 풀어낼 수 있을까

0개의 댓글