MY SQL

DDL, MYSQL 기본 설명

미스터 한뺑 2022. 8. 11. 23:15
반응형

1. DDL

 
-- 데이터베이스와 테이블을 정의하는 언어
 
-- CREATE: 데이터베이스와 테이블을 생성하는 명령어
 
-- ALTER: 테이블을 수정하는 명령어
 
-- DROP: 데이터베이스와 테이블을 삭제하는 명령어

2.  MY SQL기본 설명

2-1 데이터 베이스 기본 조작

 
-- 데이터베이스 생성하기
create database (데이터베이스 명);
 
-- 데이터베이스 삭제하기
drop database (데이터베이스 명);
 
-- 데이터베이스 삭제시 조건 주기
drop database if exists(데이터베이스 명);
 
-- 데이터베이스 리스트 출력하기
show databases;

-- 데이터베이스를 선택하려면 아래의 USE 사용해야한다.
use(데이터베이스 명);
 
-- 현재 어떤 데이터베이스를 선택 했는지 확인한다.
select database();
 

2-2. 테이블 기본 조작

- 테이블 생성하기

create table (테이블 명)
    user_id int
);
 
-- 테이블 리스트 보기
show tables;

 
-- 테이블 삭제하기
drop table(테이블 명);
drop table if exists (테이블 명);
 
 
-- 테이블 변수타입지정과 가변길이 고정길이 정하기
create table(테이블 명)(
    (테이블 행) int,
    (테이블 행) varchar(10), # 가변길이, 입력한 크기만큼 공간이 잡힌다.
  (테이블 행) char(13) # 고정길이 , 가변길이보다 속도가 빠르다.
);
 
-- 테이블 구조 확인하기
desc (테이블 명)

*제약 조건

:데이터를 삽입할때 무조건 삽입되는게 아니라
 
-- 어떠한 조건을 만족 했을 경우에만 삽입되도록 하는 제약
 
-- 기본키(primary key) : 중복값 X, Null X
 
-- auto_increment: 새데이터 저장시 고유번호가 자동생성되서 들어간다.
create table tb_product(
    (테이블 행)int primary key auto_increment,
  (테이블 행) varchar(20) unique not null,
    (테이블 행) int
);
desc (테이블 명)
select * from (테이블 명)
 
 
*테이블 수정하기
 
 
-- 컬럼 추가하기
alter table (테이블 명) add(테이블 행) varchar(255);
desc tb_user;
 
-- 컬럼명 수정하기
alter table(테이블 명) change(테이블 행) varchar(50);
desc tb_user;
 
-- 컬럼 타입 수정하기
alter table(테이블 명) modify column (테이블 행)varchar(13);
 
-- 컬럼에 대하여 제약조건 및 속성 추가하기
alter table(테이블 명) modify column (테이블 행) int primary key auto_increment;
desc(테이블 명)

alter table (테이블 명) add(테이블 행) int;
 
-- 컬럼 삭제하기
alter table(테이블 명) drop(테이블 행);
desc tb_user;
alter table(테이블 명) modify column (테이블 행) varchar(10) not null;
alter table (테이블 명)modify column (테이블 행) varchar(13) not null;
alter table (테이블 명)modify column (테이블 행) varchar(255) not null;
desc (테이블 명);

# 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 tb_order;
반응형