티스토리 뷰
728x90
반응형
- DML(Data Manipulation Language)
- INSERT문
- INSERT문 : 테이블에 데이터를 입력하는 DML문 / 테이블명, 칼럼명, 데이터 순으로 입력 / 문자열 입력시 작은따옴표 사용 / 특정 테이블의 모든 칼럼에 대한 데이터 삽입시 칼럼명 생략 가능 / INSERT를 실행했다고 데이터 파일에 저장X... 최종적으로 커밋해야 함
- SELECT문으로 입력 : 입력되는 테이블은 사전에 생성되어 있어야 함
- Nologging 사용 : DB에 데이터를 입력하면 로그파일에 그 정보 기록 / 체크포인트 이벤트 발생시 로그파일의 데이터를 데이터 파일에 저장 / Nologging 옵션은 로그파일의 기록을 최소화 시켜 입력 시 성능을 향상 시키는 방법... Buffer Cache라는 메모리 영역을 생략하고 기록함
- UPDATE문 : 입력된 데이터 값 수정 / 조건문을 입력하지 않으면 모든 데이터가 수정되므로 유의해야 함
- DELETE문 : 원하는 조건을 검색해 해당되는 행 삭제 / 조건문 미입력시 모든 데이터 삭제... 테이블 용량 초기화는 X
- INSERT문
// 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 / 데이터 구조 변경 불가능
- 뷰 특징) 참조한 테이블 변경시 뷰도 변경 / 뷰의 검색은 참조한 테이블과 동일하게 할 수 있으나, 뷰에 대한 입력, 수정, 삭제엔 제약이 있음 / 특정 칼럼만 조회시켜 보안성 향상 / 한번 생성된 뷰는 변경X, 변경 원하면 삭제 후 재생성 / ALTER문을 사용해 뷰 변경 X
- 테이블 생성(Create Table)
// 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 : DB사용자에게 권한 부여... 연결, 입력, 수정, 삭제, 조회 가능
// 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 |