-
데이터 정의어(DDL)DataBase/SQL 2022. 11. 10. 21:51728x90
데이터 정의어(DDL : Data Definition Language)
데이터를 정의하는 언어로서 데이터를 담는 그릇을 의미한다. 데이터 베이스를 정의하고 테이블을 생성하는 등 데이터를 담을 수 있는 골격을 결정하는 역할을 한다.
명령어
- CREATE(생성) : 데이터 베이스, 테이블을 생성한다.
- ALTER(수정) : 테이블을 수정한다.
- DROP(삭제) : 데이터 베이스, 테이블을 삭제한다.
- TRUNCATE(초기화) : 테이블 내 데이터를 초기화한다.
테이블 생성
create table 테이블명( 컬럼명1 데이터타입 [제약조건], 컬럼명2 데이터타입 [제약조건], 컬럼명3 데이터타입 [제약조건], ... 컬럼명n 데이터타입 [제약조건] );
* 데이터타입
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 제약과 not null 제약을 동시에 가짐, 테이블에 오직 하나의 컬럼에만 적용됨.
데이터를 쉽고 빠르게 찾을 수 있게 설정(색인), 외래키가 참조할 수 있도록 설정foreign key 다른 테이블과 연결해주는 역할, 기준이 되는 테이블의 내용을 참조해서 레코드를 입력.
primary key 를 참조-- 예시) create table member( idx int auto_increment primary key, userid varchar(20) unique not null, name varchar(20) not null, password varchar(20) not null, regdate datetime default now() );
테이블 수정
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입[제약조건]; -- *추가 ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입[제약조건]; -- *수정 ALTER TABLE 테이블명 DROP 컬럼명 데이터타입[제약조건]; -- *삭제
테이블 삭제
테이블 자체를 모두 지우는 것으로 인덱스도 같이 지워진다.
DROP TABLE 테이블명 [CASCADE | RESTRICT]; -- *CASCADE : 연쇄제거, RESTRICT : 참조중 제거하지않음
데이터 삭제
테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납한다. 테이블 자제가 지워지는 것이 아니며, 인덱스 또한 TRUNCATE 된다.
TRUNCATE TABLE 테이블명;
728x90'DataBase > SQL' 카테고리의 다른 글
[mysql] order by 시 null값을 목록 끝으로 정렬 (0) 2022.12.22 조인(Join) (0) 2022.11.13 데이터 제어어(DCL) (0) 2022.11.12 데이터 조작어(DML) (1) 2022.11.12 SQL(Structured Query Language) (0) 2022.11.08