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; |
'Development > Database' 카테고리의 다른 글
Summary - 일반적인 DBMS 선정 기준, QUERY 연습 (0) | 2019.10.20 |
---|---|
Summary - 데이터베이스 사용자 계정, QUERY 연습 (0) | 2019.10.20 |
SUMMARY - 인덱스의 효율적인 활용 방법 , 인덱스 적용 기준, 인덱스 컬럼 선정, 설계시 고려사항, 기존에 존재하는 테이블을 이용하여 새로운 테이블 생성, 롤(role), 데이터베이스 권한 종류, 다.. (0) | 2019.10.20 |
ER 다이어그램(ERD; E-R Diagram) (0) | 2019.10.20 |
ER 다이어그램 작성 지침 (0) | 2019.10.20 |