Dreamhack

SQL

kchabin 2022. 8. 11. 21:43

데이터베이스 :  컴퓨터가 정보를 기록하는 곳

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