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 |