SQL 개요

박성진·2023년 3월 2일
0

Database

목록 보기
2/7

Structured Query Language

  • 구조적, 데이터베이스와의 통신을 위한, 데이터 조회 정의 조작을 위한 언어

DML - Data Manipulation Language

  • 데이터 조작 언어 (조회, 검색, 등록, 수정 삭제)
  • INSERT

    INSERT INTO 테이블명 [(열이름1, 열이름2, …)]

    VALUES (값1, 값2, …);

  • UPDATE

    UPDATE 테이블명 SET
    열이름1 = 값1, 열이름2 = 값2...
    [ WHERE 조건식 ];

  • DELETE

    DELETE FROM 테이블명 [ WHERE 조건식 ];

  • SELECT

    SELECT * FROM 테이블명

DDL - Data Definition Language

  • 테이블 정의 언어 (생성, 수정, 변경, 삭제)

DCL - Data Control Language

  • 데이터베이스 접근 권한 제어 언어

TCL - Transaction Control Language

  • 트랜잭션(논리적 작업단위) 제어를 위한 언어

트랜잭션?

  • 논리적 작업단위

Commit / Rollback

  • Commit - 트랜잭션을 정상적으로 데이터베이스에 적용
    • CUD 내용을 DB에 저장
  • Rollback - 작업 중 문제 발생 시 트랜잭션의 변경 내역을 취소, 종료, 이전 시점으로 되돌림
    • CUD 내용을 취소

데이터 조회

Select문 사용 전 반드시 먼저 고민해야 할 부분

  • 어디서, 어떻게 가져올 것인가
  • 어떤 값을 출력할 것인가

    SELECT 열이름 [as 별칭]
    FROM 테이블명
    [WHERE 조건식]ORDER BY 열이름 [ASC or DESC]];

SQL문 작성 규칙

  • 문법적인 규칙은 아니지만, 실무에서 관례적으로 사용되는 규칙
  1. SQL은 대소문자 구분 X, 하지만 예약어는 대문자로, 나머지 테이블, 열은 소문자로 표기
  2. 가독성을 위해 여러 줄, 공백을 이용해 작성
  3. 구조적 코드는 들여쓰기 이용 (가독성 향상을 위해)

그룹핑

그룹함수:

  • GROUPBY - 데이터 값이 같은 행끼리 묶어서 그룹화
  • ROLLUP - 하위 합계 생성, 아래에 sum을 보여준다 (mysql에는 없지만 시험에 나온다)
  • GROUPING SETS - 컬럼별 별도 처리
  • CUBE - 결합 가능한 모든 그룹핑, 모든 것을 크로스 한다
  • HAVING - GROUP BY 결과의 조건을 지정할 때 사용
profile
개발자가 되기까지

0개의 댓글