oracle
오라클 GUI, SQL Developer 설치하고 접속하기
오라클 설치, 그 다음은? 지난 포스팅 오라클 설치, 이대로만 하자! (Oracle 11g Installation) 을 잘 따라오신 분들이라면 이제 오라클을 Windows 환경에서 사용할 수 있게 되었습니다. 하지만 실제로 우리가 데이터베이스를 사용하는 경우는 방대하고 복잡한 쿼리문이 대부분입니다. 이걸 명령 프롬포트 창에서 일일이 확인하기란 쉽지 않습니다. 물론 일부 기업에서는 SQL*Plus 를 사용하기도 합니다. 하지만 보통 Toad나 SQL Developer 같은 GUI 툴을 이용하여 데이터베이스를 다룹니다. Toad는 온전히 활용하기엔 유료 라이선스라 기회가 된다면 다뤄보기로 하고, 이번 포스팅에서는 SQL Developer를 설치하고 접속하는 방법에 대해 알아보겠습니다. 설치를 위해 오라클 사..
[Python] 데이터베이스(ORACLE)
15. 데이터베이스(ORACLE) 15.1 오라클 테이블 DROP TABLE Product CASCADE CONSTRAINTS; -- CLOB: 최대 4G 입력 가능, 한 테이블에서 여러 컬럼에 사용 가능, 검색 가능 -- LONG: 최대 2G 입력 가능, 한 테이블에서 1개 컬럼만 사용 가능, 검색이 안 됨 CREATE TABLE Product ( product_id NUMBER, -- 상품 코드 product_name VARCHAR2(50), -- 상품 이름 price NUMBER DEFAULT 0, -- 단가 description CLOB, -- 상품 설명 picture_url VARCHAR2(500), -- 상품 이미지 파일 이름 PRIMARY KEY(product_id) ); -- SELECT ..
[Oracle] PL/SQL
10. PL/SQL 가. PL/SQL 이란? PL/SQL : Oracle's Procedural Language extension to SQL오라클에 내장되어 있는 절차형 언어프로그램을 논리적인 블록으로 나누는 구조화된 블록 언어변수 선언문, 조건문, 반복문(loop, while, for)등을 지원 나. PL/SQL Block Structure 선언부(선택), 실행부(필수), 예외 처리부(선택)로 구성됨BEGIN과 END 키워드는 반드시 기술 image 1) Declarative Section(선언부, 선택)변수, 상수, CURSOR 등을 선언 2) Executable Section(실행부, 필수)SQL 문장, 반복문, 조건문 등을 실행BEGIN으로 시작하고 END로 끝남 3) Exception Hand..
[Oracle] 고급함수
9. 고급함수 9.1 null값 처리함수 9.1.1 NVL null값을 포함하는 컬럼을 특정한 값으로 전환하는 함수 -- 형식: nvl(null값을 포함하고 있는 컬럼이나 식, 전환하고자 하는 목표값) (문제) emp 테이블에서 사원의 이름, 직책, 커미션 (수당) 을 나타내시오. 단, 커미션이 없는 사원은 3%의 커미션을 적용하시오. SELECT ename, job, sal*nvl(comm, 3)/100 커미션 FROM Emp; (문제) emp 테이블에서 사원의 이름, 직책, 연봉을 나타내시오. SELECT ename, job, sal, comm, (sal*12 + comm) 연봉 FROM Emp; -- nvl(A, B) A의 값이 null이면 B, null이 아니면 A select ename, dep..
[Oracle] View, Index, Sequence
8. View, Index, Sequence 8.1 뷰(view) 8.1.1 정의 테이블에 대한 가상의 테이블로써 테이블처럼 직접 데이터를 소유하지 않고 검색시에 이용할 수 있도록 정보를 담고 있는 객체. 테이블 정보의 부분집합 8.1.2 사용 목적 8.1.2.1 테이블에 대한 보안 기능을 설정해야 하는 경우 8.1.2.2 복잡하며 자주 사용하는 질의 SQL 문을 보다 쉽고 간단하게 사용해야 하는 경우 8.1.3 뷰 생성 권한 부여 cmd> sqlplus / as sysdba; SQL > grant create view to 사용자; 8.1.4 뷰 생성 (형식) create or replace view [force | noforce] 뷰이름 (컬럼리스트) as [쿼리] - replace : 이미 존재하는..
[Oracle] 테이블과 제약조건
7. 테이블과 제약조건 7.1 테이블 7.1.1 테이블 생성 -- number 최대 38자리, number(전체자리수, 소수이하자리수) CREATE TABLE T_Emp ( id NUMBER(5) NOT NULL, name VARCHAR2(25), salary NUMBER(7, 2), phone VARCHAR2(15), dept_name VARCHAR2(25) ); 7.1.2 테이블명 수정하기: rename ~ to ~ RENAME T_Emp TO S_Emp; 7.1.3 테이블에 데이터 입력 INSERT INTO S_Emp VALUES (100, '이상헌', 2000, '010-2222-3333', '개발부'); INSERT INTO S_Emp VALUES (101, '최순철', 3000, '010-33..
[Oracle] 서브쿼리
6. 서브쿼리 6.1 정의 하나의 SQL 문장 내부에 존재하는 또 다른 SELECT문 (비교) 메인쿼리: 서브쿼리를 포함하고 있는 SQL문 (목적) 메인쿼리 내부에서 추가적인 정보 제공 6.2 구분 6.2.1 메인쿼리와의 연관성에 따라 6.2.1.1 연관성이 없는 서브쿼리: 서브쿼리로 산출된 ROW들은 메인 쿼리와 독립적인 서브쿼리 (문제) Emp 테이블에서 월급을 가장 많이 받는 사원정보를 조회하시오. (문제) 사원들의 평균 월급보다 많은 급여를 받는 사원의 이름, 부서명, 급여를 조회하시오(단일행 서브쿼리). SELECT e.ename, d.dname, e.sal FROM Emp e, Dept d WHERE e.deptno = d.deptno AND e.sal > ( 사원들의 평균월급 ); (문제) ..
[Oracle] 트랜잭션과 그룹쿼리
5. 트랜잭션과 그룹쿼리 5.1 트랜잭션(transaction) 5.1.1 정의 5.1.1.1 분리되어서는 안되는 (논리적인) 작업단위 5.1.1.2 데이터베이스 내에서 한꺼번에 수행되어야 할 일련의 연산들 5.1.2 트랜잭션은 한꺼번에 완료가 되거나 한꺼번에 취소가 되어야 함(원자성) 5.1.3 TCL(transaction control language: 트랜잭션 제어어) DML문이 실행되어 DB에 저장되거나(commit) 되돌리기(rollback) 위해서 실행해야 하는 SQL문 5.1.3.1 commit : SQL문의 결과를 영구적으로 DB에 반영하는 SQL문 5.1.3.2 rollback : SQL문의 결과를 이전 transaction의 끝부분까지 취소하는 SQL문 5.1.3.3 savepoint ..
[Oracle] Join
4. Join 4.1 정의 하나의 테이블로 원하는 컬럼 정보를 참조할 수 없는 경우 관련된 테이블을 논리적으로 결합하여 원하는 컬럼 정보를 참조하는 방법 4.2 전제조건 4.2.1 논리적으로 결합되는 2개 이상의 테이블에는 반드시 공통 컬럼이 있어야 함4.2.2 공통 컬럼은 데이터 타입과 데이터가 동일해야 함 4.3 Join 형식 SELECT 컬럼 리스트FROM 조인대상 테이블들(컴머로 구분, 별칭사용)WHERE 공통 컬럼을 이용한 조인조건AND 일반조건; (문제) Student, Department 테이블을 검색하여 이름, 학과코드, 학과이름을 출력하시오. (문제) Emp 테이블의 사원번호와 Dept 테이블의 부서명을 조회하시오. select e.empno, d.dnamefrom emp e, dept ..
[Oracle] Function
3. 함수 가. 정의어떤 일을 수행하는 기능으로써 주어진 인수를 입력받아 처리하여 그 결과를 반환하는 일을 수행하는 것 나. 함수의 종류 1) 단일행 함수 : 하나의 행당 하나의 결과값을 반환하는 함수문자함수, 날짜함수, 문자변환함수, 숫자변환함수, 날짜변환함수, 시스템함수, 숫자함수 2) 복수행 함수[집계 함수, 그룹함수] : 여러 개의 행당 하나의 결과값을 반환하는 함수count(), sum(), avg(), max(), min() 다. 단일행 함수 1) 문자함수가) chr(아스키 코드) : 해당 아스키 코드값에 대한 문자 반환'모든 문자는 그에 대응하는 숫자가 존재합니다. 가능하면 sql에서 답을 만들어 오면 제일 좋다.select chr(65) from dual; 나) ascii(문자) : 문자의..
[Oracle] SQL의 개요
2. SQL의 개요 2.1 SQL이란? '데이터베이스가 어떤 값을 질의를 날리고 또는 값을 저장하고 하려면 데이터베이스가 이해할 수 있는 언어를 사용해야 합니다. 데이터베이스의 표준 언어가 SQL입니다. 2.1.1 Structured Query Language 구조화된 질의 언어 2.1.2 SQL의 역사가) 1970년대초 IBM 사의 도널드 D. 챔벌린과 레이먼드 F. 보이스가 처음 개발나) IBM의 데이터베이스 관리 시스템 시스템 R에 저장된 데이터를 조작하고 수신하기 위해 고안되었다.다) 초기에는 SEQUEL(Structured English Query Language, 구조 영어 질의어)라는 이름으로 시작라) SEQUEL은 나중에 SQL로 바뀌었는데, 그 까닭은 SEQUEL이 영국의 호커 시들리 항..
[CentOS] Oracle 연동
6. 오라클 연동 6.1 테이블 스페이스 생성 윈도우즈에서 system 계정으로 접속하여 작업 CREATE TABLESPACE spring DATAFILE '/home/centos/java.dbf' SIZE 50m autoextend ON NEXT 10m maxsize UNLIMITED; /home/centos/ 디렉토리에 파일 생성 권한이 없기 때문에 에러가 발생한다. terminal에서 작업 chmod 777 /home/centos 다시 윈도우즈에서 작업 -- 테이블 스페이스 생성 CREATE TABLESPACE spring DATAFILE '/home/centos/java.dbf' SIZE 50m autoextend ON NEXT 10m maxsize UNLIMITED; -- 테이블 스페이스 생성 ..