SQL 기초 구문

밤무스·2022년 5월 4일
0

1. SELECT (args) FROM table_name: 데이터베이스에서 데이터(컬럼)을 추출

  • SELECT *: 모든 컬럼 추출
  • SELECT column1, column2 ... : 특정 컬럼 추출
  • SELECT DISTINCT: 컬럼을 중복 없이 추출
  • SELECT column1 AS alias1, column2 as alias2: 특정 컬럼을 별칭으로 추출 (AS 없이 공백도 가능)
  • SELECT 1+1: 산술 연산
  • SELECT column1 + 100: 추출한 특정 컬럼에 산술 연산
  • SELECT column1, column1 * 0.8 AS column1_reduced: 특정 컬럼에 산술 연산된 결과를 새로운 컬럼으로 함께 출력
  • SELECT column1 || ' ' || column2 || ' ' || column3 AS new_column: 여러 컬럼을 이어 붙여서 하나의 컬럼으로 추출 (회사마다 문법 상이)

2. ORDER BY column_name: 추출한 데이터를 특정 컬럼 기준으로 정렬 (Default: 오름차순)

  • ORDER BY column1 ASC: 오름차순 정렬
  • ORDER BY column1 DESC: 내림차순 정렬

3. WHERE: WHERE 조건에 부합하는 컬럼 데이터만 추출 (아래 예시)

  • SELECT * FROM table1 WHERE column1 BETWEEN lower AND upper;
  • SELECT * FROM table1 WHERE column1 IN (10,20,30);
  • SELECT * FROM table1 WHERE column1 LIKE keyword; -> regex와 비슷한 방식으로 패턴검색
    • %: 없거나, 하나거나, 여러개인 char 문자형
    • _: 단 하나의 문자형
    • wildcard 예시:
      • 'a%': a로 시작하는 모든 값
      • '%a': a로 끝나는 모든 값
      • '%or%': or을 포함한 모든 값
      • '_r%': 두 번째 인덱스에 r이 존재하는 모든 값
      • 'a%z': a로 시작해서 z로 끝나는 모든 값
  • SELECT * FROM table1 WHERE column1 IS NULL; -> 비어있는 데이터 확인


4. INSERT INTO: 테이블에 새로운 값을 저장할 때 사용

  • INSERT INTO table1 (value1, value2, ...) : 모든 컬럼에 값 저장
  • INSERT INTO table1 (column1, column2, ...)

5. UPDATE: 테이블의 기존 값을 업데이트 (업데이트 후 복구가 어렵기 때문에 사용에 주의)

  • UPDATE table1
    SET column1 = value1, column2 = value2, column3 = value3
    WHERE condition;
  • condition이 없을 경우 모든 데이터가 해당 값으로 업데이트 (주의)

6. DELETE: 테이블의 기존 값을 삭제 (역시 사용에 주의)

  • DELETE FROM table1 WHERE condition;
  • condition을 안 적을 경우 모든 데이터가 삭제됨 (매우 주의)

7. TOP, LIMIT, ROWNUM: SELECT와 함께 사용, 리턴하는 값의 갯수를 지정 (회사마다 구문 상이)

  • SELECT TOP 10 * FROM table1;: 특정 컬럼의 상위 10개 값만 추출
  • SELECT * FROM table1 LIMIT 10;

8. COUNT, AVG, SUM: (조건을 만족하는) 컬럼의 갯수/평균/총합을 반환

  • SELECT COUNT(column1) FROM table1 WHERE condition;
  • SELECT AVG(column1) FROM table1 WHERE condition;
  • SELECT SUM(column1) FROM table1 WHERE condition;

9. CASE WHEN: 조건문 처리 (회사마다 구문 상이)

  • SELECT CASE WHEN condition THEN return1 ELSE return2 END;

10. JOIN: 2개 이상의 테이블에서 각 테이블간 관계를 통해 서로 결합할 때 사용

  • SELECT table1.column1, table2.column2, table3.column3, ...
    FROM table1
    JOIN table2 ON table1.column1 = table2.column2;

11. GROUP BY: 데이터를 원하는 특정 컬럼 그룹으로 나누어 추출

  • SELECT column1 alias1, column2 alias2, COUNT() alias3
    FROM table1
    GROUP BY column2
    HAVING condition
    ORDER BY COUNT(
    ) DESC;

0개의 댓글