본문 바로가기

PYTHON-BACK

#파이썬 26일차_MYSQL2

728x90

 

 

SQL로 테이블 생성

  • 우선 DB 생성
  • CREATE DATABASE tabledb;

 

열린 창을 모두 닫고 쿼리 창을 연다.(기존 작업하던 쿼리 창 다 닫기)

  • DROP DATABASE tabledb;
  • CREATE DATABASE tabledb;

 

제약 조건이란?

  • 데이터의 무결성을 지키기 위한 제한된 조건
  • 특정 데이터 입력 시 어떤 조건을 만족했을 때 입력되도록 제약을 거는것
    • 동일한 아이디로 다시 회원 가입 안되는 것

 

  • 데이터 무결성을 위한 제약 조건

•    PRIMARY KEY 제약 조건
•    FOREIGN KEY 제약 조건
•    UNIQUE 제약 조건
•    CHECK 제약 조건(MySQL 8.0.16부터 지원)
•    DEFAULT 정의
•    NULL 값 허용

 

  • 기본 키 제약 조건
    • 기본키란?
      • 테이블에 존재하는 많은 행의 데이터를 구분할 수 있는 식별자
      • 중복이나 NULL 값은 입력될 수 없음
    • 기본 키로 생성한 것은 자동으로 클러스터형 인덱스 생성
    • 테이블에서는 기본 키를 하나 이상 열에 설정 가능

 

  • 외래 키 제약 조건
    • 두 테이블 사이의 관계를 선언하여 데이터의 무결성을 보장하는 역할
    • 외래 키 관계를 설정하면 하나의 테이블이 다른 테이블에 의존
    • 외래 키 테이블이 참조하는 기준 테이블의 열은 반드시 Primary Key이거나 Unique 제약 조건이 설정되어 있어야 함
    • 외래 키 옵션 중에 ON DELETE CASCADE 또는 ON UPDATE CASCADE
      • 기준 테이블의 데이터가 변경되었을 때 외래 키 테이블도 자동으로 적용되도록 설정
  • 외래 키 생성 방법 1
    •  CREATE TABLE 끝에 FOREIGN KEY 키워드로 설정

 

  • 외래 키 생성 방법 2
    • ALTER TABLE 구문 이용

 

 

  • UNIQUE 제약 조건 
    • ‘중복되지 않는 유일한 값’을 입력해야 하는 조건
    •  PRIMARY KEY와 비슷하나 UNIQUE는 NULL 값 허용
    •  NULL은 여러 개가 입력되어도 상관 없음 ex) 회원 테이블 Email 주소 Unique로 설정

  •     CHECK 제약 조건
    • 입력되는 데이터를 점검하는 기능
      • ex) 키(Height) 제한 - 마이너스 값이 들어올 수 없도록,
      • 출생년도 제한 = 1900년 이후이고 현재시점 이전
    • ALTER TABLE 문으로 제약 조건 추가 가능

 

 

  • DEFAULT 정의
    • 값을 입력하지 않았을 때 자동으로 입력되는 기본 값 정의하는 방법
    • ALTER TABLE 사용 시에 열에 DEFAULT를 지정하기 위해서 ALTER COLUMN문 사용

 

  • Null 값 허용
    • NULL 값을 허용하려면 NULL을, 허용하지 않으려면 NOT NULL을 사용
    • PRIMARY KEY가 설정된 열에는 생략하면 자동으로 NOT NULL
    • NULL 값은 ‘아무 것도 없다’라는 의미, 공백(‘ ‘) 이나 0과 다름

 

테이블 삭제 구문

 

  • DROP  TABLE  테이블이름;
  • 외래 키 제약 조건의 기준 테이블은 삭제할 수가 없음
    • 먼저 외래 키가 생성된 외래 키 테이블을 삭제해야 함
      • 구매 테이블이 존재하는데 회원 테이블을 삭제 할 수 없음, 구매 테이블 삭제가 선행 되어야 함
  • 동시에 여러 테이블 삭제도 가능
    • DROP TABLE 테이블1, 테이블2, 테이블3
  • ALTER TABLE문 사용
    • 테이블에 무엇인가 추가/변경/수정/삭제 모두 ALTER TABLE문 사용
    • 열의 추가
      • 기본적으로 가장 뒤에 추가
      • 순서를 지정하려면 제일 뒤에 ‘FIRST’ 또는 ‘ALTER 열 이름’ 지정
      • ex) 회원 테이블(usertbl)에 회원 홈페이지 주소 추가

 

 

열의 삭제

 

  • 제약 조건이 걸린 열을 삭제할 경우 제약 조건을 먼저 삭제한 후에 열을 삭제해야 함
  • 열의 이름 및 데이터 형식 변경
  • ex) 회원 이름(name)의 열 이름을 uName으로 변경하고 데이터 형식을 VARCHAR(20)으로 변경, NULL 값도 
    허용하는 경우

 

열의 제약 조건 추가 및 삭제

  • ex) 기본 키를 삭제 하는 경우
  • usertbl의 기본 키인 userID열은 buytbl에 외래 키로 연결되어 있기 때문에
    외래  키를  제거한  후에  다시  기본  키를  제거해야  함
  • 일반적으로 발생하는 SQL 오류는 대부분이 무결성을 위한 키의 중복이 원인이 됨
728x90