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
'PYTHON-BACK' 카테고리의 다른 글
#파이썬 27일차_MYSQL4 (0) | 2024.08.08 |
---|---|
#파이썬 27일차_MYSQL3 (0) | 2024.08.07 |
#파이썬 24일차_Django_개발환경/동작원리/실습2/Todo list웹 서비스 만들기 (0) | 2024.08.01 |
#파이썬 23일차_Django_개발환경/동작원리/실습1 (0) | 2024.07.31 |
#파이썬 22일차_Django (0) | 2024.07.30 |