[ 데이터베이스 개념과 오라클 설치 목차 ]
1. 데이터베이스와 데이터베이스 관리시스템
2. 오라클 설치 및 설정
3. SQL과 SQL*Plus의 개념
4. SQL*Plus 로그인
* 우리가 배울 데이터베이스는 총 3가지이다.
1. 오라클 데이터베이스 (관게형 데이터베이스)
2. MySQL (관계형)
3. Elasticsearch (비정형 데이터베이스)
[ 1 ] 데이터베이스와 데이터베이스 관리시스템
- 유용한 데이터의 집합
- 데이터베이스에 저장된 정보는 검색, 수정, 삭제에 용이하다.
1. 파일 시스템의 문제점
- 파일시스템에 다음과 같은 문제점이 제기되면서
새로운 시스템(DBMS)에 대한 요구가 제기되었다.
* 데이터는 보통 파일에 담아서 사용했다.
그런데 파일에 데이터를 담아서 사용하다보니 다음과 같은 문제점이 생긴다.
구분 | 파일 시스템 | DBMS |
데이터 중복 |
데이터를 파일 단위로 저장 --> 중복 가능 O |
DBMS를 이용하여 데이터를 공유 --> 중복 가능성 낮음 |
데이터 일관성 |
데이터의 중복 저장으로 일관성이 결여된다. |
중복 제거로 데이터의 일관성 유지된다. |
데이터 독립성 |
데이터 정의와 프로그램의 독립성 유지가 불가능하다. * 독립성 : 어플리케이션과 데이터가 종속적으로 연결되어 있다는 것 * 데이터가 하나의 어플리케이션과 연결되어 있으면 종속되어 있으면 다른 어플리케이션과는 연결될 수 없다. |
데이터 정의와 프로그램의 독립성 유지 가능하다. * DBMS를 사용하게 되면 데이터와 어플리케이션의 관계가 종속이 아니라 독립적으로 되기 때문에 하나의 데이터가 |
관리 가능 | 보통 | 데이터 복구, 보안, 동시성 제어, 데이터 관리 등 수행 |
프로그램 개발 생산성 |
나쁨 | 짧은 시간에 큰 프로그램을 개발 할 수 있다. |
기타 장점 | 보통 | 데이터 무결성 유지, 데이터 표준 준수 용이 |
[ 파일 시스템과 DBMS의 비교하는 표 ]
*파일시스템 -> 개인 / DB -> 공용
2. 데이터베이스의 개념
- 데이터베이스의 개념을 다음과 같이 4가지로 설명할 수 있다.
1) 통합된 데이터 (integrated data)
- 데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화하여
중복으로인한 데이터 불일치 현상을 제거한다.
2) 저장된 데이터 (stored data)
- 문서로 보관된 데이터가 아니라 디스크, 테이프 같은
컴퓨터 저장장치에 저장된 데이터를 의미한다.
3) 운영 데이터 (operational data)
- 조직의 목적을 위해 사용되는 데이터를 의미한다.
즉, 업무를 위한 검색을 할 목적으로 저장된 데이터라는 의미이다.
4) 공용 데이터 (shared data)
- 한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라
공동으로 사용되는 데이터를 의미한다.
3. 데이터베이스의 특징
- 데이터베이스의 특징은 다음과 같이 4가지로 설명할 수 있다.
1) 실시간 접근성 (real time accessibility)
- 데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 몇 시간이나
몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스한다.
* 내가 필요할 때 언제든 접근할 수 있다. 바로 사용할 수 있도록,,
2) 계속적인 변화 (continuous change)
- 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만,
데이터 값은 시간에 따라 항상 바뀐다. 데이터베이스는 삽입(insert), 삭제(delete),
수정(update) 등의 작업을 통해 바뀐 데이터 값을 저장한다.
* 데이터가 중요한 이유는 신뢰성 때문이다..?
3) 동시 공유 (concurrent sharing)
- 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.
동시 (concurrent) 는 병행이라고도 말하며, 데이터베이스에 접근하는
프로그램이 여러개 있다는 의미이다.
* DB에 여러 사람들이 동시에 접근해서 동시에 공유해서 사용한다.
4) 내용에 따른 참조 (reference by content) *이 내용은 PASS
- 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라
데이터 값에 따라 참조된다.
4. 데이터베이스 시스템 구성
- 데이터베이스 시스템
: 각 조직에서 사용하던 데이터를 모아서 통합하고
서로 공유하며 생기는 장점을 이용하는 시스템이다.
- 데이터베이스 (DataBase)
: 기업이 지속적으로 유지 관리해야 하는 데이터의 집합이다.
- 데이터베이스 관리 시스템 (DataBase Management System)
- 방대한 양의 데이터를 편리하게 저장하고 효율적으로 관리하고 검색할 수 있는 환경을
제공해주는 시스템 소프트웨어이다.
- 데이터를 공유하여 정보의 체계적인 활용을 가능하게 한다.
- 응용 프로그램과 데이터베이스의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔
관리해주는 소프트웨어 시스템이다.
- 데이터 모델
- 데이터가 저장되는 기법에 관한 내용이다.
ex) 가전제품에 붙여진 모델 번호가 제품의 특성을 나타내듯이
데이터 모델은 데이터가 저장되는 스타일을 나타낸다.
* 데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형이다.
소프트웨어 개발과 유지, 보수의 기준이 되기 때문에 중요한 이슈이다.
5. 관계형 데이터베이스 관리 시스템
- 관계형 데이터베이스 관리시스템 (RDBMS : Relational DataBase Management System)은
가장 일반적인 형태의 데이터베이스 관리 시스템 (DBMS) 이다.
- 관계형 데이터베이스 정보는 저장할 때 테이블 형태로 저장한다.
테이블은 2차원 형태의 표처럼 볼 수 있도록 로우(ROW : 행) 과 칼럼 (COLUM : 열)으로
구성한다.
- ERD (Entity Relationship Diagram)
* 공통코드관리, 정책기사관리, 게시사팬턴관리 등 얘네들 각각이 테이블 (TABLE)이다.
테이블끼리는 서로 연관이 있다.
이렇게 테이블과의 관계를 도식으로 그린 데이터 모델 방법을 ERD 라고 한다.
- RDBMS ( 관계형 데이터베이스 관리시스템) 의 종류
: Oracle, MicroSoft SQL Server, DB2, Sybase, Infomix, MySQL, MS Access, Tibero(국내 솔루션),
Postgres, MongoDB, MariaDB, NoSQL 등..
[ # Tip. DB - Engines Ranking 볼 수 있는 사이트 ( https://db-engines.com/en/ranking)]
[ 2 ] 오라클 설치 및 설정
1. 오라클 설치
* 카페에 oracleDB 다운
- OTN 가입 : http://www.oracle.com/kr
- Oracle Database XE 11g Release 2 다운로드
: http://www.oracle.com/technology/software/products/database/index.html
- Oracle Database XE 11g Release 2 설치
- 전역 데이터베이스 이름 (SID) : XE
- 데이터베이스 암호 & 비밀번호 : "SYS" 로 설정
- 설치 디렉토리 : C:\prod\oracle\
- 주요 오라클 서비스 (Microsoft Windows 버전인 경우)
- OracleServiceXE
: OracleService + SID명 형태로 구성된 서비스로 설치한 오라클 기본 서비스이며
오라클 사용 시 반드시 맨 먼저 시작되어야 한다.
- OracleXETNSListener
: 오라클 리스너 서비스이며 이것 역시 반드시 시작되어야 한다.
리스너란, 네트워크를 통해 클라이언트(오라클을 사용하려는 사용자)와
오라클 서버와의 연결을 담당하는 관리 프로그램이다.
* 위의 둘은 제어판 > 관리도구 > 서비스 탭에서 찾았을 때
OracleServiceXE, OracleXETNSListener 가 실행 중 으로 되어있으면 잘 된것이다.
[ # Tip. 오라클 네트워크 접속 설정 코드 ]
2. 개발 도구 소개
- 오라클 설치 후 SQL이나 PL / SQL을 실행하고 결과를 보려면 개발도구가 필요하다.
- 대표적인 개발 도구
: SQL Plus , 토드 , 오렌지 , PL / SQL Developer , SQL Developer 등..
(1) SQL PLUS
- 오라클에 내장된 툴로 윈도우의 명령창 화면과 유사하다.
- SQL , PL/SQL 뿐만 아니라 오라클 내부적인 명령어도 사용 가능하다.
* 명령 프롬프트 cmd 에서 다음과 같이 적어서 다운받은 오라클 데이터베이스가 실행이 잘 되는지 확인해주면 된다.
* User Interface 의 종류
1) CLI (Command Line Interface) <- 서버를 관리해주는 명령어들에 주로 사용한다.
-> cmd
2) GUL (Graphic User Interface) <- 대부분 이 방식이 익숙하다.
-> oracle sql developer
* User Interface란 컴퓨터와 사람을 연결해주는거,,,
(2) SQL Developer
- 메모리를 많이 사용해서 무겁다
- 오라클에서 제공하는 무료 개발도구이다.
- 다운로드 : http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
* 맥쌤 카페에 설치 다운로드 카테고리에서 다운 받으면 된다.
* Oracle SQL Developer 다운 받으면 아래와 같은게 생긴다. 여기 들어가서
초록색 + 더블클릭 > Name : system@xe / 사용자 이름 : system / 비밀번호 : SYS / 포트 : 1521 적기
> 테스트 클릭 > 저장 클릭 > 완료(?) 클릭
그러면 system@xe 가 만들어진다.
거기에 위크시트에 show user 적어서 실행해보기 --> USER이(가) "SYSTEM"입니다. 출력됨
( cmd 에서 show user 적어서 실행시킨 것과 같이 출력된다,,)
(3) Toad
- SQL Developer 에 비해 가볍다
- 전 세계적으로 개발자들 사이에 가장 많이 사용된다.
- 상용제품이나 프리웨어 버전도 존재한다.
* 현업에서 많이 사용하는 아이!!
(4) Orange
- 국산 제품으로 화면은 토드와 비슷하고 점차 사용자가 늘고 있다.
- 상용제품으로 프리웨어 버전은 없고 기간제한의 Trial 버전은 존재한다.
(5) PL / SQL Developer
- 토드나 오렌지와 GUI 면에서는 차이가 있지만, 나름 개발하기에 편리한 툴이다.
- 상용제품으로 프리웨어 버전은 없고 기간제한의 Trial 버전은 존재한다.
- http://www.allroundautomations.com
(6) SQLGate for Oracle Developer
- 테이블 설계 및 정의서 작성에 용이하다.
- 다운로드 : https://www.sqlgate.com/
3. 샘플 스키마
(1) SCOTT계정 활성화
C:\TEMP> sqlplus system/sys
SQL> CREATE USER SCOTT IDENTIFIED BY TIGER;
SQL> GRANT CONNECT, RESOURCE TO SCOTT;
SQL> @SCOTT.SQL // @SCOTT.SQL 파일을 실행
SQL> CONN SCOTT/TIGER
SQL> SHOW USER
SQL> SELECT COUNT(*) FROM TAB; // TABLE의 갯수 알려주는,,
SQL> QUIT;
(2) 오라클 접속
C:\TEMP> SQLPLUS SCOTT/TIGER
// 계정 / 비밀번호
* 비밀번호 : TIGER
(3) 문제해결 코드
SQL> CONN SCOTT/TIGER
ERROR:
ORA-28000: 계정이 잠금되었습니다
경고: 이제는 ORACLE에 연결되어 있지 않습니다.
SQL> ALTER USER SCOTT ACCOUNT UNLOCK;
사용자가 변경되었습니다.
SQL> CONN SCOTT/TIGER
연결되었습니다.
SQL>
[ 계정이 잠금되었을 때 해결 코드 ]
SQLPLUS /"AS SYSDBA"
접속 후
ALTER USER ID IDENTIFIED BY PW;
EX) ALTER USER SYS IDENTIFIED BY ORA123;
CF.
오라클 SYS, SYSTEM암호 까먹었을때
명령 프롬프트에서 다음을 실행합니다.
C:>SQLPLUS "/AS SYSDBA"
SQL> SHOW USER
USER IS "SYS"
암호를 원하는 대로 설정합니다.
SQL> ALTER USER SYS IDENTIFIED BY 암호;
SQL> ALTER USER SYSTEM IDENTIFIED BY 암호;
[ DBA 및 USER 비밀번호 까먹었을 때 해결 코드 ]
4. 과제 스키마
(1) 과제 스키마 설치
- ch01_script.sql, expall.dmp, expcust.dmp, export_sales.sql 파일을 다운로드 받아
'C:\Temp\oracle\01\' 폴더 생성 후 붙여 놓는다.
- 명령 창을 열어 'C:\Temp\oracle\01\' 폴더로 이동한다.
C:\temp\oracle\01> sqlplus system/sys
SQL> @ch01_script.sql
SQL> CONN ORA_USER/HONG
연결되었습니다.
SQL> SHOW USER
USER은 "ORA_USER"입니다
SQL> EXIT
C:\temp\oracle\01> IMP ORA_USER/HONG FILE=EXPALL.DMP LOG=EMPALL.LOG IGNORE=Y GRANTS=Y ROWS=Y INDEXES=Y FULL=Y
Import: Release 11.2.0.1.0 - Production on 일 6월 11 00:38:37 2017
...
임포트가 경고 없이 정상적으로 종료되었습니다.
C:\TEMP> IMP ORA_USER/HONG FILE=EXPCUST.DMP LOG=EMPALL.LOG IGNORE=Y GRANTS=Y ROWS=Y INDEXES=Y FULL=Y
Import: Release 11.2.0.1.0 - Production on 일 6월 11 00:38:54 2017
...
임포트가 경고 없이 정상적으로 종료되었습니다.
SQL> @export_sales.sql
(2) 과제 스키마 설치 확인
- SQL Plus나 SQL Developer에 접속 해 다음 명령어 실행한다.
C:\temp\oracle\01> SQLPLUS ORA_USER/HONG
SQL*Plus: Release 11.2.0.1.0 Production on 일 6월 11 00:42:50 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
다음에 접속됨:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> SELECT TABLE_NAME FROM USER_TABLES;
TABLE_NAME
------------------------------
SALES
PRODUCTS
KOR_LOAN_STATUS
JOBS
JOB_HISTORY
EMPLOYEES
DEPARTMENTS
CUSTOMERS
COUNTRIES
CHANNELS
10 개의 행이 선택되었습니다.
SQL>
(3) 과제 스키마 설명
- employees : 사원테이블 (사원번호, 사원명, 부서번호 등)
- departments : 부서테이블 (부서번호, 부서명 등)
- jobs : job 테이블 (job번호, 명칭 등)
- job_history : job_history 테이블 (job번호, 사원번호, 부서번호 등)
- countries : 국가 테이블 (국가번호, 국가코드, 국가명 등)
- customers : 고객 테이블 (고객번호, 고객명, 국가번호 등)
- channels : 판매채널 테이블(채널번호, 채널명 등)
- products : 제품 테이블 (제품번호, 제품명 등)
- sales : 판매 테이블( 제품번호, 고객번호, 채널번호, 사원번호 등)
5. 추가 스키마 (마당서점)
--이름:DEMO_MADANG.SQL--설명--
MADANG 스키마를
생성하고 MADANG
서점 실습테이블과
데이터를 입력한다.--
본스크립트는 SYSTEM
계정에서 실행해야한다.--- --
SQLPLUS 실행방법--SQL>
@DEMO_MADANG.SQL
--SQL DEVELOPER
F5 스크립터
실행 D:\temp\sql>
SQLPLUS SYSTEM/
MANAGER SQL>
ED DEMO_MADANG.
SQL DROP
USER MADANG CASCADE;
CREATE USER
MADANG IDENTIFIED
BY MADANG
DEFAULT TABLESPACE
USERS TEMPORARY
TABLESPACE TEMP
PROFILE DEFAULT;
GRANT CONNECT, RESOURCE
TO MADANG;
GRANT CREATE VIEW,
CREATE SYNONYM
TO MADANG;
ALTER USER
MADANG ACCOUNT UNLOCK;
CONN MADANG/MADANG;
CREATE TABLE
BOOK (
BOOKID NUMBER(2) PRIMARY KEY,
BOOKNAME VARCHAR2(40),
PUBLISHER VARCHAR2(40),
PRICE NUMBER(8)
);
CREATE TABLE CUSTOMER (
CUSTID NUMBER(2) PRIMARY KEY,
NAME VARCHAR2(40),
ADDRESS VARCHAR2(50),
PHONE VARCHAR2(20)
);
CREATE TABLE ORDERS (
ORDERID NUMBER(2) PRIMARY KEY,
CUSTID NUMBER(2)
REFERENCES CUSTOMER(CUSTID),
BOOKID NUMBER(2)
REFERENCES BOOK(BOOKID),
SALEPRICE NUMBER(8) ,
ORDERDATE DATE
);
-- BOOK, CUSTOMER, ORDERS 데이터 생성
INSERT INTO
BOOK VALUES(1, '축구의 역사', '굿스포츠', 7000);
INSERT INTO
BOOK VALUES(2, '축구아는 여자', '나무수', 13000);
INSERT INTO
BOOK VALUES(3, '축구의 이해', '대한미디어', 22000);
INSERT INTO
BOOK VALUES(4, '골프 바이블', '대한미디어', 35000);
INSERT INTO
BOOK VALUES(5, '피겨 교본', '굿스포츠', 8000);
INSERT INTO
BOOK VALUES(6, '역도 단계별기술', '굿스포츠', 6000);
INSERT INTO
BOOK VALUES(7, '야구의 추억', '이상미디어', 20000);
INSERT INTO
BOOK VALUES(8, '야구를 부탁해', '이상미디어', 13000);
INSERT INTO
BOOK VALUES(9, '올림픽 이야기', '삼성당', 7500);
INSERT INTO
BOOK VALUES(10, 'OLYMPIC CHAMPIONS', 'PEARSON', 13000);
INSERT INTO
CUSTOMER VALUES (1, '박지성', '영국 맨체스타', '000-5000-0001');
INSERT INTO
CUSTOMER VALUES (2, '김연아', '대한민국 서울', '000-6000-0001');
INSERT INTO
CUSTOMER VALUES (3, '장미란', '대한민국 강원도', '000-7000-0001');
INSERT INTO
CUSTOMER VALUES (4, '추신수', '미국 클리블랜드', '000-8000-0001');
INSERT INTO
CUSTOMER VALUES (5, '박세리', '대한민국 대전', NULL);
-- 주문(ORDERS) 테이블의 책값은 할인 판매를 가정함
INSERT INTO
ORDERS VALUES (1, 1, 1, 6000, TO_DATE('2014-07-01','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (2, 1, 3, 21000, TO_DATE('2014-07-03','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (3, 2, 5, 8000, TO_DATE('2014-07-03','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (4, 3, 6, 6000, TO_DATE('2014-07-04','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (5, 4, 7, 20000, TO_DATE('2014-07-05','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (6, 1, 2, 12000, TO_DATE('2014-07-07','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (7, 4, 8, 13000, TO_DATE( '2014-07-07','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (8, 3, 10, 12000, TO_DATE('2014-07-08','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (9, 2, 10, 7000, TO_DATE('2014-07-09','YYYY-MM-DD'));
INSERT INTO
ORDERS VALUES (10, 3, 8, 13000, TO_DATE('2014-07-10','YYYY-MM-DD'));
-- 여기는 3장에서 사용되는 IMPORTED_BOOK 테이블
CREATE TABLE
IMPORTED_BOOK (
BOOKID NUMBER ,
BOOKNAME VARCHAR(40),
PUBLISHER VARCHAR(40),
PRICE NUMBER(8)
);
INSERT INTO
IMPORTED_BOOK VALUES(21, 'ZEN GOLF', 'PEARSON', 12000);
INSERT INTO
IMPORTED_BOOK VALUES(22, 'SOCCER SKILLS', 'HUMAN KINETICS', 15000);
COMMIT;
SQL> @DEMO_MADANG.SQL
사용자가 삭제되었습니다.
...
SQL>
[ 3 ] SQL과 SQL*Plus의 개념
1. 사용 용도에 따른 SQL
- SQL (Structured Query Language)
: 데이터베이스에 저장된 데이터를 조회, 입력, 수정, 삭제하는 등의
조작이나, 테이블을 비롯한 다양한 객체(시퀀스, 인덱스 등)를 생성 및
제어하는 역할을 한다.
- SQL의 종류
- 데이터 정의어 (DDL)
: 데이터베이스 관리자나 응용 프로그래머가 데이터베이스의 논리적 구조를
정의하기 위한 언어로서 데이터 사전(Data Dictionary)에 저장된다.
- 데이터 조작어 (DML)
: 데이터베이스에 저장된 데이터를 조작하기 위해 사용하는 언어로서
데이터 검색(Retrieval), 추가(Insert), 삭제(Delete), 갱신(Update) 작업 수행한다.
- 데이터 제어어 (DCL)
: 데이터에 대한 접근 권한 부여 등의 데이터베이스 시스템의 트랜잭션을
관리하기 위한 목적으로 사용되는 언어이다.
유형 | 명령문 |
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 (데이터베이스에 대한 일련의 권한 취소) |
* 데이터에서 객체란 뷰, 시퀀스, 트리거 등을 말한다
* 데이터 조작 : DATA CRUD(Create Read Update Delete) 이다.
* 저렇게 빨간색으로 칠해진 명령문만 잘 다룰 줄 알면 끝난거다..!!!!
2. 가장 기본이 되는 SELECT문
- SELECT문은 테이블에 저장된 데이터를 조회할 때 사용되는
가장 기본적인 문법이고 가장 많이 쓰이는 문장이다.
--> SELECT : 데이터 검색 시 사용
* DATA CRUD에서 Read 에 해당한다.
SELECT * FROM DEPT;
SELECT * FROM EMP;
SELECT * FROM DEPT;
SELECT DEPTNO, DNAME FROM DEPT;
SELECT * FROM DEPT;
INSERT INTO DEPT VALUES(50, '총무부', '서울');
UPDATE DEPT SET LOC='부산' WHERE DNAME='총무부';
DELETE FROM DEPT WHERE DEPTNO=50;
3. DML (Data Manipulation Language)
- DML 은 데이터를 조작하는 역할을 한다.
새로운 데이터를 삽입하고, 기존의 데이터를 변경하고 삭제하는 것이 DML 에 속한다.
--> INSERT : 데이터 입력
--> UPDATE : 데이터 수정
--> DELETE : 데이터 삭제
INSERT INTO DEPT VALUES(50, '총무부', '서울');
// 문자열은 모두 다 ' ' 로 적어준다!! " " 쓰면 오류!!
UPDATE DEPT SET LOC='부산' WHERE DNAME='총무부';
// WHERE 문을 적어서 데이터 변경할 곳의 조건을 적어준다!
// DEPT 테이블에서 LOC 칼럼에 데이터를 부산으로 바꿔줄건데
// DNAME이 총무부인 LOC를 부산으로 바꿔준다는 것을 의미
DELETE FROM DEPT WHERE DEPTNO=50;
// DEPT 테이블에서 DEPTNO 칼럼에서 DEPTNO가 50인 열을 삭제
* 칼럼도 데이터를 저장하는 공간이다.
그래서 형태를 미리 먼저 정의해줘야한다.
내가 데이터를 추가하고 싶은 테이블에 가서 열 탭에 보면 형태를, 타입을 알 수 있다.
4. TCL (Transaction Contorl Language)
- TCL 은 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구시키기 위해서 사용한다.
--> COMMIT : 변경된 내용을 영구 저장한다.
--> ROLLBACK : 변경되기 이전 상태로 되돌린다.
--> SAVEPOINT : 특정 위치까지를 저장 혹은 이전 상태로 되돌리 수 있도록
트랜잭션 중에 저장점을 만든다.
5. DDL (Data Definition Language)
- DDL 은 데이터베이스 객체들을 생성 또는 변경, 제거할 때 사용한다.
객체란 테이블, 인덱스, 뷰, 트리거 등 SQL문을 수행하는 대상이 된다.
--> CREATE : 데이터베이스 생성
--> ALTER : 데이터베이스 변경
--> DROP : 데이터베이스 삭제
--> RENAME : 데이터베이스 객체이름 변경
--> TRUNCATE : 데이터베이스 저장 공간 삭제
* 데이터베이스를 설계할 때 DDL 을 사용한다. -> 시니어들이 대게 사용함,,
-- DDL(Data Definition Language)
-- DROP
DROP TABLE DEPT01;
DROP TABLE DEPTO1;
-- Create
CREATE TABLE DEPT01(
DEPTNO NUMBER(4), -- 숫자 4자리
DNAME VARCHAR2(10), -- 문자열 10자리
LOC VARCHAR2(9) -- 문자열 9자리
);
DESC DEPT01;
-- DEPT01 을 표현해주는 구문 (DESCRIBE 약자 : DESC)
-- DESC DEPT01; 하고 뒤에 주석 달아놓고 실행시키면 오류발생한다..!!
-- ALTER
ALTER TABLE DEPT01
MODIFY(DNAME VARCHAR2(30));
-- RENAME : 이름 변경
RENAME DEPT01 TO DEPT02;
DESC DEPT02;
SELECT * FROM DEPT02;
INSERT INTO DEPT02 VALUES(10,'개발부','서울');
--DELETE FROM DEPT02;
-- DEPT02에 있는 모든 데이터 삭제
--ROLLBACK;
-- ROLLBACK 롤백 : 데이터 삭제하고 난 뒤 롤백을 하면 다시 그 전으로 돌아간다.
-- TRUNCATE : 데이터 공간을 삭제, 테이블은 삭제가 안되고 데이터만 삭제 (DELETE랑 다름,,)
TRUNCATE TABLE DEPT02;
-- DROP : 테이블 자체가 다 날라간다.
DROP TABLE DEPT02;
-- CREATE
CREATE TABLE DEPT01 (
DEPTNO NUMBER(4), // NUMBER 라는 데이터타입을 뒤에 적는다
DNAME VARCHAR2(10),
LOC VARCHAR2(9)
);
// Table DEPTO1이(가) 생성
-- ALTER
ALTER TABLE DEPT01
MODIFY(DNAME VARCHAR2(30));
-- DESCRIBE 약자 : DESC
-- RENAME
RENAME DEPT01 TO DEPT02;
-- TRUNCATE
TRUNCATE TABLE DEPT02;
-- DROP
DROP TABLE DEPT02;
DROP TABLE DEPT02 CASCADE CONSTRAINTS; -- CASCADE CONSTRAINTS 옵션은 종속된 제약조건을 삭제한다.
* -- 는 리마크(주석)를 의미한다. 이클립스에서 // 로 리마크한것처럼,,!!
6. DCL (Data Control Language)
- DCL 은 특정 사용자에게 권한을 부여하거나 제거하기 위해서 사용하는 명령어이다.
--> GRANT : 데이터베이스에 대한 일련의 권한 부여
--> REVOKE : 데이터베이스에 대한 일련의 권한 취소
-- DCL(DATA CONTROL DANGUAGE) : GRANT, REVOKE
-- GRANT : 권한 부여
-- REVOKE : 권한 취소
GRANT CREATE SESSION TO ORAUSER01;
REVOKE CREATE SESSION FROM ORAUSER01;
7. SQL*Plus
- SQL*Plus 정의
- SQL 명령문을 Command line으로 수행할 수 있는 도구이다.
- 칼럼이나 데이터의 출력 형식을 설정하거나 환경 설정하는 기능을 제공한다.
[ 4 ] SQL*Plus 로그인
1. Command 환경에서 SQL*Plus 로그인
-- 형식
SQLPLUS 사용자/계정암호
-- 예
SQLPLUS SCOTT/TIGER
EXIT
2. 시스템 권한을 갖는 데이터베이스 관리자
- 데이터베이스 사용자는 오라클 계정 (Account) 이라는 용어와 같은 의미로 사용된다.
사용자 계정 | 설명 |
SYS | 오라클 SUPER 사용자 계정이며, 데이터베이스에서 발생하는 모든 문제들을 처리할 수 있는 권한을 가지고 있다. |
SYSTEM | 오라클 데이터베이스를 유지보수 및 관리할 때 사용하는 사용자 계정이다. SYS 사용자와 다른점은 데이터베이스를 생성할 수 있는 권한이 없다. |
SCOTT | 처음 오라클을 사용하는 사용자의 실습을 위해 만들어 놓은 연습용 계정이다. |
HR | 오라클에 접근할 수 있도록 샘플로 만들어 놓은 사용자 계정이다. |
* SYS 계정 : 최상위 사용자 계정 --> 쓸일이 많이 없다,,?
SYSTEM 계정 : SYS보다 한단계 아래의 계정
디폴트 계정 -> SYS, SYSTEM 계정
우리가 만든 계정 -> SCOTT 계정
3. SQL*Plus 로그인에 실패할 경우 해결방법
SQLPLUS SYSTEM/MANAGER
ALTER USER SCOTT IDENTIFIED BY TIGER ACCOUNT UNLOCK;
-- CONNECT SCOTT/TIGER;
CONN SCOTT/TIGER;
[ 1. 사용자의 계정이 잠겨 있는 경우 해결 코드 ]
SQLPLUS SYS/MANAGER AS SYSDBA
STARTUP
[ 2. 데이터베이스가 기동되지 않는(not available) 경우 해결 코드 ]
'DataBase' 카테고리의 다른 글
06_그룹 쿼리와 집합 연산자 (2) | 2022.12.14 |
---|---|
05_SQL 주요 함수 (0) | 2022.12.13 |
04_SELECT로 특정 데이터 추출하기 (0) | 2022.12.13 |
03_SQL*Plus 명령어 (1) | 2022.12.13 |
02_SQL의 기본 (0) | 2022.12.12 |