본문 바로가기

sql

DDL (Data Definition Language)

DDL (Data Definition Language)

  • 데이터베이스와 테이블을 정의하는 구문
  • CREATE : 데이터베이스와 테이블을 생성하는 구문
  • ALTER : 테이블을 수정하는 구문
  • DROP : 데이터베이스와 테이블을 삭제하는 구문

 

데이터 베이스

 

# 데이터 베이스 생성
CREATE DATABASE shop;


# 데이터 베이스 삭제
drop database shop; 
drop database if exists shop;  


# 조건 줘서 삭제해보기
create database shop;


# 데이터 베이스 확인하기
show databases; 


# 데이터 베이스 선택하기
use shop;


# 현재 선택된 데이터 베이스를 확인
select database();

 


테이블 생성

 

# 테이블 생성하기
create table tb_user(
	user_id int 
);


# 현재 데이터 베이스에 테이블 확인하기
show tables;


# 테이블 삭제하기
drop table tb_user;
drop table if exists tb_user; # 조건 줘서 삭제하기

 

char vs varchar
char 고정길이
varchar 가변길이

 

# 고객 테이블 만들어보기
create table tb_user(
	user_id int, # 고객 id
    user_name varchar(10), # 가변길이, 입력한 길이 만큼 공간이 잡힌다.
    phone char(13) # 고정길이, 가변길이 보다 속도가 빠르다.
);


# 테이블 구조 확인
desc tb_user;

 

# 상품 테이블 만들기

create table tb_product(
	# primary key(기본키) 
    # auto_increment
    -- 데이터가 새로 삽입될 때마다 1씩 증가하여 자동으로 들어간다.
	product_id int primary key auto_increment,
    
    # unique 중복을 허용하지 않겠다.
    # not null 널을 허용하지 않겠다.
    product_name varchar(20) unique not null,
    product_price int  
);
desc tb_product;

 

primary key

  • 중복될b수 없는 단일 값을 가질 수 있고
  • null 을 허용하지 않는다.
primary key를 잘 설정하고 찾는게 정말 정말 중요!

 

 

테이블 수정

  • 컬럼
# 컬럼 추가하기
alter table tb_user add user_addr varchar(255);
desc tb_user;


# 컬럼명 수정하기
alter table tb_user change phone user_phone varchar(50);
desc tb_user;


# 컬럼 삭제하기
alter table tb_user drop user_age;

 

# 컬럼에 제약조건및 속성 추가해보기
alter table tb_user modify column user_id int primary key auto_increment;
desc tb_user;


# 컬럼에 타입을 수정하기
alter table tb_user modify column user_phone varchar(13);
desc tb_user;

alter table tb_user add user_age int;

 

foreign key

  • 외래키, 참조키
  • 다른 테이블의 기본키를 참조하는 데이터
  • 다른 테이블의 기본키를 참조하는 데이터
  • 부모 테이블: pk 보유 테이블
  • 자식 테이블: 참조하는 테이블

 

create table tb_order(
	order_id int primary key auto_increment,
    user_id int,
    product_id int,
    order_dt datetime default current_timestamp,
    foreign key(user_id) references tb_user(user_id),
    foreign key(product_id) references tb_product(product_id)
);

#내림차순 정렬 (desc)
desc tb_order;

 

'sql' 카테고리의 다른 글

DML (Data Manipulation Language)  (0) 2023.05.11
데이터 베이스의 개요  (0) 2023.05.11