데이터베이스 : 컴퓨터가 정보를 기록하는 곳
DBMS : 데이터베이스 관리 시스템
DataBase Management System (DBMS)
- DB에 새로운 정보 기록, 수정, 삭제
- 다수의 사람이 동시 접근 가능
- 웹 서비스의 검색 기능과 같이 복잡한 요구사항을 만족하는 데이터를 조회할 수 있다.
관계형 : 테이블(행과 열의 집합) 형식으로 데이터 저장
- MySQL, MariaDB, PostgreSQL, SQLite
비관계형 : 키값(Key-Value) 형태로 값 저장
- MongoDB, CouchDB, Redis
Relational DBMS
행(row)과 열(column)의 집합으로 구성된 테이블의 묶음 형식으로 데이터를 관리.
테이블 형식 데이터를 조작할 수 있는 관계 연산자 제공
관계 연산자
- Structured Query Language(SQL) 라는 쿼리 언어 사용.
- 쿼리를 통해 테이블 형식의 데이터를 조작함.
학교(데이터베이스)
학생 명부, 출석부, 성적표, 생활기록부 -> 테이블
각 테이블의 정보를 사용할 때는 학번(학생들의 고유 키)을 참조해 사용함.
SQL
RDBMS의 데이터를 정의하고 질의, 수정 등을 하기 위해 고안된 언어.
- 구조화된 형태를 가짐
- 웹 어플리케이션이 DBMS와 상호작용할 때 사용됨.
언어 | 설명 |
DDL (Data Definition Language) |
데이터를 정의하기 위한 언어. 데이터를 저장하기 위한 스키마, 데이터베이스의 생성/수정/삭제 등의 행위를 수행한다. |
DML (Data Manipulation Language) |
데이터를 조작하기 위한 언어. 실제 데이터베이스 내에 존재하는 데이터 조회/저장/수정/삭제 등의 행위를 수행한다. |
DCL (Data Control Language) |
데이터베이스의 접근 권한 등의 설정을 하기 위한 언어입니다. 데이터베이스 내에 이용자의 권한을 부여하기 위한 GRANT와 권한을 박탈하는 REVOKE가 대표적입니다. |
DDL
RDBMS 기본 구조 : DB -> 테이블 -> 데이터 구조
데이터를 다루기 위해 DB와 테이블을 생성해야 하며, DDL을 사용해야 한다.
CREATE : 새로운 데이터베이스/테이블 생성
SWING이라는 데이터베이스를 생성하는 쿼리문
CREATE DATABASE SWING;
앞서 생성한 데이터베이스에 Board 테이블을 생성하는 쿼리문
USE SWING;
#Board 이름의 테이블 생성
CREATE TABLE Board(
idx INT AUTO_INCREMENT,
boardTitle VARCHAR(100) NOT NULL,
boardContent VARCHAR(2000) NOT NULL,
PRIMARY KEY(idx)
);
DML
생성된 테이블에 데이터 추가
INSERT : 데이터 생성
SELECT : 데이터 조회
UPDATE : 데이터 수정
테이블 데이터 생성
Board 테이블에 데이터 삽입
INSERT INTO
Board(boardTitle, boardContent, createdDate)
Values(
'Hello',
'World !',
Now()
);
테이블 데이터 조회
SELECT
boardTitle, boardContent
FROM
Board
Where
idx=1;
테이블 데이터 변경
Board 테이블의 컬럼 값을 변경하는 쿼리문
UPDATE Board SET boardContent= 'DreamHack!'
Whrer idx=1;
'Dreamhack' 카테고리의 다른 글
SQL Injection(2) (0) | 2022.08.11 |
---|---|
SQL Injection(1) (0) | 2022.08.11 |
CSRF 실습 (0) | 2022.08.05 |
암호학 Stage 4 (0) | 2022.08.05 |
암호학 Stage 3 (0) | 2022.08.04 |