다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 서진수 저
0 장. 실습을 시작하기 전에 미리 준비하세요
SQL과 SQL*Plus의 개념 SQL(Structured Query Language) SQL의 종류 데이터베이스에 저장된 데이터를 조회, 입력, 수정 삭제하는 등의 조작이나, 테이블을 비롯한 다양한 객체(시퀀스. 인덱스 등)를 생성 및 제어하는 역할을 합니다. SQL의 종류 데이터 정의어(DDL) 데이터베이스 관리자나 응용 프로그래머가 데이터베이 스의 논리적 구조를 정의하기 위한 언어로서 데이터 사 전(Data Dictionary)에 저장 됩니다. 데이터 조작어(DML) 데이터베이스에 저장된 데이터를 조작하기 위해 사용하 는 언어로서 데이터 검색(Retrieval), 추가(Insert), 삭제 (Delete), 갱신(Update) 작업 수행 합니다. 데이터 제어어(DCL) 데이터에 대한 접근 권한 부여 등의 데이터베이스 시스 템의 트랜잭션을 관리하기 위한 목적으로 사용되는 언어 입니다.
SQL과 SQL*Plus의 개념 유형 명령문 DQL:Data Query Language(질의어) SELECT(데이터 검색시 사용) DML:Data Manipulation Language (데이터 조작어)-데이터 변경시 사용 INSERT(데이터 입력) UPDATE(데이터 수정) DELETE(데이터 삭제) DDL:Data Definition Language (데이터 정의어) 객체 생성및 변경시 사용 CREATE(데이터베이스 생성) ALTER(데이터베이스 변경) DROP(데이터베이스 삭제) RENAME(데이터베이스 객체이름 변경) TRUNCATE(데이터베이스 저장 공간 삭제) TCL:Transaction Control Language (트랜잭션 처리어) COMMIT(트랜잭션의 정상적인 종료처리) ROLLBACK(트랜잭션 취소) SAVEPOINT(트랜잭션내에 임시 저장점 설정) DCL:Data Control Language (데이터 제어어) GRANT(데이터베이스에 대한 일련의 권한 부여) REVOKE(데이터베이스에 대한 일련의 권한 취소)
SQL과 SQL*Plus의 개념 SQL(Structured Query Language)란? SQL*Plus란? 관계 DB를 처리하기 위해 고안된 언어로, 독자적인 문법을 갖는 DB 표준 언어(ISO에서 지정)로서 대다수 데이터베이스는 SQL을 사용하여 데이터를 조회, 입력, 수정 삭제합니다. SQL*Plus란? SQL*Plus는 SQL 명령문을 기능을 제공하고, 칼럼이나 데이터의 출력 형식을 설정하거나 환경 설정하는 기능을 제공합니다.
SQL*Plus 로그인 Command 환경에서 SQL*Plus 로그인 예 sqlplus scott/tiger 데이터베이스 접속을 시도하면 오라클 데이터베이스를 사용할 수 있는 사용자인지를 검증하기 위해서 사용자 계정과 암호를 묻게 됩니다. 오라클을 설치하게 되면 기본적으로 생성되는 사용자 계정 중에서 scott을 사용합니다. scott의 패스워드는 tiger입니다. 형식 SQLPLUS 사용자계정/암호 예 sqlplus scott/tiger
<실습하기> 오라클 시작과 종료 콘솔모드로 나가기 위해서 [시작]-[실행] 메뉴를 선택한 후 “cmd”라고 입력합니다. ora_work라는 작업 폴더로 이동한후 SQL*Plus를 실행합니다.
<실습하기> 오라클 시작과 종료 2. 오라클을 종료하려면 exit 명령어를 입력합니다. 접속이 끊기면서 도스 프롬프크가 나타납니다.
<실습하기> 오라클 시작과 종료 3. 데이터베이스 접속을 시도하면서 사용자계정만 입력할 경우에는 입력하지 않은 암호를 입력하라는 메시지가 나타납니다. 요청에 따라 암호를 입력하면 성공적으로 접속할 수 있습니다.
<실습하기> 오라클 시작과 종료 3. 데이터베이스 접속을 시도하면서 사용자계정만 입력할 경우에는 입력하지 않은 암호를 입력하라는 메시지가 나타납니다. 요청에 따라 암호를 입력하면 성공적으로 접속할 수 있습니다.
<실습하기> 오라클 시작과 종료 4. 데이터베이스 접속을 시도하면서 사용자계정과 암호를 모두 입력하지 않은 경우에는 사용자 계정과 암호를 입력하라는 메시지가 차례로 나타납니다. 요청에 따라 사용자 계정과 암호를 입력하면 성공적으로 접속할 수 있습니다.
시스템 권한을 갖는 데이터베이스 관리자 데이터베이스 사용자는 오라클 계정(Account)이라는 용어와 같은 의미로 사용됩니다. 오라클을 설치하면 한개 이상의 데이터베이스 권한을 갖는 디폴트(기본적인) 사용자가 존재합니다. 오라클에서 제공되는 사용자 계정은 다음과 같습니다. 사용자계정 설명 SYS 오라클 Super 사용자 계정이며 데이터베이스에서 발생하는 모든 문제들을 처리할 수 있는 권한을 가지고 있다. SYSTEM 오라클 데이터베이스를 유지보수 관리할 때 사용하는 사용자 계정이며, SYS 사용자와 차이점은 데이터베이스를 생성할 수 있는 권한이 없으면 불완전 복구를 할 수 없다. SCOTT 처음 오라클을 사용하는 사용자의 실습을 위해 만들어 놓은 연습용 계정이다. HR 이 역시 오라클에 접근할 수 있도록 샘플로 만들어 놓은 사용자 계정이다.
오라클 설치하기 오라클을 설치하면 기본적으로 생성되는 계정이 있습니다. 시스템 권한을 가진 사용자인 DBA용 계정과 교육용 계정, 두 가지가 다음과 같이 생성됩니다. 사용할 계정에 대해서 계정 잠금을 해제하고 기본 암호를 변경합니다. 계 정 암 호 설 명 SYS change_on_install DBA SYSTEM manager SCOTT tiger 교육용 계정 HR
Oracle 잠긴계정 풀기 sqlplus에 system 으로 로긴 scott/tiger 계정 잠김 풀기 alter user scott identified by tiger account unlock;
0. 실습을 시작하기 전에 - Oracle 에 연습 계정으로 접속하기 – DB Open 일 경우 Oracle$ sqlplus scott/tiger ; - Oracle 에 연습 계정으로 접속하기 – DB Close 일 경우 Oracle$ sqlplus sys / as sysdba Connected to an idle instance. <- DB 종료의 뜻입니다. SQL> startup ; (중간생략) SQL> conn scott/tiger ; 2
0. 실습을 시작하기 전에
0. 실습을 시작하기 전에 - 현재 접속해 있는 사용자 명 확인하는 방법 - SQL Prompt 변경하는 방법 SQL> show user ; USER is "SCOTT” - SQL Prompt 변경하는 방법 SQL> set sqlprompt "_USER>" SCOTT> - 실습용 데이터 입력하기 SQL> @D:\oracle\oracle_base\test.sql 3
0. 실습을 시작하기 전에 행 Row(로우) 열 Column(칼럼) 데이터베이스 용어 일반용어 4
0. 실습을 시작하기 전에 Projection Selection 5 profno name id position pay hiredate bonus deptno 1001 조인형 captain 정교수 550 1980-06-23 100 101 1002 박승곤 sweety 조교수 380 1987-01-30 60 1003 송도권 powerman 전임강사 270 1998-03-22 2001 양선희 lamb1 280 2001-09-01 102 2002 김영조 number1 350 1985-11-31 80 2003 주승재 bluedragon 490 1982-04-29 90 3001 김도형 angel1004 530 1981-100-23 110 103 3002 나한열 naone10 330 1997-07-01 50 3003 김현정 only-u 290 2002-02-24 4001 심슨 simson 570 1981-01-31 130 201 4002 최슬기 gogogo 2009-08-30 4003 박원범 mypride 310 1999-12-01 202 4004 차범철 ironman 260 2009-01-28 4005 바비 bobby 500 1985-09-18 203 4006 전민 napeople 220 2010-06-28 301 4007 허은 silver-her 2001-05-23 30 Projection Selection 5