티스토리 뷰

자격증/SQLD

03. 관리구문

염두리안 2024. 5. 23. 02:22
728x90
반응형
  • DML(Data Manipulation Language)
    • INSERT문
      • INSERT문 : 테이블에 데이터를 입력하는 DML문 / 테이블명, 칼럼명, 데이터 순으로 입력 / 문자열 입력시 작은따옴표 사용 / 특정 테이블의 모든 칼럼에 대한 데이터 삽입시 칼럼명 생략 가능 / INSERT를 실행했다고 데이터 파일에 저장X... 최종적으로 커밋해야 함
      • SELECT문으로 입력 : 입력되는 테이블은 사전에 생성되어 있어야 함
      • Nologging 사용 : DB에 데이터를 입력하면 로그파일에 그 정보 기록 / 체크포인트 이벤트 발생시 로그파일의 데이터를 데이터 파일에 저장 / Nologging 옵션은 로그파일의 기록을 최소화 시켜 입력 시 성능을 향상 시키는 방법... Buffer Cache라는 메모리 영역을 생략하고 기록함
    • UPDATE문 : 입력된 데이터 값 수정 / 조건문을 입력하지 않으면 모든 데이터가 수정되므로 유의해야 함
    • DELETE문 : 원하는 조건을 검색해 해당되는 행 삭제 / 조건문 미입력시 모든 데이터 삭제... 테이블 용량 초기화는 X
// INSERT
INSERT INTO table (column1, column2, ...) VALUES (expression1, expression2, ...);
INSERT INTO EMP(EMPNO, ENAME) VALUES(1000, '메롱');
// SELECT문으로 입력 - DEPT 테이블의 모든 데이터를 조회해 DEPT_TEST 테이블에 입력
INSERT INTO DEPT_TEST SELECT * FROM DEPT;
// Nologging 사용
ALTER TABLE DEPT NOLOGGING;

// UPDATE문 - EMP 테이블에서 EMPNO가 100인 직원을 수정 ENAME 칼럼 값을 '조조'로 변경
UPDATE EMP SET ENAME = '조조' WHERE EMPNO = 100;

// DELETE문 - EMP 테이블에서 EMPNO가 100인 직원 삭제
DELETE FROM EMP WHERE EMPNO 100;

// 테이블의 모든 데이터 삭제
DELETE FROM 테이블명;	// 데이터 삭제되어도 테이블 용량 감소 X
TRUNCATE TABLE 테이블명;	// 데이터 삭제시 테이블 용량 초기화
  • TCL(Transaction Control Language)
    • COMMIT : INSERT, UPDATE, DELETE문으로 변경한 데이터를 DB에 반영 / 커밋 완료시 DB변경으로 인한 LOCK 해제... 다른 모든 DBA는 변경된 데이터 조작 가능 / 실행하면 하나의 트랜잭션 과정 종료 / 오라클의 경우, 암시적 트랜잭션 관리... 트랜잭션 종료시 사용자가 커밋 혹은 롤백으로 처리해야 함
    • ROLLBACK : 데이터에 대한 변경 사항 모두 취소하고 트랜잭션 종료 / INSERT, UPDATE, DELETE문 작업 모두 취소... 단, 커밋한 곳까지만 복구 / 롤백 실행시 LOCK 해제되고 다른 사용자도 DB행 조작 가능
    • SAVEPOINT(저장점) : 트랜잭션을 작게 분할해 관리하는 것... 사용시 저장된 위치 이후의 트랜잭션만 롤백 가능 / 지정 - SAVEPOINT 이름; / SAVEPOTIN까지만 데이터 변경을 취소하고 싶을 땐 ROLLBACK TO SAVEPOINT 이름; / 롤백 실행시 세이브포인트와 관계없이 데이터의 모든 변경사항 저장하지 않음
  • DDL(Date Definitin Language)
    • 테이블 생성(Create Table)
      • 구조 
        • Create Table : ( )  사이에 칼럼 쓰고 마지막은 세미콜론으로
        • 칼럼 정보 : 테이블에 생성되는 칼럼 이름, 데이터 타입 입력 / 영문, 한글, 숫자 모두 가능
        • 데이터 타입
        • 기본키
      • 제약조건 사용 : 기본키, 외래키, 기본값, not null 등 테이블 생성시 지정 가능
      • 테이블 생성시 CASCADE 사용 : 참조관계가 있을 경우, 참조되는 데이터를 자동으로 반영할 수 있는 것(205, 206 참조)
    • 테이블 변경(Alter Table) : 테이블명 변경, 칼럼추가, 변경, 삭제 등
    • 테이블 삭제(Drop Table) : 테이블 구조, 데이터 모두 삭제
    • 뷰 생성과 삭제 : 테이블로부터 유도된 가상의 테이블
      • 뷰 특징) 참조한 테이블 변경시 뷰도 변경 / 뷰의 검색은 참조한 테이블과 동일하게 할 수 있으나, 뷰에 대한 입력, 수정, 삭제엔 제약이 있음 / 특정 칼럼만 조회시켜 보안성 향상 / 한번 생성된 뷰는 변경X, 변경 원하면 삭제 후 재생성 / ALTER문을 사용해 뷰 변경 X
        • 장) 특정 칼럼만 조회 가능... 보안 기능 / 데이터 관리 간단 / SELECT문 간단 / 하나의 테이블에 여러 개 뷰 생성 가능
        • 단) 독자적인 인덱스 만들 수 없음 / 삽입, 수정, 삭제 연산 X / 데이터 구조 변경 불가능
