SQL, DBMS, RDBMS

박영준·2023년 6월 26일
0

DB

목록 보기
18/41

SQL

1. 정의

  • Structured Query Language, 구조적 질의 언어

  • 관계형 데이터베이스 시스템(RDBMS)을 제어하는 컴퓨터 언어

  • 많은 정보를 DB 에서 조작하고 관리하기 위해서 사용
    → DB 는 SQL 언어로 해야 대화가 통함. 그래서 SQL 언어로 바꿔줘야 한다.

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

  • SQL 자체는 범용 언어에 비해 한계가 있으므로,
    단독으로 사용하기 보단 고수준 언어(C#, Java, Python, PHP ...)와 함께 쓰는 것이 일반적

  • DB 가 이해할 수 있도록(RDBMS 를 칭함), 변형된 언어

  • 실행시키면(Run), 테이블이 자동으로 등록됨

2. DB에서 SQL을 이해하는 방법

1) 띄어쓰기 단위로 구분

  1. SELECT 의 첫번째 글자 'S'부터 하나씩 읽어가면서, 사용자의 요청을 분석한다.

  2. S, E, L, E, C, T 까지 읽는다.

  3. 띄어쓰기를 만나면, 이전까지의 글자를 합친다.
    (S, E, L, E, C, T → SELECT)

  4. 사용자가 SELECT 를 입력했다는 것을 알게된다.

2) 예약어 매칭

  • 예약어

    • SQL 이 정의해둔 특별한 의미를 가지는 단어들
    • "데이터를 가져오라." 는 의미
  • 정의(예약)돼있지 않은 단어를 사용하면, DB 는 SQL 질의를 이해하지 못한다.
    (예시 : SELECT는 이해O. CHOOSE는 이해X)

3) 예약어 규칙

// SELECT 다음에는 FROM 이 이고, FROM 다음에는 데이터를 가져오고싶은 테이블의 이름이 위치하도록 정의돼있다.
SELECT FROM 테이블 이름

위의 예시처럼
DBMS 는 앞에서부터 한 글자씩 읽어가면서
예약어를 이해하고, 각 예약어의 규칙을 기반으로 문장을 이해해나간다.

3. SQL 규칙

tTable 테이블이 있다고 가정

1) 세미콜론으로 마무리

// 단일 라인 명령
SELECT * FROM tTable;
 
// 멀티 라인 명령
SELECT * 
FROM tTable
WHERE city = 'Seoul';
  • SQL은 명령이 끝나는 부분을 세미콜론(;)으로 구분
  • 명령을 여러 줄에 걸쳐 작성하더라도, 세미콜론을 마지막에 작성해주면 하나의 명령어로 인식

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) 대소문자를 가리지 않는다

명령어와 테이블 이름을 대소문자 구분없이 사용한 경우

// 두 명령어는 동일함
SELECT * FROM tTable;
Select * from ttable;

(문자열을 제외하고) 일반적으로 대소문자를 가리지 않는다.
다만, 대소문자 구분을 통해 가독성을 향상시킬 수도 있다.

예시
1. 컬럼 이름은 소문자로, DB 이름은 첫 글자만 대문자로 하는 등... 대소문자를 통해 컬럼과 DB 를 구분할 수 있다.
2. DBMS 에서 DB 이름, 테이블 이름, 컬럼 이름 등... 에서 대소문자를 구분하도록 설정

4) 고유값은 따옴표('')로 감싸준다

SELECT * FROM EMP WHERE NAME = 'James';

5) 객체는 백틱(``)으로 감싸준다

SELECT `COST`, `TYPE` FROM `INVOICE`;

DBMS

  • Database Management System

  • 다수의 사용자들이 DB 내의 데이터에 접근할 수 있도록, DB 를 관리/운영해주는 소프트웨어 도구의 집합

RDBMS

1. 정의

  • Relational DBMS, 관계형 데이터베이스

  • 관계형 데이터베이스를 생성, 갱신, 관리하기 위한 시스템

  • 테이블(table)이라는 최소 단위로 구성
    → 이 테이블은 열(column)과 행(row)으로 이루어져 있음

  • 레코드 단위로 데이터 읽기/쓰기가 이루어진다.

  • C/S 구조 : 클라이언트가 요청을 보내면 서버가 처리
    (SQL : 클라이언트가 요청을 보낼 때에 주로 사용하는 언어)

  • 사용자가 데이터를 조회하고 싶을 때
    SQL 문으로 작성한 요청을 RDBMS에 보내면 RDMBS는 요청된 데이터를 반환
    (이 때 RDMBS는 2차원 표 형태의 데이터를 반환)

2. RDBMS 의 종류

단, 어떤 RDBMS를 쓰는지에 따라 SQL 문법이 조금씩 달라질 수는 있다.

1) Oracle DB

  • 가장 오래됨 + 신뢰도 높음
  • 뛰어난 기술력과 안정성
  • 사용처 : 대규모의 어플리케이션 → 특히 은행 업계

2) MySQL

  • 널리 사용됨 → 오픈 소스이므로
  • 사용처 : 웹 개발 → 특히 PHP를 이용한 개발

3) Maria DB

  • MySQL 5.5를 기반으로 만들어짐 → MySQL과 사용법이 거의 유사하고, 호환성도 뛰어나다.

4) PostgreSQL

  • 오픈 소스 ORDBMS (ORDBMS: 객체-관계형 데이터베이스 관리 시스템)
  • SQL의 확장성과 표준을 준수하고, 풍부한 기능을 지원

5) SQL Server

-윈도우 시스템 환경을 지원 (마이크로소프트가 개발했기 때문)

6) SQLite

  • DB 를 서버가 아닌 파일로 저장
  • 기기에 가벼운 DB를 저장하는 목적으로 설계
  • 사용처 : 안드로이드, iOS, mac OS

7) H2

  • In-memory DB 의 대표 주자
    → 서버 작동 중에만 내용을 저장하고, 서버 작동 멈추면 데이터가 모두 삭제됨
profile
개발자로 거듭나기!

0개의 댓글