SUMMARY - 데이터 딕셔너리(Data Dictionary; DD), QUERY 연습

CODEDRAGON Development/Database

반응형

 

 

 

데이터 딕셔너리(Data Dictionary; DD)

https://codedragon.tistory.com/4327

 

 

  

데이터 딕셔너리/뷰와 쿼리문

구분

쿼리문

특정 테이블의 구조 알아보기

DESC[RIBE] 테이블명;

현재 접속한 사용자가 소유한 모든 테이블의 정보를 조회할 있는

USER_TABLES

현재 사용자가 소유한 모든 테이블의 정보 접근 권한을 부여받은 계정의 객체를 조회할 있는

ALL_TABLES

현재 사용자가 접근할 있는 테이블의 컬럼 정보

ALL_COLUMNS

현재 사용자가 접근할 있는 테이블에 대한 제약조건 정보

ALL_CONS_COLUMNS;

현재 사용자가 접근할 있는 데이터베이스 내에 생성된 모든 테이블, , 동의어, 프로시저 등의 정보

ALL_OBJECTS

https://codedragon.tistory.com/4327

https://codedragon.tistory.com/5858

https://codedragon.tistory.com/4521

https://codedragon.tistory.com/4522

 

 

  

트랜잭션, 커밋, 롤백

 

트랜잭션이란 하나의 업무를 처리하기 위해 작은 단위 업무가 여러 존재할 , 단위 업무를 개별적으로 처리하지 않고 하나의 업무로 처리 하게끔 하는 것이다. 단위 업무를 처리하는 도중 오류가 발생했다면 롤백 (ROLLBACK) 명령어를 통해 시작 지점으로 돌아갈 있다. 만약 오류 없이 단위 업무가 정상적으로 종료 되었을 커밋 (COMMIT) 명령어를 통해 실행 결과를 데이터베이스에 반영할 있다.

https://codedragon.tistory.com/4247

https://codedragon.tistory.com/4513

https://codedragon.tistory.com/4514

 

 

 

QUERY 연습 1

아래 보기의 스키마를 반영하여 직원(emp) 테이블을 생성하는 SQL문을 작성하시오.

 

직원(emp) 테이블 스키마 

컬럼

조건

직원번호(emp_no)

NUMBER(8),

PK

직원이름(emp_name)

VARCHAR2(10),

NOT NULL

고용일(emp_hdate)

DATE,

시스템일자

부서장 직원번호(emp_mgr_no)

NUMBER(8),

FK,

emp_no

 

CREATE TABLE emp(

emp_no NUMBER(8) CONSTRAINT emp_pk PRIMARY KEY,

emp_name VARCHAR2(10) CONSTRAINT emp_name_nn NOT NULL,

emp_hdate DATE DEFAULT sysdate,

emp_mgr_no NUMBER(8) CONSTRAINT emp_mgr_fk REFERENCE emp(emp_no)

);

 

 

 

  

QUERY 연습 2

부서 평균 급여액이 8,000달러 이상인 부서만 조회하여

부서(deptno) 급여(salary) 총액, 평균 급여액을 구하는 SELECT 문을 작성하시오.

SELECT deptno,

SUM(salary)

ROUND(AVG(salary))

FROM emp

WHERE salary>=8000

GROUP BY deptno;

 

 

 

  

QUERY 연습 3

아래에 학생테이블(student) 있습니다.

2명의 학생정보를 입력(INSERT)하고, 등록금(fee_enter)에서 장학금(scholarship) 제외한 납부금액(total_fee) 계산하는 SQL문장 예시입니다.

 

BUNHO

NAME

E_NAME

TOWN

fee_enter

scholarship

total_fee

1

홍길동

Hong

순천

500

0

500

2

제갈공명

Je

서울

500

300

200

 

INSERT into student VALUES (1, '홍길동', 'Hong', '순천',500,0,0);

INSERT into student VALUES (1, '제갈공명', 'Je', '서울',500,300,0);

UPDATE student SET total_fee = ifnull(fee_enter, 0) - scholarship;

 

 

 

QUERY 연습 4

다음의 SQL 명령문을 순서대로 실행했을 데이터베이스에 영구적으로 반영되는 문장을 순서대로 완성하시오.

INSERT INTO emp(empno, ename) VALUES (999, 'Smith');

SAVEPOINT a;

DELETE emp WHERE empno = 202;

SAVEPOINT b;

UPDATE emp SET ename = 'Clark';

ROLLBACK TO SAVEPOINT a;

INSERT INTO emp(empno, ename) VALUES (8888, 'Tomas');

SAVEPOINT c;

DELETE emp WHERE empno = 100;

COMMIT;

 

영구적으로 반영되는 문장 (AUTO-COMMIT)

DELETE emp WHERE empno = 202;

UPDATE emp SET ename = 'Clark';

INSERT INTO emp(empno, ename) VALUES (8888, 'Tomas');

DELETE emp WHERE empno = 100;

 

 

 

 

QUERY 연습 5

MYSQL 데이터사전 스키마를 선택하여, 테이블목록조회, 테이블사양 조회, 테이블 컬럼 조회하는 쿼리문의 예시입니다.

 

구분

단계

쿼리문

1

데이터사전 스키마를 선택

use information_schema;

2

테이블목록 조회

show tables;

3

테이블사양 조회

desc tables;

4

테이블 컬럼 조회

desc columns;