본문 바로가기

Backend/Oracle DB21

15. 모조칼럼 (rownum, rowid) ○ 모조칼럼 (의사칼럼, pseudo column) - 모조칼럼, 의사칼럼 : 칼럼은 아니지만 실제 칼럼처럼 사용할 수 있는 칼럼 - 오라클 DBMS 전용 - rownum : 행 번호 - rowid : 행의 주소값 --행의 주소값 select uname, rowid from tb_student; -- 줄번호 select hakno, uname, rownum from tb_student; -- 줄번호에 별칭 부여하기 select hakno, uname, rownum as rnum from tb_student; -- 줄번호가 먼저 부여되고 정렬된다 select hakno, uname, rownum as rnum from tb_student order by uname; -- 줄번호 1~3사이 조회 select.. 2022. 5. 20.
14. 테이블 조인의 종류 (Inner Join, Left Join, Right Join, (+)기호) ○ inner join (= join) - 두 테이블에 공통으로 존재하는 칼럼을 이용하는 방식 - inner 생략 가능 - 기본 select A.*, B.* from tableA A inner join tableB B on A.key=B.key select A.*, B.* from tableA A join tableB B --inner생략가능 on A.key=B.key ○ left outer join (= left join) - 왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출 - outer 생략가능 select A.*, B.* from tableA A left outer join tableB B on A.key=B.key select A.*, B.* from tableA A left jo.. 2022. 5. 20.
13. 학사관리 DB, 테이블 조인 ○ 테이블 조인 - 두 개 이상의 테이블을 결합하여 데이터를 추출하는 기법 - 두 테이블의 공통값을 이용하여 컬럼을 조합하는 수단 - 형식 select 칼럼명 from 테이블1 join 테이블2 on 조건절; -- ANSI(표준) SQL문 select 칼럼명 from 테이블1, 테이블2 on 조건절; -- Oracle SQL문 select T1.*, T2.* -- T1.모든칼럼, T2.모든칼럼 from T1 join T2 on T1.x=T2.x -- 테이블명.칼럼명 ( . : ~에 속해있는) select T1.*, T2.*, T3.* from T1 join T2 on T1.x=T2.x join T3 -- 3개 테이블 조인 on T1.y=T3.y select T1.*, T2.*, T3.* from T1 j.. 2022. 5. 19.
12. 학사관리 DB 작업 (무결성) ○ 학사관리 테이블 및 시퀀스 생성 1) 테이블 생성 ---------------------- 학생테이블 create table tb_student( hakno char(5) not null --학번 ,uname varchar(20) not null --이름 ,email varchar(20) unique --이메일 ,address varchar(20) not null --주소 ,phone varchar(20) --전화번호 ,regdt date default sysdate --등록일 ,primary key(hakno) --기본키 ); ---------------------- 과목테이블 create table tb_gwamok( gcode char(4) not null --과목코드 (p:프로그램교과목, d:.. 2022. 5. 19.
11. 학사관리 DB 모델링 연습 (정규화, 테이블 시나리오, 테이블 정의서) ○ 학사관리 테이블 시나리오 : 잘못 설계된 테이블의 예 - 발견된 문제점 ① 학생테이블에서 홍길동의 수강신청과목이 추가될수록 칼럼이 계속 추가되는 현상이 보이고 있음 ② Null값이 많이 발생되고 있음 (비효율적) - 문제 발생 이유 : 서로 다른 주제가 같이 있음 → 수강테이블 분리 필요! ○ 학사관리 업무분석 - 학생과 과목은 다대다(N:N) 관계 : 학생 1명이 N개의 과목을 들을 수 있고, 과목 1개가 N명의 학생을 수용할 수 있으므로 N:N 관계이다 - 다:다 (N:N) → 반드시 교차테이블이 있어야 함 - 학생, 수강, 과목 3개의 테이블 필요 (굉장히 일반적인 테이블 구조) ○ 학사관리 테이블 시나리오 : 재설계 ○ 학사관리 테이블 정의서 - 총 3개의 테이블: 학생(student), 과목.. 2022. 5. 18.
10. 관계형 DB 모델링 (데이터 모델링) ○ DB 모델링 (데이터 모델링) - 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업 - 업무분석 단계 → 고객의 요구를 DB에 반영하기 위한 사전 작업 - DB에서 실제 테이블을 create 하기전에 꼭 거쳐야 할 작업 - 테이블 시나리오, 테이블 정의서 - ER-WIN : 관계형 데이터베이스 모델링을 도식화 할 수 있는 프로그램 ○ 테이블 시나리오 - 테이블에 들어갈 데이터를 엑셀 등의 툴을 이용해 몇개 넣어보며 필요한 칼럼, 제약조건 등을 먼저 확인 ○ 테이블 정의서 - 테이블 시나오를 바탕으로 테이블명, 칼럼명, 데이터 타입, 제약 조건 등을 정확히 명시하여 정리 2022. 5. 18.