★ PSEUDO 의사 컬럼, Pseudo Column 실제 컬럼이 아닌데 컬럼처럼 행동하는 요소 rownum 오라클 전용 row num > 행번호 > 레코드의 일련번호 from 절이 실행될 때 각 레코드에 일련번호를 할당한다. where 절의 영향을 받으면 일련번호를 다시 정비한다. (reindexing) rownum을 사용 > 서브 쿼리를 자주 사용한다. ■ 사용 ex) ex1) rownum의 사용법 select name, buseo, -- 컬럼(속성) > output > 객체의 특성에 따라 다른 값을 가진다. (개인 데이터) sysdate, -- 함수 > output > 모든 레코드가 동일한 값을 가진다. (정적 데이터) substr(name,2), -- 함수 > input + output > 객체마..
★ DDL > Object 객체 생성 : create 객체 삭제 : drop 객체 수정 : alter ★ 테이블 수정하기 테이블 정의 수정 > 컬럼 수정 > 컬럼명 or 자료형(길이) or 제약사항 테이블 수정해야 하는 상황 발생!! 1. 테이블 삭제(drop) > 테이블 DDL(Create) 수정 > 수정된 DDL로 새롭게 테이블 생성 a. 기존 테이블 데이터가 없었을 경우 > 아무 문제 없음 b. 기존 테이블 데이터가 있었을 경우 > 미리 데이터 백업 > 테이블 삭제 > 수정 후 생성 > 데이터 복구 - 공부할 때 자주 사용 - 개발 중에 사용 - 서비스 운영 중 > 불가능 !! 2. alter 명령어 사용 > 기존 테이블 구조(컬럼 정의) 변경 a. 기존 테이블 데이터가 없었을 경우 > 아무 문제 ..
★ 관계 대수 연산 셀렉션 > select where 프로젝션 > select column 조인 > a join b 합집합, 차집합, 교집합 ★ 집합 union = 합집합 intersect = 교집합 minus = 차집합 ■ 사용 ex) ex1) select * from tblMen union select * from tblWomen; ex2) 게시판에 대한 ex) select * from 영업부게시판; -- 천만 건 select * from 총무부게시판; --2천만 건 select * from 개발부게시판; -- 천만 건 select * from 영업부게시판 union select * from 총무부게시판 union select * from 개발부게시판; ex3) SNS > 게시물 > 년도별로 > ex..
★ 데이터베이스 객체 테이블 계정(hr) 제약사항 시퀀스 뷰 ★ 뷰(View) 데이터베이스 객체 중 하나 가상 테이블, 뷰 테이블 등... 테이블처럼 사용한다. 뷰는 SQL을 저장한 객체이다. 뷰는 호출될때마다 저장된 SQL이 실행된다. (실시간 가상 테이블) 사용 양식 create view 뷰명 as select문; create [or replace] view 뷰명 as select문; ★ 뷰의 역할(목적) 쿼리를 단순화한다. > 가독성 향상 보안 관리 쿼리 > 다른 사용자(hr 등)과 공유 ■ 사용 ex 1) create or replace view vwInsa -- tblInsa 테이블의 복사본 as select * from tblInsa; select * from vwInsa; -- tblInsa..
★ 조인(Join) (서로 관계를 맺은) 2개(1개) 이상의 테이블을 사용해서, 1개의 결과셋을 만드는 연산 테이블 A + 테이블 B = 테이블 C 조인의 종류 1. 단순 조인, Cross Join 2. 내부 조인, Inner Join 3. 외부 조인, Outer Join 4. 셀프 조인, Self Join 5. 전체 외부 조인, Full Outer Join ★ 조인에 용이한 더미데이터 테이블 생성(고객 판매테이블) 고객 판매 테이블 1. 고객 테이블 (부모 테이블) create table tblCustomer ( seq number primary key, -- 고객번호(PK) name varchar2(30) not null, -- 고객명 tel varchar2(15) not null, -- 연락처 ad..
★ 관계형 데이터베이스 시스템(RDBMS)이 지양하는 사항 테이블에 기본키가 없는 상태 > 데이터 조작 곤란 null이 많은 상태의 테이블 > 데이터 조작 곤란 + 공간 낭비 데이터가 중복되는 상태 > 데이터 조작 곤란 + 공간 낭비 하나의 속성값이 원자값이 아닌 상태 ■ 1. 테이블에 기본키가 없는 상태 > 데이터 조작 곤란(3번과 동일) create table tbltest ( name varchar2(30) not null, age number(3) not null, address varchar2(300) not null ); insert into tblTest (name, age, address) values ('홍길동', 20, '서울시'); insert into tblTest (name, ag..
★ MainQuery 여태까지의 SQL 일반적인 SQL 하나의 문장안에 하나의 select(insert, update, delete)로 구성된 쿼리 ★ Sub Query, 서브 쿼리, 부속 질의 하나의 문장(select, insert, update, delete)안에 또 다른 문장(select)이 들어있는 쿼리 하나의 select문 안에 들어있는 또 다른 select 문 삽입 위치 > 거의 대다수의 절(select 절, from 절, where 절 group by 절, having 절, order by 절) ■ 사용 ex) ex1) -- tblCountry. 인구수가 가장 많은 나라의 이름? select * from tblCountry; update tblCountr..
★ 문제 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치훈이의 전공평점을 계산해주는 프로그램을 작성해보자. 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다. 인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다. P/F 과목의 경우 등급이 P또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다. 과연 치훈이는 무사히 졸업할 수 있을까? 제한 1 ≤ 과목명의 길이 ≤ 50 과목명은 알파벳 대소문자 또는 숫자로만 이루어져 있으며, 띄어쓰기 없이 주어진다. 입력으로 주어지는 모든 과목명은 서로 다르다. 학점은 1.0,2.0..