Search
Duplicate
😀

01. DB 기초

태그

RDBMS

관계형(Relational) 데이터베이스 시스템
테이블 기반(Table based)의 DBMS
데이터를 하나의 단위로 관리
>> 하나의 테이블은 여러 개의 컬럼(Column)으로 구성
중복 데이터를 최소화 시킴
>> 같은 데이터가 여러 컬럼 또는 테이블에 존재 했을 경우,
데이터를 수정 시 문제가 발생할 가능성이 높아짐 - 정규화
여러 테이블에 분산되어 있는 데이터를 검색 시 테이블 간의 관계(join)를 이용하여 필요한 데이터를 검색

SQL(Structured Query Language)

Database에 있는 정보를 사용할 수 있도록 지원하는 언어
모든 DBMS에서 사용 가능
대소문자는 구별하지 않음(단, 데이터의 대소문자는 구분)

SQL의 종류 - DDL(Data Definition Language)

데이터 정의어
데이터베이스 객체(table, view, index,,,)의 구조를 정의
테이블 생성, 컬럼 추가, 타입 변경, 제약조건 지정, 수정 등

SQL의 종류 - DML(Data Manipulation Language)

데이터 조작어
데이터 조작기능
테이블의 레코드를 CRUD(Create, Retrieve, Update, Delete)

SQL의 종류 - DCL(Data Control Language)

데이터 제어어
DB, Table의 접근권한이나 CRUD 권한을 정의
특정 사용자에게 테이블의 검색권한 부여/금지 등

SQL의 종류 - TCL(Transaction Control Language)

트랜잭션 제어어
transaction이란 데이터베이스의 논리적 연산 단위

DDL

데이터베이스 생성, 변경, 삭제, 사용
// 생성 create database dbtest default character set utf8mb collate utf8mb4_general_ci; // 변경 alter database dbtest default character set utf8mb collate utf8mb4_general_ci; //삭제 drop database dbtest //사용 use dbtest;
SQL
복사

Data Type

CHAR[(M)]
고정 길이를 갖는 문자열을 저장
M은 1 ~ 255
CHAR(20)인 컬럼에 10자만 저장을 하더라도, 20의 기억장소를 차지함
VARCHAR[(M)]
가변 길이를 갖는 문자열을 저장
M은 1 ~ 65535
VARCHAR(20)인 컬럼에 10자만 저장을 하면, 실제로도 10자 만큼의 기억장소를 차지
INT[(M)]
4 byte 크기
signed, unsigned
DATETIME
locale을 적용하지 않음
ex) 한국에서 10시로 저장하면, 미국에서도 10시로 나옴
TIMESTAMP[(M)}]
locale 기준으로 시각을 맞춰서 저장함
ex) 한국에서 10시 설정하면 미국에선 시차 적용해서 8시로 보이는

Table의 생성

create table table_name( column_name1 Type [optional attributes], column_name2 Type, );
SQL
복사
Optional attributes
데이터의 추가적인 속성을 부여
AUTO INCREMENT와 같이 기능을 가지거나, PRIMARY KEY처럼 제약 조건을 가질 수 있다
제약 조건
컬럼에 저장될 데이터의 조건을 설정하는 것
제약조건을 설정하면 조건에 위배되는 데이터는 저장 불가
테이블 생성 시 컬럼에 직접 지정하거나 contstraint로 지정, 또는 ALTER를 이용하여 설정 가능

Data Manipulation Language (DML) : SELECT

기본 SELECT
// 모든 사원의 모든 정보 검색 select * from employees; // 사원이 근무하는 부서의 부서번호 검색 select all department_id from employees // 회사에 존재하는 모든 부서 select department_id from departments // 모든 사원의 사번, 이름, 급여 검색 select employee_id, first_name, salary from employees;
SQL
복사
alias, 사칙연산 (+, -, *, /), NULL Value
SQL
복사
Case when
SQL
복사
규칙
MySQL은 Data와 Alias에서 '' 와 ""를 구분하지 않지만, Oracle 등 다른 DB는 구분을 한다. 그래서 Data는 '', Alias는 ""를 사용하는 습관을 들이는게 좋다.

SELECT - Where

WHERE clause : 조건에 만족하는 행을 검색
실행순서 : from → where → select
AND, OR, NOT
논리 연산 시 주의점 : NULL

Transaction

트랜잭션 : 데이터베이스의 상태를 변화시키는 일종의 작업 단위를 의미
트랜잭션 도구