2 분 소요

데이터 베이스(DataBase) SQL DDL



DB 관련 용어 정리

DataBase : 다수의 인원, 시스템, 프로그램이 사용할 목적으로 통합하여 관리되는 데이터 집합

DBMS : 데이터관리의 복잡성을 해결하는 동시에 추가, 변경, 삭제, 검색 등의 기능을 지원하는 소프트웨어

RDB(Relation Data Base) : 모든 데이터를 2차원 데이블 형태로 표현하는 관계형 데이터 모델에 기초를 둔 데이터 베이스

RDBMS : RDB를 생성하고 수정하고 관리할 수 있는 소프트웨어로서 RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있음. 정규화를 통해 데이터의 중복성을 최소화하여 트랜잭션을 수행하는 것이 더 쉽고 데이터의 원자성, 일관성, 격리 및 내구성을 유지하여 데이터의 무결성을 높임

정규과 : 데이터 중복성을 제거하여 이상현상을 방지하고, 데이터의 일관성정확성을 유지하기 위한 무손실 분해 과정

트랜잭션 : 하나의 논리적 기능을 정상적으로 수행하기위한 작업의 기본 단위

무결성 : 데이터가 임의로 변경될 수 없으며, 데이터의 정확성 및 완전성, 파괴 혹은 훼손되지 않음을 보장하는 특성


데이터 베이스 관리 시스템을 사용하는 이유

- 중복된 데이터를 제거

- 자료를 구조화시킬 수 있음

- 효율적인 처리

- 다양한 프로그램을 사용하는 사용자들과 데이터를 공유



SQL(Structured Query Language)

관계형 데이터 베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어로써, 대소문자를 구변하지 않고 문자열을 저장할 때 ‘ 싱글따옴표만 사용함.

기본 문법

-- 데이터 베이스 확인
    show databases;
-- 데이터 베이스 생성
    create database 데이터베이스명;
    create database AIclass;
-- 데이터 베이스 삭제
    drop database 데이터베이스명;
    drop database aiclass;
-- 데이터베이스 사용
    use 데이터베이스명;
    use aiclass;


스키마 : 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조

테이블 : 필드들로 구성된 데이터의 집합

데이터 정의어(DDL) : 데이터를 정의하는 언어로서 데이터를 담는 그릇을 의미

데이터 조작어(DML) : 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어

데이터 제어어(DCL) : 데이터 보안, 무결성 유지, 병행제어, 회복을 위해 관리자가 사용하는 제어용 언어



DDL

명령어 : CREATE(생성), ALTER(수정), DROP(삭제), TRUNCATE(데이터 삭제)

[테이블 생성]

    create table 테이블명{
        컬럼명1 데이터타입 [제약조건],
        컬럼명2 데이터타입 [제약조건],
        컬럼명3 데이터타입 [제약조건],
        ...
        컬럼명n 데이터타입 [제약조건]
   *제약조건 : PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT
    }
-- 예시)
    create table member(
        번호 int auto_increment primary key,
        아이디 varchar(20) unique not null,
        이름 varchar(20) not null,
        비밀번호 varchar(20) not null,
        가입날짜 datetime default now()
    )


데이터타입

1. 숫자타입
   정수 : tinyint, smallint,meduimint, int, bigint ..
   실수 : float, double
   
2. 문자열타입
   텍스트 : char, varchar, text
    - char(10) : 1byte 만 저장하더라도 총 10byte 를 소모함
    - varchar(10) : 1byte 만 저장하면 총 1byte 를 소모함, 총 65535byte 까지 저장 가능
      바이너리 : binary, varbinary
      열거 : enum
      enum('남자','여자')
      
3. 날짜와 시간타입
   날짜 : date
   날짜와 시간타입 : datetime, timestamp
   timestamp : 1970년 1월 1일 0시 0분 0초 부터, 밀리세컨드 단위로 증가


제약조건

not null : 컬럼에 null 을 저장할 수 없을 의미
unique : 중복된 값을 저장할 수 없음, 그 대신 null 값을 허용
default : 기본값을 설정
auto_increment : 자동으로 숫자가 증가되어 추가, 중복값이 저장되지 않음, 직접 데이터를 추가할 수 없음
primary key : unique 제약과 not null 제약을 동시에 가짐, 테이블에 오직 하나의 컬럼에만 적용,
              데이터를 쉽고 빠르게 찾을 수 있게 설정(색인), 외래키가 참조할 수 있도록 설정
foreign key : 다른 테이블과 연결해주는 역할, 기분이 되는 테이블의 내용을 참조해서 레코드가 입력
              primary key 를 참조



[테이블 수정]

ALTER TABLE 테이블명 ADD 컬럼명 데이터타입[제약조건]; -- *추가
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입[제약조건]; -- *수정
ALTER TABLE 테이블명 DROP 컬럼명 데이터타입[제약조건]; -- *삭제



[테이블 삭제]

DROP TABLE 테이블명 [CASCADE | RESTRICT]; 
-- *CASCADE : 연쇄제거, RESTRICT : 참조중 제거하지않음



[데이터 삭제]

TRUNCATE TABLE 테이블명;

태그:

카테고리:

업데이트: