Back-end/DB

DB basic (RDBMS, SQL)

Coding Kitsune 2025. 10. 8. 15:14

 

 

SQL 구문의 종류

 

 

DDL (Data Definition Language)

: 데이터를 정의하는 언어, 데이터를 저장할 수 있도록 구조를 만들어주는 언어

 

CREATE : 데이터베이스, 인덱스, 테이블 등 공간을 생성하기 위한 명령어

 

CREATE DATABASE `heebumDB`;

 

CREATE TABLE 'heebumtb' 

(           ...

)

 

 

DROP : 데이터베이스, 테이블 등 공간을 삭제하기 위한 명령어

 

DROP DATABASE 'heebumDB';

 

DROP TABLE 'heebumtb';

 

 

 

ALTER : 이미 생성한 공간에 추가 작업하기 위한 명령어

 

ALTER TABLE 'heebumtb' ADD '컬럼명';

ALTER TABLE 'heebumtb' MODIFY '컬럼명';

ALTER TABLE 'heebumtb' DROP '컬럼명';

 

 

 

 

 

CHARACTER SET 관련 :

요즘은 Emoji를 많이 사용하기 때문에, 이를 저장할 수 있는 형태로 구성해야한다.

 

   

 

 

 

DML (Data Manupulation Language)

: 데이터를 추가, 읽기, 수정, 삭제를 위한 언어

 

 

 

INSERT : 하나의 데이터 묶음을 테이블에 저장하기 위한 명령어

 

INSERT INTO 'heebumTB' VALUES (100, '희범', 500);

 

INSERT INTO 'heebumTB' ('id', 'name', 'number') VALUES (100, '희범', 500);

 

 

 

SELECT : 하나 또는 여러 개의 데이터 묶음을 조회하기 위한 명령어

 

SELECT [ALL / DISTINCT] 컬럼1, 컬럼2, ...
FROM 테이블명
WHERE 컬럼1 = '조회조건';

 

 

DISTINCT : 중복을 제거하기 위해서 사용, 단 성능 저하가 발생할 수 있음

 

LIKE : 문자열의 부분 일치를 확인하기 위한 절

% : N개의 자리를 뜻함

_ : 1개의 자리를 뜻함

SELECT `컬럼 명` FROM `테이블 명` WHERE `컬럼 명` LIKE "%탐색문자열_";

 

 

GROUP BY: 열 단위로, 하나의 그룹을 구성하는 절

단일결과, 다중결과가 나타날 수 있는 컬럼을 고려하여 작성해야한다

WHERE 절이 일반 필터였다면 HAVING 절은 GROUP BY 조건에서 사용되는 필터

 

GROUP BY절은 반드시 HAVING절을 사용해야하고, WHERE 절을 사용하지 않는다!

 

 

 

 

 

UPDATE : 특정 데이터를 수정하기 위한 명령어

반드시 조건을 부여하지 않으면 모든 데이터에 영향을 미친다는 점을 기억해야한다.

 

UPDATE 'heebumTB' SET '이름' = '하하'  -> 모든 컬럼의 이름을 '하하'로 변경하게 된다.


UPDATE 'heebumTB' SET '이름' = '하하' WHERE id = 45; -> 이런식으로 조건을 부여해줘야한다.

 

 

DELETE : 특정 데이터를 삭제하기 위한 명령어

반드시 조건을 부여하지 않으면 모든 데이터에 영향을 미친다는 점을 기억해야한다.


DELETE FROM 'heebumTB' WHERE id = 45;

 

 

 

 

 

 

RDBMS 

관계형 데이터베이스는 테이블 기반으로 구성되어있으며, 테이블 간 관계가 존재하기에 RDBMS라 부른다.

테이블 간의 관계는 Key를 이용하여 만들어진다.

 

Structure : 하나의 DB에는 여러개의 Table이 구성되어 있고, Table에는 여러개는 Column으로 구성.

 

 

Table : 동일한 데이터 양식을 관리하는 단위 

 

Column : Table에서 어떤 내용을 담아둘지에 대한 이름으로, DTO 설계에 사용

 

Row : 실질적인 하나의 데이터 묶음

 

 

 

'Back-end > DB' 카테고리의 다른 글

MYSQL TABLE들 JOIN 해보기  (0) 2022.05.22
MYSQL 기본, CRUD (2)  (0) 2022.05.21
MYSQL 기본, CRUD (1)  (0) 2022.05.21