국비교육(22-23)

7일차(1)/DB_Oracle(1) : 설치 및 기본정보

서리/Seori 2022. 10. 14. 13:38

7일차(1)/DB_Oracle(1)

 

- oracle 설치 및 기본사용법

 

- 명령 프롬프트(command) 를 사용. 윈도우가 나오기 전의 옛날버전 탐색기 비슷한 것..

- 'sqlplus' 를 실행하고 관리자 계정 생성

 

- 관리자 계정에서 사용자 계정을 생성(system)

- CREATE USER aa IDENTIFIED BY bb;
  ID: aa, PW: bb 인 사용자를 만든다는 뜻.

 

- 사용자 생성만으로는 접속할 수 없고 사용자에게 권한 부여 필요
- GRANT RESOURCE, CONNECT TO aa;
 자원과 접속 권한을 aa에게 주겠다는 뜻

 

- 현재 window flatform computer에 oracle application을 설치한 것.

- 이 프로그램에 점속하는 응용프로그램이 sqlplus 이고, sqlplus는 command prompt 전용 어플리케이션이다.
- 나중에 java를배우면 java application을 만들어서 이쪽으로 접속할 예정!

 

[DataBase application을 사용하는 이유]

어떤 정보를 편리하고 신뢰성 있게 저장해서
여러 사용자가 접속해서 데이터를 빠르게 찾을 수 있고
수정삭제 작업을 할 수 있도록 해준다.

- 저장, 검색, 수정, 삭제 중요!

- oracle뿐만 아니라 mysql, maria db, ms sql 등 다른 DB 프로그램도 함수가 조금 다를뿐 저장, 검색, 수정, 삭제 문법은 대체로 비슷하다.

 

[DB에 주로 저장하는 내용]
1. 숫자
2. 문자열
3. 날짜 (시간포함)
4. 파일

 

표 이름: <TABLE>

num name addr
(숫자타입) (문자타입) (문자타입)
     

- DB 프로그램은 정보의 저장과 관리를 표(table) 형식으로 저장한다.

- 테이블을 만들어 놓고, row(행)를 추가하는 형태로 데이터를 저장

- 정보가 같은 경우(동명이인 등) 표의 row를 대표하는 id 역할을 하는 column이 필요함(위 표에서는 num)

 


 

- 오라클 명령어는 대소문자를 가리지 않는다!
  하지만 보통 예약어(약속된 단어)들은 대문자로 표기하고, 식별자(테이블이름, 칼럼이름, 변수) 등은 소문자로 표기함

 

CREATE TABLE member(num NUMBER PRIMARY KEY, name VARCHAR2(12), addr VARCHAR2(16));
: 테이블 만들기 '표 이름'('칼럼이름1' '칼럼 데이터타입', '칼럼이름2' '칼럼 데이터타입', '칼럼이름3' '칼럼 데이터타입');

표 생성시 위와 같은 형태로 입력한다.

 

INSERT INTO member (칼럼명1, 칼럼명2, 칼럼명3)
VALUES(칼럼에 들어갈 데이터)

- 행 추가 방법. 행이 총 3개 추가된 상태!

 

SELECT * FROM member; : 표 전체 보기

- 표 형식으로 정리되어 나오지만 칼럼의 순서가 정해져있는것은 아니다. 입력하는 순서대로 나타남

 (addr, num, name 으로 물어보면 이 순서대로 참조해줌)

 

SELECT 칼럼명1, 칼럼명2, 칼럼명3 FROM 표이름;

: SELECT를 사용하여 내용 검색

 

- SELECT에서 비교연산자 사용가능. =, >= 등
 → 이 조건에 맞는 row만 가지고 온다.

 

 

- DESC 테이블명 : 전체 테이블 구조 조회

 

하지만 다른 창(sessionB)을 띄워서 member 이라는 표를 조회해보면 정보가 없다고 나온다.

표 생성 및 데이터 추가, 수정, 삭제한 것은 전부 임시반영된 것으로, 작업한 후에는 반드시 COMMIT; 을 입력해야 한다.

빨간선 지점에서 COMMIT; 입력한 후에 다시 조회하면 제대로 입력된 것으로 확인됨!

 

UPDATE 테이블명 SET 칼럼명 WHERE 기준행 : 행 수정

- primary key 값으로 지정된 칼럼(num)을 조건절(WHERE)에서 이용한다.

- 한번에 여러 행 수정가능

 

DELETE FROM member WHERE 기준행; : 행 삭제

DELETE FROM member; : 행을 지정하지않으면 전체 행이 삭제됨

DROP TABLE 테이블명; : 테이블 통째로 삭제

 


[ dual 표 활용 ]

 

- dual은 oracle에서 기본으로 제공해주는 1열 2행짜리 테이블이다.

- dummy라는 이름의 칼럼에 텍스트 'x' 가 들어가있는 것을 확인할 수 있음.

SELECT 999 FROM dual;
SELECT '바나나' FROM dual;

- 위와 같이 특정 숫자, 문자열을 표 형태의 문법으로 출력하고 싶을 때 사용한다.

 


 

[ SEQUENCE 활용 ]

 

- SEQUENCE는 oracle에서 제공하는, 호출할 때마다 자동으로 숫자가 1씩 증가하는 칼럼이다.

 

- CREATE SEQUENCE 시퀀스명;  : 함수 생성
- 시퀀스명.NEXTVAL 으로 호출 (함수 뒤의 ()는 전달할 값이 없는경우 생략한다)

- DROP sequence 시퀀스명; : 함수 삭제

 

- row의 id 역할을 할 숫자를 자동으로 얻어낼 수 있다.

 

-위와 같이 1열에 들어갈 숫자(num)을 SEQUENCE를 사용할 수 있다.

 


 

[ oracle 데이터 저장방법 ]

 

- spool 파일명.txt 로 텍스트 파일 생성
- 작업이 끝난후 spool off 입력하면 spool 된 동안 작성된 데이터가 host 폴더에 텍스트파일로 저장됨.

 


 

이렇게 중간에 오타가 있는 경우..

ED 입력 → 열리는 메모장에서 오타 수정하고 닫기, 저장 → / 입력해서 오타 수정 가능!