[데이터베이스] 7. 데이터 정의 (DDL)

문정준's avatar
Feb 26, 2025
[데이터베이스] 7. 데이터 정의 (DDL)
💡
데이터 정의어 (Data Definition Language)
  • CREATE ( 생성 )
  • ALTER ( 변경 )
  • DROP ( 제거 )
  • TRUNCATE ( 데이터 비우기 )
 

1. CREATE

  • 테이블, 뷰, 프로시저 등을 생성
create table team_tb ( tno int primary key, tname varchar(10) unique, tyear int, tloc varchar(10) ) charset=utf8mb4; create table player_tb ( pno int primary key, pname varchar(20), pnumber int, prole varchar(10), tno int ) charset=utf8mb4;
notion image
notion image
 

2. ALTER

  • 테이블 속성, 제약 조건, 뷰, 프로시저 등을 수정
-- 2. ALTER TABLE alter table player_tb change column prole ptype varchar(20);
 

3. DROP

  • 테이블, 뷰, 프로시저 등을 삭제
-- 3. DROP TABLE drop table player_tb;
 

4. TRUNCATE

  • 테이블 내의 내용 삭제
-- 4. TRUNCATE truncate team_tb;
notion image
 

제약 조건

  • primary key : 기본 키 설정 (unique + not null)
  • foreign key : 외래 키 설정 - 참조할 테이블과 제약 조건 설정
    • constraint 이름 foreign key(column) references 참조할 테이블(column)
  • auto_increment : 기본 값으로 숫자가 1씩 증가
  • not_null : null일 수 없음 (빈 칸이면 오류)
  • default : 기본 값 설정 (null일 경우 자동으로 입력)
notion image
notion image
create table player_tb ( pno int primary key auto_increment, pname varchar(20) not null, pnumber int, prole varchar(10) default '타자', tno int, constraint fk_player_tb foreign key(tno) references team_tb(tno) ) charset=utf8mb4;
notion image
 

제약 조건 : 외래 키

외래 키는 FF다. (Foreign key First, (n))
  • 참조하는 테이블의 값만 데이터에 넣기 위해 제약 조건 설정
    • 특정 테이블의 값을 참조하고 있다는 의미로 외래 키 설정
  • 제약 조건이 설정되면, 값을 함부로 삭제할 수 없음
    • 제약 조건을 없애야만 데이터 삭제 가능
    • 삭제 방법 1. 참조하는 column의 값을 null로 설정 (null 가능할 시)
    • 삭제 방법 2. cascade (연관된 값을 다 같이 삭제)
Index (목차)
데이터 10,000건 / pno = 8900 → 8900 데이터가 들어있는 위치를 기록
  • Seaquencial Access → Random Access 가능 (바로 찾아가기)
  1. 인덱스 목차 검색 (B-tree) - 검색된 위치에 데이터가 있음 (innoDB)
    1. 위치 Access
  1. 인덱스 목차 검사 (B-tree) - 참조 포인터
    1. 위치 Access (MyISAM)
 
Share article

sxias