MySQL 제약조건 추가, 수정 및 삭제

2019. 5. 5. 00:05·프로젝트 관련 조사/DB
반응형

출처: https://toma0912.tistory.com/47

 

안녕하세요. 오늘은 제약사항에 대해서 포스팅 해보려고 합니다. 우선 '제약 조건'의 의미에 대해서 알아보고 간단한 예제를 통해 제약 조건에 대해서 알아보겠습니다.

 

제약조건(Constraint)?

 

제약조건(Constraint)이란, 데이터의 무결성을 지키기 위해 제한된 조건을 의미합니다. 즉, 데이터를 삽입할 때 무조건적으로 삽입되는 것이 아니라 어떠한 조건을 만족했을 경우에만 데이터가 삽입되도록 제약을 할 수 있는 것이라고 생각하시면 됩니다.

 

우선 기본적인 제약 조건들의 사용법에 대해서 알아보겠습니다.

// 제약조건 확인하기

DESC 데이터베이스 명.테이블 명;

 

// 제약조건 삭제

ALTER TABLE [테이블 명] DROP CONSTRAINT [제약조건 이름];

ALTER TABLE [테이블 명] DROP FOREIGN KEY [제약조건 이름];

 

// 제약조건 추가

외래키 : ALTER TABLE [테이블 명] ADD CONSTRAINT [제약조건 이름] FOREIGN KEY(컬럼 명)

REFERENCES [부모테이블 명](PK 컬럼 명) [ON DELETE CASCADE / ON UPDATE CASCADE];

 

기본키 : ALTER TABLE [테이블 명] ADD CONSTRAINT [제약조건 이름] PRIMARY KEY(컬럼 명);

 

// NOT NULL 제약 조건 추가

ALTER TABLE [테이블 명] MODIFY [컬럼 명] [데이터 타입] CONSTRAINT [제약조건 이름] NOT NULL;

 

우선, 기본적으로 테이블을 생성할 때 제약 조건을 아래와 같이 추가할 수 있습니다. 그리고 나서 간단한 예제를 통해 위의 제약조건에 대해서 알아보겠습니다.

 

 

제약 정의

 

 

위의 테이블 생성 코드를 살펴보면, a 열에는 NOT NULL  제약이 걸려 있습니다. b 열에는 NOT NULL 제약과 UNIQUE 제약이 걸려 있습니다.

c 열에는 아무런 제약사항이 없는 것을 확인할 수 있습니다. 이처럼 열에 정의하는 제약을 '열 제약'이라 부릅니다.

 

또다른 예제로 테이블에 제약을 정의하는 방법에 대해서 알아보겠습니다.

위 코드를 살펴 보시면, 제약에는 이름을 붙일 수 있습니다. 제약에 이름을 붙이면 나중에 관리하기 쉬워지므로 가능한 한 이름을 붙이도록 합니다. 제약 이름은 CONSTRAINT 키워드를 사용해서 지정합니다.

 

 

제약 추가

 

1) 열 제약 추가

 

ALTER TABLE 구문을 사용해서 c열에 NOT NULL 제약 조건을 추가한 뒤, 테이블을 보면 기본 생성 테이블과 다르게 NULL에 NO라고 제약이 추가된 것을 확인할 수 있습니다.

 

2) 테이블 제약 추가

 

테이블 제약은 ALTER TABLE의 ADD 하부명령으로 추가할 수 있습니다. 기본키는 테이블에 하나만 설정할 수 있으며, PRIMARY KEY 키워드를 사용해서 a를 기본키로 지정했습니다. 그리고, 이미 기본키가 설정되어 있는 테이블에 추가로 기본키를 작성할 수는 없습니다.

 

 

제약 삭제

 

1) 열 제약 삭제

 

기본적으로 열 제약 삭제의 경우에는 제약조건 수정과 마찬가지로 ALTER TABLE 구문을 사용합니다. 위의 코드를 살펴보시면, sample631 테이블의 c열의 NOT NULL 제약조건을 삭제한 것을 확인할 수 있습니다.

 

2) 테이블 제약 삭제

위의 코드를 살펴보시면, DROP 명령어를 통해 삭제할 제약 조건인 PRIMARY KEY를 삭제하는 것을 확인할 수 있습니다.  

 

이것으로 MySQL 제약조건 추가, 수정 및 삭제에 대해 간단히 알아보았고, 포스팅을 마치도록 하겠습니다. : )



출처: https://toma0912.tistory.com/47 [토마's 개발노트]

반응형

'프로젝트 관련 조사 > DB' 카테고리의 다른 글

ubuntu mysql 한글 패치  (0) 2019.08.12
[MYSQL] 문자열 타입 (column type)  (0) 2019.06.11
[MYSQL] constraints 설정 값 확인 명령어  (0) 2019.05.05
데이터베이스 네이밍 룰  (0) 2019.05.02
[MSSQL] 엑셀에서 쿼리 만들기  (0) 2017.05.17
'프로젝트 관련 조사/DB' 카테고리의 다른 글
  • ubuntu mysql 한글 패치
  • [MYSQL] 문자열 타입 (column type)
  • [MYSQL] constraints 설정 값 확인 명령어
  • 데이터베이스 네이밍 룰
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타
        • 세상 모든 정보
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    수제버거맛집
    무역전쟁
    AWS
    돈까스
    보안가이드
    이재곧죽습니다
    점심
    쥬쥬랜드
    판교
    마케팅
    복리후생
    런치
    수제버거존맛
    맛집
    판교맛집
    상호관세
    유니티
    수제버거
    판교역
    대통령
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
MySQL 제약조건 추가, 수정 및 삭제
상단으로

티스토리툴바