본문 바로가기

수업(국비지원)/Oracle32

[Oracle] SQL 명령어들 - DDL (create, alter, drop, truncate) DDL : Data Definition Language 데이터 정의어 : 객체를 생성,변경,제거 기능을 담당하는 명령어. : DDL 명령어 실행 시 자동 commit된다. - 객체 : table,index,user,sequence,.... table 생성 : create table 테이블명.... index 생성 : create index 인덱스명.... user 생성 : create user 유저명... DDL 명령어 특징 1. commit, rollback 의미가 없다. 2. DDL 명령어가 실행되면, 자동 commit됨. => rollback을 하고싶으면, rollback 먼저실행하고, ddl 명령어를 실행 해야함 DDL 명령어 1. create : 객체(table) 생성 2. alter : 객체 .. 2023. 4. 14.
[Oracle] SQL 명령어들 - TCL (commit, roolback) TCL : Transaction Control Language TCL 명령어 1. commit : DML 명령문 실행완료. 트랜젝션 종료 2. rollback : DML 명령문 취소. 트랜젝션 종료 Transaction : all or nothing. 업무상태에 따라서 하나의 논리적인 업무지정 예시 : 계좌이체 출금 : 1. 거래내역추가. 2. 잔액감소. 3. BS수정 : 정상 => 확정 실행 : commit 입금 : 1. 거래내역추가. 2. 잔액감소. 3. BS수정 : 오류 => rollback 2023. 4. 14.
[Oracle] SQL 명령어들 - DML (insert, update, delete) 💡 - DML (Data Manipulation Language) : INSERT(입력) , UPDATE(변경) , DELETE(삭제) , MERGE(병합) - DDL (Data Definition Language) : CREATE (생성) , ALTER (수정) , TRUNCATE (잘라내기) ,DROP (삭제) - DCL (Data Control Language) : GRANT (권한 주기) , REVOKE (권한 뺏기) - TCL (Transaction Control Language): COMMIT (확정) , ROLLBACK (취소) - SELECT : 어떤 분류에서는 DQL (Data Query Language) 라고도 한다. DML : Data Manipulation Language. 데이터 .. 2023. 4. 14.
[Oracle] Sub Query sub query : select 구문 내부에 존재하는 select 구문 💡 Sub Query 작성 시 주의 사항 Sub Query부분은 Where 절에 연산자 오른쪽에 위치해야 하며 반드시 괄호로 묶어야 한다. 특별한 경우 (Top-n 분석 등)를 제외하고는 Sub Query 절에 Order by 절이 올 수 없다. 단일 행 Sub Query 와 다중 행 Sub Query 에 따라 연산자를 잘 선택해야 합니다. 메인쿼리의 from 절에 있는 테이블의 칼럼명은 서브쿼리 내에서 사용 될 수 있으나 서브쿼리의 from 절에 있는 테이블의 칼럼명은 메인쿼리에서 사용할 수 없다. 💡 sub query 위치 1. where 조건문 2. having 조건문 3. 컬럼부분 : 스칼라 서브쿼리 4. from 구문 : .. 2023. 4. 14.
[Oracle] 비등가 조인(non equi join), 아우터 조인(outer join) 3. 비등가 조인 .(non equi join) : 조인 컬럼의 조건이 = 이 아닌 조인 예시 : 고객테이블과 상품테이블을 이용하여, 고객의 포인트로 받을 수 있는 상품을 조회하기. 고객의 이름, 포인트, 상품명을 조회하기. -- 오라클 방식 select g1.gname, g1.point, g2.gname from gogak g1,gift g2 where g1.point between g2.g_start and g2.g_end; -- ansi 방식 select g1.gname, g1.point, g2.gname from gogak g1 join gift g2 on g1.point between g2.g_start and g2.g_end; 문제 : 1. 학생의 이름, 점수, 학점 조회하기. -- 오라클 방.. 2023. 4. 14.
[Oracle] 카티션곱(cross join), 등가 조인(equi jion) 1. cross join (카티션 곱) : 두개의 테이블의 모든 레코드의 곱의 개수로 레코드 조회 됨. : 조회 되는 레코드 개수가 두 테이블의 레코드의 곱 이 므로 사용 시 주의함. : 테이블 명을 별명으로 지정할 수 있다. 사용 시 주의. : 절대 사용하지 말자. but 테스트 데이터를 강제로 만들 때에는 자주 사용함. -- 오라클 방식 select e.ename , d.dname 2 from emp e, dept d ; -- ansi 방식. select e.ename , d.dname 2 from emp e cross join dept d ; 2023. 4. 14.
[Oracle] SQL 복수행 함수(그룹함수) - rownum, rowid 오라클 예약어 오라클 예약어 - rownum : 레코드 조회 순서. 1 부터 읽을 수 있다.(where 절에 의하여 정해진 순차적인 번호) order by 구문 이전에 미리 설정됨. order by 구문으로 값 변경 되지 않음. 그룹 함수에서 사용 불가. - rowid : 레코드를 구분 할 수 있는 고유의 id.(모든 row에 유일한 번호다.) rowid가 다른 경우는 다른 레코드임. 예시 : 학생의 정보를 5건만 조회하기. select *from student where rownum 5 - rownum 특징 : 1번을 읽어야 2,3,4...를 읽을 수 있음. 문제 : 1. 학생의 이름,학년,레코드 순서를 조회하기. 학생의 이름순으로 정렬. select name,grade,rownum from student order.. 2023. 4. 14.
[Oracle] SQL 복수행 함수(그룹함수) - having, group by Having : 그룹 함수의 조건문 그룹 함수에서는 where 구문을 사용 할 수 없음. 이때 대신 사용하는 구분이 having 구문이다. 오류 ORA-00934 : 그룹 함수는 허가되지 않습니다. 예시 : 학년별 학생 중 가장 큰 학생의 키와 가장 작은 학생의 키, 평균키를 조회하기. 평균키가 170이상인 학년만 조회하기. select grade, max(height),min(height),avg(height) from student group by grade having avg(height)>= 170 order by 1; 문제 : 1. 학생테이블에서 전화번호의 지역번호 기준으로 학생 수 출력하기. 학생 수가 3명 이상인 지역 조회하기. select substr(tel,1,instr(tel,')')-.. 2023. 4. 14.