[DB 이론] SQL이란?

반응형

From Pixabay IO-Images' Image

Contents

     SQL 이란? 

    SQL(Structured Query Language, 구조적 질의 언어)은 관계형 데이터베이스 시스템(RDBMS)을 제어하는 컴퓨터 언어입니다.

     

    일반적인 프로그래밍 언어(범용 언어)와 달리 대화식 언어이기 때문에, 명령문이 짧고 간결합니다. 

     

    SQL 자체는 범용 언어에 비해 한계가 있기 때문에, 단독으로 사용하기 보단 C#, Java, Python, PHP와 같은 고수준 언어와 함께 쓰는 것이 일반적입니다.

     

     SQL 쿼리 문의 분류 

    SQL 쿼리문은 역할에 따라 3가지로 분류되며 아래와 같습니다.

    • DDL(Data Definition Language, 데이터 정의어)
      DB 오브젝트를 생성, 삭제, 변경하는 역할을 하며, DB 설계 단계에서 주로 사용됩니다. (CREATE, DROP, ALTER...)
    • DML(Data Manipulation Language, 데이터 조작어)
      DB를 조회, 삽입, 삭제, 변경하는 역할을 하며, 관리 목적의 쿼리문입니다. (SELECT, INSERT, UPDATE...)
    • DCL(Data Control Language, 데이터 제어어)
      사용자의 권한을 관리하는 역할을 합니다. (GRANT, DENY, REVOKE...)

     

    이중 개발자가 일반적으로 DB를 사용할 때 사용하는 언어의 중요도는 DML > DDL > DCL 순입니다.

     

    DB를 조회하고, 관리하는 DML을 가장 많이 사용하며, DB의 테이블의 스키마(설계 수준)를 수정하는 DDL을 그다음으로 많이 씁니다.

     

    DCL은 DBA(DataBase Administration, 데이터베이스 관리자)가 주로 사용하며 일반 개발자는 사용할 일이 드뭅니다.

     

     SQL의 규칙 

    SQL은 DBMS에 따라 규칙이 약간은 달라질 수 있습니다. 하지만, 일반적인 규칙들은 아래와 같습니다.

    ( tTable이라는 가상의 테이블이 있다고 가정하고 예시를 작성하였습니다. )

     

    1.  SQL 명령은 세미콜론으로 마무리

    SQL은 명령이 끝나는 부분을 세미콜론(;)으로 구분합니다. 즉, 명령을 여러 줄에 걸쳐 작성하더라도 세미콜론을 마지막에 작성해주면 하나의 명령어로 인식합니다.

    -- 단일 라인 명령
    SELECT * FROM tTable;
    
    -- 멀티 라인 명령
    SELECT * 
    FROM tTable
    WHERE city = 'Seoul';

     

    2. 주석

      1) 단일 라인(Single Line) 주석: 맨 앞에 -- 붙여서 사용

    -- Select Example (이 부분은 실행되지 않음)
    SELECT * FROM tTable;

      2) 블록 주석(Multi Line): /* */로 감싸줍니다. 

    /* 여러줄 주석 예시
    Select All Records from tTable
    Where city in Seoul (SQL의 조건문)
    */
    SELECT * FROM tTable WHERE city = 'Seoul';

     

     

    3. SQL은 보통 대소문자를 가리지 않습니다.

    SQL 문법은 보통 문자열을 제외하곤 대소문자를 가리지 않지만, 대소문자 구분을 통해 가독성을 향상하는 것이 일반적입니다.

     

    예를 들어, 컬럼 이름은 소문자로 하고, DB이름은 첫 글자만 대문자로 하는 등 대소문자를 통해 컬럼과 DB를 구분할 수 있습니다. (DBMS에서 DB이름, 테이블이름, 컬럼이름 등에서 대소문자를 구분하도록 설정하는 경우도 있습니다.)

     

    아래 예시는 명령어와 테이블 이름을 대소문자 구분없이 사용한 경우로, 똑같이 작동합니다.

    -- 아래 두 명령어는 동치
    SELECT * FROM tTable;
    Select * from ttable;

     

     

    Reference
      내용) 김상형, 김상형의 SQL 정복 Chapter 2 (46p - 71p)
      내용) https://edu.goorm.io/learn/lecture/15413/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-sql/lesson/767683/sql%EC%9D%B4%EB%9E%80
    반응형

    'DataBase > 이론' 카테고리의 다른 글

    [DB 이론] MariaDB란?  (0) 2021.07.10
    [DB 이론] 데이터베이스란? (DBMS, DB구조)  (0) 2021.06.29

    댓글

    Designed by JB FACTORY