본문 바로가기

프로그래밍/SQL

(18)
[DB] 유저 생성과 권한, 롤(Grant, Revoke) 1. 계정 및 권한 관리 1) 개요 - DCL 문을 사용해서 데이터에 대한 권한을 부여하거나 취소할 수 있다. - 사용자: 데이터베이스에 로그인할 수 있는 계정 - 권한: 시스템 권한과 오브젝트 권한으로 분류된다. - 롤: 권한과 롤의 모음이며 사용자에게 롤을 부여하면 롤에 부여된 권한과 롤이 함께 부여된다. 2) 사용자 생성 - CREATE USER: 사용자 생성 구문 CREATE USER user IDENTIFIED BY password [ DEFAULT TABLESPACE tablespace | TEMPORARY TABLESPACE {tablespace | tablespace_group_name} | {QUOTA {size_clause | UNLIMITED} ON tablespace}... | PR..
[SQL] 다이어그램과 ERD - 다이어그램(diagram): 정보를 조율, 묘사, 상징화 하여 2차원 기하학 모델로 시각화하는 기술 - ERD: Entity Relationship Diagram의 약어로서 ER 모델을 시각화한 자료 - ERD에서 Entity Type은 사각형, Attribute는 원, Relation은 마름모로 표현 * 용어 정리 - Entity: 단독으로 존재하는 객체를 의미 - Entity Type: 개체들의 집합 // 테이블 - Attribute: 개체가 가진 속성 // 칼럼 - Relation: Entity Type간의 관계를 의미 - Attribute Domain: 해당 Attribute가 가질 수 있는 집합(도메인)을 의미 // 데이터 타입 - Key Attribute: 고유한 값을 가진 Attribut..
[SQL] Procedure와 Stored Procedure - Procedure: 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미하며 함수, 메서드, 루틴, 서브루틴과 같은 바를 의미한다. - Stored Procedure: DB 내에서 재사용할 수 있는 SQL 코드를 뜻한다. - 대부분의 RDB에서 Stored procedure를 지원한다. - SP구문 내에서 세미콜론을 사용하기 때문에 DELIMITER를 반드시 사용해야 한다. - 구문 DELIMITER // CREATE PROCEDURE SP이름([인자 형식]) BEGIN 수행할 코드; END // DELIMITER ; - 사용 예시 mysql> delimiter // mysql> CREATE PROCEDURE simpleproc (OUT param1 INT) -> BEGIN -> SELECT C..
[SQL] Trigger란 ? - 트리거: 임의의 테이블에 연관된 데이터베이스 객체로서 테이블에 특정 이벤트 발생 시 활성화된다. - DML의 데이터 상태 관리 자동화에 사용한다. - 데이터 작업 제한, 기록, 감사 등을 할 수 있다. - DML 수행 시점으로 분류: BEFORE TRIGGER(전), AFTER TRIGGER(후) - 수행 차수로 분류: STATEMENT TRIGGER(한번만 수행), ROW TRIGGER(행 마다 수행) - 문형 CREATE [OR REPLACE] TRIGGER trigger명 timing event1 [OR event2...] OF 컬럼명 ON 테이블명 [FOR EACH ROW] 실행 구문; - DELIMITER: 여러개의 트리거 구문을 사용할 때 SQL 단위 구분자로 사용 - FOR EACH RO..
[SQL 요약 정리] 1-14. ADVANCED SQL 14. ADVANCED SQL 1) NVL FUNCTION - NULL값을 포함하는 컬럼을 지정값으로 변경- 모든 데이터타입에 적용 가능, 변경되는 값과 타입을 일치시켜야 함- 문형NVL (형식1, 형식2)형식1: NULL값을 포함하고있는 컬럼이나 식형식2: 변경하려는 값- NVL함수의 형식NUMBER: NVL(commission_pct,0)DATE: NVL(start_date, '17/01/01')CHAR OR VARCHAR2: NVL(mailid, 'ID없음') 2) DCODE FUNCTION- DECODE: 값을 비교해서 해당하는 값을 돌려주는 함수- 문형DECODE (형식, 비교값1, 결과치1, 비교값2, 결과치, ...기본치)형식: 컬럼이나 값비교값1: 형식이 비교값1에 맞는지 비교결과값1: 형..
[SQL 요약 정리] 1-13. OBJECT 13. OBJECT 1) SEQUENCE란?- 공유 가능한 Object(일반적으로 Primary Key값 생성을 위해 사용)- 자동으로 Unique number 생성(GAP 발생 가능)- 예시CREATE SEQUENCE c_emp_idINCREMENT BY 1START WITH 26MAXVALUE 99999999NOCACHENOCYCLE; 2) SEQUENCE 생성- 문형CREATE SEQUENCE 이름[ INCREMENT BY n ] // SEQUENCE 번호 간격(기본값 1)[ START WITH n ] // 생성되는 첫 번째 SEQUENCE 번호(기본값 1)[ { MAXVALUE n | NOMAXVALUE } ] // SEQUENCE 최대값(기본값 10^27)[ { CACHE n | NOCACHE ..
[SQL 요약 정리] 1-12. 데이터 제어어(DCL) 12. 데이터 제어어(DCL) 1) 권한(Privilege)- 사용자와 Role에 부여 가능한 권한 종류는 80개 이상- 대개 DB관리자(DBA)가 부여- Privilege특정 SQL문장 수행 혹은 특정 Object에 허가된 작업시스템권한: 특정 SQL문장 실행 권한오브젝트 권한: 특정 Object 접근 제어 권한 2) Object Privileges- DBA는 특정 Object에 대해 사용자에게 action 수행 허가- Object 소유자는 다른 사용자에게 Object Privileges 부여 가능- 권한 부여 문형GRANT 권한 [(컬럼명)][ 권한...|ALL]ON Object명TO 사용자 | ROLE | PUBLIC [, 사용자...][WITH GRANT OPTION];- 권한 제거 문형REVOK..
[SQL 요약 정리] 1-11. 데이터 정의어(DDL) 11. 데이터 정의어(DDL) 1) 명령어의 종류 및 설명- CREATE TABLE: 테이블 생성- DROP TABLE: 테이블의 구조 및 모든 행 삭제- ALTER TABLE: 테이블 변경(컬럼-> 추가, 수정 / 제약조건-> 추가, 삭제, 활성화, 비활성화)- TRUNCATE: 테이블의 구조만 남기고 모든 행 삭제- RENAME: Object의 이름 변경- COMMENT: 테이블 혹은 컬럼에 주석 달기*주의: DDL 명령어는 실행시 자동 COMMIT 후 ROLLBACK불가 2) 테이블 삭제 DROP TABLE - 문형DROP TABLE 테이블명 [CASCADE CONSTRAINTS];- 테이블의 모든 데이터 및 인덱스 삭제, 트랜잭션 자동 commit, ROLLBACK 불가- [CASCADE CONS..