// CREATE TABLE
CREATE TABLE EMP
(
	empno number(10) primary key,
    ename varchar2(20),
    sal number(6)
);

// ALTER TABLE
ALTER TABLE EMP RENAME TO NEW_EMP;
// 칼럼 추가
ALTER TABLE EMP ADD (age number(2) derault 1);	// EMP테이블에 age칼럼 추가
// 칼럼 변경 - EMP테이블에 ename 칼럼 길이 수정, not null 조건 설정
ALTER TABLE EMP MODIFY (ename varchar2(40) not null);
// 칼럼 삭제
ALTER TABLE EMP DROP COLUMN age;
// 칼럼명 변경
ALTER TABLE EMP RENAME COLUMN ename to new_ename;

// DROP TABLE
DROP TABLE EMP;
// 참조된 제약사항까지 모두 삭제
DROP TABLE EMP CASCADE CONSTRAINT;

// 뷰 생성
CREATE VIEW T_EMP AS SELECT * FROM EMP;
// 뷰 삭제
DROP VIEW T_EMP;
  • DCL(Data Control Language)
    • GRANT : DB사용자에게 권한 부여... 연결, 입력, 수정, 삭제, 조회 가능
      • 권한 : SELECT / INSERT / UPDATE / DELETE / REFERENCES(테이블을 참조하는 제약조건을 생성하는 권한) / ALTER / INDEX(인덱스 생성 권한) / ALL(모든 권한)
      • WITH GRANT OPTION : 특정 사용자에게 권한을 부여할 수 있는 권한
      • ADMIN OPTION : 테이블에 대한 모든 권한 부여
    • REVOKE : 부여된 권한 모두 회수
// GRANT
GRANT privileges ON object TO user;
// LIMBEST사용자에게 EMP테이블에 대해서 SEELCT, INSERT, UPDATE, DELETE 권한 부여
GRANT SELECT, INSERT, UPDATE, DELETE ON EMP TO LIMBEST;
// 권한을 부여할 수 있는 권한 부여
GRANT SELECT ON EMP TO LIMBEST WITH GRANT OPTION;

// REVOKE
REVOKE privileges ON object FROM user;
728x90
반응형

'자격증 > SQLD' 카테고리의 다른 글

02. SQL활용 (2)  (1) 2024.05.22
02. SQL활용 (1)  (0) 2024.05.21
01. SQL 기본  (0) 2024.05.21
[SQL기본및활용] 2-2. SQL활용 (2)  (1) 2023.03.17
[SQL기본및활용] 2-2. SQL활용 (1)  (0) 2023.03.16
최근에 올라온 글
최근에 달린 댓글
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Total
Today
Yesterday
반응형