[SQLD] SQL 기본 #1

pxrksuhn·2023년 3월 6일
0
post-thumbnail


USER 관점에서의 SQL 문장 종류


DCL (Data Control Language) - 권한 받기

  • GRANT : 권한 부여

  • REVOKE : 권한 회수


DDL (Data Definition Language) - 데이터 구조 정의

  • CREATE : 구조 생성

  • ALTER : 구조 변경

  • DROP : 구조 삭제

  • RENAME : 이름 변경

  • TRUNCATE : 테이블 초기화




DCL : 데이터베이스 사용자에게 권한을 부여/회수하는 언어


기본 문법

  • GRANT 권한 ON 테이블 TO 유저;

  • REVOKE 권한 ON 테이블 FROM 유저;


POINT. 권한의 종류 💡

  • SELECT, INSERT, UPDATE, DELETE

  • REFERENCES, ALTER, INDEX

  • ALL


POINT. GRANT 옵션 💡

  • TO 유저 WITH GRANT OPTION;

    • 특정 사용자에게 권한 부여가능한 권한을 부여함

    • 단, 부모가 회수될 때 자식도 회수됨

  • TO 유저 WITH ADMIN OPTION;

    • 테이블에 대한 모든 권한 부여

    • 부모의 권한 회수는 자식과 상관없음


🚨 ROLE 주의 🚨

  • 다양한 권한을 다양한 유저를 대상으로 관리하기 위한 명령어이다.

  • 여러 사용자에게 동일한 ROLE 부여가 가능하다.

  • ROLE의 생성은 [ CREATE ROLE ] 권한을 가진 유저가 할 수 있다.




DDL : 데이터를 보관하고 관리하기 위한 객체의 구조를 정의하기 위한 언어


1. CREATE : 데이터베이스 상 테이블 구조 생성

CREATE TABLE C_INFO (
    이름		varchar2(10),
    생년		number(4),
    phone	 varchar2(15),
    첫방문일  date,
    고객번호  varchar2(10)
);

POINT. 구조 💡

  • 컬럼명

    • 영문, 한글, 숫자 모두 가능 (시작만 문자로)

      ex. h10(O), 10h(X)

  • 데이터 타입

    • number : 숫자형

    • date : 날짜형

    • varchar2 : 가변길이 문자열

      ex. '코난' != '코난     '

    • char : 고정된 크기 문자열로 할당된 길이만큼 문자를 채움

      ex. '코난' = '코난     '

  • 컬럼 뒤 데이터 유형 지정 필수


POINT. 제약조건 (CONSTRAINT) 💡

  • default : 기본값 지정

  • not null : null 입력 불가

  • primary key : 기본키 지정

    • PK는 not null 이다.

    • PK는 unique 한 값이다. (테이블 내 중복 없음)

  • foreign key : 외래키 지정

    • 테이블당 여러개 가능

🚨 COUNT 주의 🚨

  • count(*) : 전체 행의 수 카운트, null 포함
  • couunt(컬럼명) : null 제외한 행 수 카운트

POINT. NULL 💡

  • NULL은 모르는 값을 상징하고, 값이 없음(부재)을 의미한다.
  • NULL IS NULL = TRUE
  • NULL과의 모든 비교(ex. NULL = 0)은 알 수 없음(NULL)을 반환함
  • NULL은 숫자 0이나 공백문자('')와 동일하지 않다. (이들은 값이 있다.)

2. ALTER : 테이블과 컬럼에 대해 이름 및 속성 변경, 추가/삭제 등 구조 수정을 위해 사용한다.

  • 테이블명 (특정) 변경

    • ALTER TABLE MENU RENAME TO ho_MENU;
  • 테이블명 (다수) 변경

    • RENAME TABLE MENU TO ho_MENU;

      (다수 테이블명 동시에 변경 가능)

  • 컬럼명 변경

    • ALTER TABLE MENU RENAME COLUMN phone TO 전화번호;
  • 컬럼 속성 변경

    • ALTER TABLE MENU MODIFY (이름 varchar(20) not null);
  • 컬럼 추가

    • ALTER TABLE MENU ADD (거주지역 varchar(10));
  • 컬럼 삭제

    • ALTER TABLE MENU DROP COLUMN 이름;
  • 제약조건 추가

    • ALTER TABLE MENU ADD CONSTRAINT;
  • 제약조건 삭제

    • ALTER TABLE MENU DROP CONSTRAINT;

3. DROP : 테이블 및 컬럼 삭제

  • 컬럼 삭제

    • ALTER TABLE MENU DROP COLUMN 이름;
  • 테이블 삭제

    • DROP TABLE MENU;

🚨 TABLE 주의 🚨

  • DROP TABLE MENU CASCADE CONSTRAINT;

    • 해당 테이블의 데이터를 외래키(FK)로 참조한 제약사항도 모두 삭제된다.

    • Oracle에만 있는 옵션으로 SQL Server에는 존재하지 않는다.

    • FK 제약조건과 참조 테이블 먼저 삭제하고, 해당 테이블을 삭제한다.


3-1. DROP vs. TRUNCATE

  • 테이블 삭제 DROP

    • DROP TABLE MENU;

      • 테이블 관련해서 모두 삭제된다. 구조와 데이터 모두

      • 테이블 정의를 완전 삭제한다.

      • 테이블이 사용했던 모든 저장공간을 Release된다.

  • 테이블 초기화 TRUNCATE

    • TRUNCATE TABLE MENU;

      • 테이블 데이터만 삭제되고 구조는 살아있다.

      • 테이블을 초기상태로 만든다.

      • 데이블 최초 형성시 사용했던 저장공간만 남기고 Release된다.

  • (맛보기) DELETE

    • 데이터만 지우러면 DML 언어 중 DELETE를 사용한다.







🧑‍💻지금 바로 수강신청해서 1번에 합격하기💻👩‍
https://www.udemy.com/course/sqld-metacode/?referralCode=579E866F1A75E4EFF697


▶ 해당 영상은 10개월만에 8만명이 시청하신 "유튜브 SQLD 자격증 대표 인기강의" 입니다.


▶ 메타코드 유튜브 바로가기
👉👉 https://youtube.com/@mcodeM

profile
수현입니다만, 무슨 문제라도 ?

0개의 댓글