테이블

2024. 7. 11. 11:15·빅데이터 분석가 양성과정/MySQL
목차
  1. SQL로 테이블 생성
  2. 제약조건(Constraint)
  3. PRIMARY KEY(기본 키)
  4. FOREIGN KEY(외래 키)
  5. UNIQUE
  6. CHECK
  7. DEFAULT
  8. NULL
  9. 뷰
  10. 실습
  11. 생성
  12. 수정
  13. 삭제
  14. OR REPLACE
  15. 그룹 함수 사용하는 뷰
  16. 뷰의 장점

MySQL Workbench 에서 테이블 생성

SQL로 테이블 생성

  • 쿼리 문으로 코드 입력하여 생성
  • CREATE, INSERT

제약조건(Constraint)

  • 데이터의 무결성을 지키기 위한 제한된 조건
  • 특정 데이터를 입력 시 어떠한 조건을 만족 했을 때에 입력되도록 제약
  • 데이터의 무결성을 위한 제약조건
  • 제약조건은 CREATE 할 때는 필드 옆에 바로 쓸 수도 있지만 마지막에 CONSTRAINT 로 지정해 줄 수 도 있다
  • CREATE 할 때 못넣었으면 (); 밖에서 ALTER ADD(DROP) CONSTRAINT로 추가 해 줄 수 도 있다.

PRIMARY KEY(기본 키)

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

FOREIGN KEY(외래 키)

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

UNIQUE

  • 중복되지 않는 유일한 값을 입력해야 하는 조건
  • PRIMARY KEY와 비슷하나 UNIQUE는 NULL 값 허용
    • NULL은 여러 개가 입력되어도 상관 없음

CHECK

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

DEFAULT

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

NULL

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

 

뷰

  • 뷰는 일반 사용자 입장에서는 테이블과 동일하게 사용하는 개체다.
  • 한 번 생성해 놓으면 테이블이라고 생각하고 사용해도 될 정도로 사용자들의 입장에서는 테이블과 거의 동일한 개체로 여겨진다.
  • 테이블로 봐도 무방하다

    
SELECT userid, name, addr FROM usertbl;
CREATE VIEW v_usertbl AS SELECT userid, name, addr FROM usertbl;
SELECT * FROM v_usertbl;

  • 뷰 작동 방식

실습

생성


    
CREATE VIEW v_userbuytbl AS
SELECT
U.userid AS'USER_ID',
U.name AS 'USER_NAME',
B.prodName AS 'Product_Name',
U.addr,
CONCAT(U.mobile1, U.mobile2) AS 'MOBILE_PHONE'
FROM usertbl U
INNER JOIN buytbl B
ON U.userid = B.userid;
SELECT * FROM v_userbuytbl;

수정


    
ALTER VIEW v_userbuytbl AS
SELECT
U.userid AS'사용자 아이디',
U.name AS '이름',
B.prodName AS '제품이름',
U.addr '주소',
CONCAT(U.mobile1, U.mobile2) AS '전화번호'
FROM usertbl U
INNER JOIN buytbl B
ON U.userid = B.userid;
SELECT * FROM v_userbuytbl;

삭제


    
DROP VIEW v_userbuytbl;

 

OR REPLACE

  • 있으면 지워서 만들고 없으면 그냥 만들어라

    
CREATE OR REPLACE VIEW v_userbuytbl AS
SELECT
U.userid AS'USER_ID',
U.name AS 'USER_NAME',
B.prodName AS 'Product_Name',
U.addr,
CONCAT(U.mobile1, U.mobile2) AS 'MOBILE_PHONE'
FROM usertbl U
INNER JOIN buytbl B
ON U.userid = B.userid;

 

그룹 함수 사용하는 뷰

  • SUM() 함수 사용하는 뷰

    
CREATE VIEW v_sum AS
SELECT userid AS 'userid', SUM(price*amount) AS 'total'
FROM buytbl GROUP BY userid;
SELECT * FROM buytbl;
SELECT * FROM v_sum;

 

뷰의 장점

  1. 보안에 도움이 된다.
    1. 필요한 부분만 보여줄 수 있기 때문에
  2. 복잡한 쿼리를 단순화 시켜 줄 수 있다.
    1. 쿼리문이 짧아진다.
      1. 한 번 만들어 만 놓으면 긴 쿼리문을 실행 안 시켜도 된다.

'빅데이터 분석가 양성과정 > MySQL' 카테고리의 다른 글

스토어드 프로시저  (0) 2024.07.11
인덱스  (1) 2024.07.11
MySQL의 데이터 형식  (2) 2024.07.11
SQL 기본 쿼리문 ( 2 )  (0) 2024.07.11
SQL 기본 쿼리문 ( 1 )  (0) 2024.07.11
  1. SQL로 테이블 생성
  2. 제약조건(Constraint)
  3. PRIMARY KEY(기본 키)
  4. FOREIGN KEY(외래 키)
  5. UNIQUE
  6. CHECK
  7. DEFAULT
  8. NULL
  9. 뷰
  10. 실습
  11. 생성
  12. 수정
  13. 삭제
  14. OR REPLACE
  15. 그룹 함수 사용하는 뷰
  16. 뷰의 장점
'빅데이터 분석가 양성과정/MySQL' 카테고리의 다른 글
  • 스토어드 프로시저
  • 인덱스
  • MySQL의 데이터 형식
  • SQL 기본 쿼리문 ( 2 )
분석가 황규진
분석가 황규진
공공기관 위험평가관련 부서에서 근무하고 있습니다.
HGJ's Insight공공기관 위험평가관련 부서에서 근무하고 있습니다.
글쓰기 관리
분석가 황규진
HGJ's Insight
홈
|
로그인
  • 전체 글 555
    • 개인 활동(일상) 3
      • 독서 2
      • 근황 공유 1
    • 개인 활동(공부) 44
      • Tableau Bootcamp 10
      • 직무 공부 22
      • 강의 12
    • 개인프로젝트 0
      • 신용카드 연체 평가 모델 0
    • 자격증 7
      • 빅데이터분석기사 1
      • 정보처리기사 1
      • 경영정보시각화 1
      • SQL개발자(SQLD) 1
      • 데이터 분석 준전문가(ADsP) 1
      • 통계적품질관리(SPC) 1
      • AICE Associate 1
    • 코드 정리 11
      • 코드 정리 - Tistory 8
      • 코드 정리 - Python 3
    • 코딩테스트연습 116
      • SQL_프로그래머스 116
    • 취업사관학교 9기 199
      • 모닝스쿨 54
      • 스스로 모닝스쿨 125
      • 직무 스터디 20
      • 반성과 다짐 0
    • 빅데이터 분석가 양성과정 174
      • Python 88
      • Python - 머신러닝 26
      • Python - 딥러닝 32
      • PyQt 4
      • JavaScript 10
      • MySQL 13
      • Node.js 1
hELLO· Designed By정상우.v4.6.1
분석가 황규진
테이블
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.