Database | SQL 기초

Youngboy_Engineer·2022년 2월 13일
0

SQL (Structured Query Language)

  • RDBMS의 데이터 관리를 위해서 설계된 특수 목적의 프로그래밍 언어
  • 데이터베이스 스키마 생성 및 수정
  • 자료의 검색 및 관리
  • 데이터베이스 객체 접근 조정 관리

SQL 분류

  • DDL (Data Definition Language)
    • 데이터 정의 언어
    • 관계형 데이터베이스 구조(테이블, 스키마)를 정의하기 위한 명령어
    • 예시
      • CREATE
      • DROP
      • ALTER
  • DML (Data Manipulation Language)
    • 데이터 조작 언어
    • 데이터를 저장, 조회, 수정, 삭제 (CRUD) 등을 하기 위한 명령어
    • 예시
      • INSERT (C)
      • SELECT (R)
      • UPDATE (U)
      • DELETE (D)
  • DCL (Data Control Language)
    • 데이터 제어 언어
    • 데이터베이스 사용자의 권한 제어를 위해 사용하는 명령어
    • 예시
      • GRANT
      • REVOKE
      • COMMIT
      • ROLLBACK

SQL statement

-- 테이블 생성 및 삭제
CREATE TABLE <테이블명> (컬럼...);
DROP TABLE <테이블명>;

-- CRUD
# CREATE
INSERT INTO <테이블명> (컬럼1, 컬럼2, ...) VALUES (1,2, ...);

# READ
SELECT 컬럼1, 컬럼2, ... FROM <테이블명>;
SELECT 컬럼1, 컬럼2, ... FROM <테이블명> LIMIT 숫자;
SELECT 컬럼1, 컬럼2, ... FROM <테이블명> LIMIT 숫자 OFFSET 숫자;
SELECT 컬럼1, 컬럼2, ... FROM <테이블명> WHERE 조건;
SELECT DISTINCT 컬럼 FROM <테이블명>;

# DELETE
DELETE FROM <테이블명> WHERE 조건;

# UPDATE
UPDATE <테이블명> SET 컬럼1=1, 컬럼2=2, ... WHERE 조건;

AUTOINCREMENT

  • 컬럼 attribute
  • 이전에 삭제된 행의 값을 재사용하는 것을 방지
  • SQLite에서는 사용되지 않음
  • 테이블을 생성하는 단계에서 설정 가능
CREATE TABLE <테이블명> (
	id INTEGER PRIMARY KEY AUTOINCREMENT,
	...
	);

SQLite Aggregate Functions

  • COUNT

    • 그룹의 항목 수를 가져옴
  • AVG

    • 값 집합의 평균 값을 계산
  • MAX

    • 그룹에 있는 모든 값의 최대값을 가져옴
  • MIN

    • 그룹에 있는 모든 값의 최소값을 가져옴
  • SUM

    • 모든 값의 합을 계산
    SELECT COUNT(컬럼) FROM <테이블명>;
    SELECT AVG(컬럼) FROM <테이블명>;
    SELECT MAX(컬럼) FROM <테이블명>;
    SELECT MIN(컬럼) FROM <테이블명>;
    SELECT SUM(컬럼) FROM <테이블명>;

LIKE

  • 패턴 일치를 기반으로 데이터를 조회하는 방법
  • sqlite는 패턴 구성을 위한 2개의 wildcards를 제공
    • % (percent sign)
      • 0개 이상의 문자
      • 이 자리에 문자열이 있을 수도, 없을 수도 있다.
    • _ (underscore)
      • 임의의 단일 문자
      • 반드시 이 자리에 한 개의 문자가 존재해야 한다.
SELECT * FROM 테이블 WHERE 컬럼 LIKE '와일드카드패턴';

ORDER BY

  • 조회 결과 집합을 정렬
  • SELECT 문에 추가하여 사용
  • 정렬 순서를 위한 2개의 키워드 제공
    • ASC - 오름차순 (default)
    • DESC - 내림차순
SELECT * FROM 테이블 ORDER BY 커럼 ASC;
SELECT * FROM 테이블 ORDER BY 컬럼1, 컬럼2 DESC;

GROUP BY

  • 행 집합에서 요약 행 집합을 만듦
  • SELECT 문의 optional 절
  • 선택된 행 그룹을 하나 이상의 열 값으로 요약 행으로 만듦
  • 문장에 WHERE 절이 포함된 경우 반드시 WHERE 절 뒤에 작성해야 함
SELECT 컬럼1, aggregate_function(컬럼2) FROM 테이블 GROUP BY 컬럼1, 컬럼2;

ALTER TABLE

  • 테이블 이름 변경
ALTER TABLE current_table_name RENAME TO new_table_name;
  • 테이블 컬럼 명 변경
ALTER TABLE table_name
RENAME COLUMN current_name TO new_name;
  • 테이블에 새로운 컬럼 추가
ALTER TABLE 테이블이름 ADD COLUMN 컬럼이름 데이터타입설정;

profile
개발 공부를 막 시작한 주니어입니다.

0개의 댓글