본문 바로가기

Lobo's study room/오라클DB

(15)
[실습]커피숍 DB 만들기 [프로젝트 구성원 : 조은수, 장지혜] erd->릴레이션 1.엔티티명->릴레이션명 2.식별자->기본키(pk) 3.1(강):N(강) 관계->소거 N쪽에서 1쪽의 PK를 FK로 가져온다. 4.1(강):N(약) 관계->소거 N쪽에서 1쪽의 PK를 PK로 가져온다. 5.N:N 관계->엔티티 양쪽의 PK를 PK로 가져온다. #식별 관계와 비식별 관계의 차이 식별:기본키에 포함/강-약에서 PK로 가져올때!
Oracle DB 트랜잭션 ## 트랜잭션 -- 업무처리를 위한 최소 단위 -- 여러개의 dml 문의 묶음 -- DDL, DCL 단독 트랜잭션 ## 트랜잭션 특징 -- 원자성 : 5개의 dml문으로 구성된 트랜잭션인 경우 일부만 수행되면 안된다 ==> ALL OR NOTHING -- 일관성 : 트랜잭션의 수행이 끝나면 일관성이 유지된다. -- 고립성 : -- 지속성 : ## 트랜잭션 연산 -- COMMIT : DB에 영구 저장 -- ROLLBACK : 작업취소 (트랜잭션 수행 이전 상태 복구) ------------------------------------------------------------------------------- CREATE TABLE TT1 ( A NUMBER(3), B NUMBER(3) ); INSERT I..
oracle 설치하기 ## 개인 PC에 DB 설치하기 1.오라클 사이트에서 11g 다운로드 2.압축해제 3.setup.exe 실행 =>중간 system 암호 입력 =>manager 두번 입력 ------------------------------------------ ##접속 1.작업표시줄 : cmd => 명령 프롬프트 C:\Users\user>sqlplus SQL*Plus: Release 11.2.0.2.0 Production on 수 1월 5 17:04:32 2022 Copyright (c) 1982, 2014, Oracle. All rights reserved. Enter user-name: system Enter password: Connected to: Oracle Database 11g Express Edition..
Oracle DB의 INDEX와 시퀀스 ## index -- 검색속도 향상 -- 기본키, 유일키 자동 인덱스 생성 ## 인덱스 생성 CREATE TABLE EMP1 AS SELECT * FROM EMP; CREATE INDEX EMP_ID_IDX ON EMP1(EMPLOYEE_ID); SELECT * FROM EMP WHERE EMPLOYEE_ID=105; ==> 조건 컬럼에 인덱스가 없으므로 풀스캔 한다. SELECT * FROM EMP1 WHERE EMPLOYEE_ID=105; ==> 조건 컬럼에 인덱스가 생성되어 있으므로 인덱스 검색하여 빠르게 접근 ==>인덱스가 있는 두번째 쿼리가 응답 빠르다. ## 인덱스 수정 안함 --> 재건한다. ALTER INDEX EMP_ID_IDX REBUID; ## 인덱스 삭제 DROP INDEX 인덱스명..
Oracle DB의 DML ## DML(데이터 조작어) -- CUD:row 단위, 추가, 변경, 삭제 -- CRUD:추가,조회,변경,삭제 -- 로그가 남는다 => 작업내용 로그를 기반으로 작업을 취소 할 수 있다!!! ST_DEPT(D_NO,D_NAME) ST(S_NO,NAME,BIRTH,POINT,D_NO) CREATE TABLE ST_DEPT ( D_NO NUMBER(2), D_NAME VARCHAR2(100), ); ALTER TABLE ST_DEPT MODIFY D_NO NUMBER(4); CREATE TABLE ST( S_NO CHAR(5), S_NAME VARCHAR2(100), S_BIRTH DATE, POINT NUMBER(2,1), D_NO NUMBER(2) ); ## ST_DEPT 자료 입력 -- 숫자 타입 : ..
Oracle DB의 DDL ## 지금까지 학습 내용 -SELECT -WHERE 조건식 -함수:단일행,다중행 -조인 -서브쿼리:TOP_N 알고리즘 -SET 연산자 -DML : INSERT,UPDATE,DELETE ## DDL -오라클 데이터타입 : 20여 종류 # 문자 -- CHAR(N) N은 바이트 고정길이 문자 / 최대 2000 BYTE / 디폴트 1 BYTE 대체로 1BYTE 문자정보에 사용 -- VARCHAR2 가변길이 문자 / 최대 4000 BYTE / 디폴트 1 BYTE 1자 이상의 문자정보에 사용 -- LONG(N) 최대 2GB 크기의 가변길이 문자열 한 레코드에 한개만 사용가능 요즘 권장하지 않음 => CLOB 권장 -- CLOB 대용량 텍스트 데이터 타입 최대 4GB # 숫자 -- 정수 NUMBER(자릿수) NUMB..
[5일차 과제]서브쿼리 ## 서브쿼리 실습문제 이름 : 조은수 EX1. Chen와 동일한 부서에 속한 모든 사원의 이름과 입사일을 표시하는 질의를 작성하고 Chen 본인은 제외 시키시오. select last_name,hire_date from EMP where department_id=(select department_id from emp where last_name='Chen') AND LAST_NAME!='Chen'; EX2. 자신의 급여가 평균 급여보다 많은 모든 사원의 사원 번호, 이름, 급여를 표시하는 질의를 작성하고 급여를 기준으로 내림차순으로 정렬합니다. select employee_id,last_name,salary from emp where salary> (select avg(salary) from emp) ..
[5일차]set 연산자 # hr 로그인 grant select on JOB_HISTORY to public; #aa01 로그인 하여 작업 create table JOB_HISTORY as select * from hr.JOB_HISTORY; ## union -쿼리 결과를 위아래로 합치는 것 -두 쿼리문의 스키마가 같아야 한다.(컬럼의 개수, 타입이 같아야 한다.) -첫번째 쿼리문의 컬럼명이 대표 컬럼명이 된다. =중복 불가:한번만!!! =첫번째 컬럼값을 기준으로 오름차순으로 정렬 ## union all -쿼리 결과를 위아래로 합치는 것 -두 쿼리문의 스키마가 같아야 한다.(컬럼의 개수, 타입이 같아야 한다.) -첫번째 쿼리문의 컬럼명이 대표 컬럼명이 된다. =중복 허용!!! =정렬 안됨!!! select last_name, s..