ORACLE 기초

.·2022년 4월 14일
0

ORACLE

목록 보기
1/10

DATABASE

Application으로, oracle, mysql, maria db, ms sql, mongo db 등의 종류가 있다.

용도

  • 다른 Application에서 어떠한 정보( 숫자, 문자, 날짜, 파일 )를 저장할 수 있도록 해주는 용도
  • 인터넷으로 원격 접속도 가능하다
  • 다수의 client가 접속을 해서 동시에 어떤 데이터를 입력, 수정, 삭제를 하더라도 에러없이 잘 관리해주는 기능도 있다

Java Web Application <=> Oracle DB
앱에서 오라클DB에 접속을 해서 사용할 수 있게 함
어떤 정보를 저장할 때 그냥 저장해도 되긴 하지만 데이터베이스를 이용함으로써 여러 명의 client가 동시에 접속해서 사용해도 문제가 없도록 함


표에 row가 하나하나 추가되는 형태로 관리
-> db에 뭘 저장하려면 table을 먼저 만들어야 함

table을 만들 때 고려해야 할 내용
1. table의 이름
2. 칼럼의 개수
3. 칼럼의 이름
4. 칼럼에 어떤 type의 데이터를 저장할 것인지 (숫자 or 문자 or 날짜 or 파일)
5. row의 아이디 역할을 할 칼럼은 어떤 칼럼으로 지정을 할 것인지
-수많은 row 중에 하나를 찾아내려면 row도 아이디가 있어야 한다(row를 대표하는 id역할을 하는 칼럼 지정), 겹치면 안됨

테이블 생성 : CREATE TABLE + 테이블명(칼럼 데이터 타입)

생성한 테이블의 구조 보기 : DESC

DESC client_list

테이블에 데이터 저장하기 : INSERT INTO

insert into + 테이블명

  • 오라클에서 숫자는 그냥 쓰면 되지만 문자는 싱글따옴표로 감싸야 함 ! (큰따옴표 안됨 xxx)

데이터를 실제로 테이블에 반영하기 : COMMIT;

row에 저장된 데이터는 임시값이고 commit을 해주어야 확정이 된다.

테이블에 저장된 데이터 출력하기 : SELECT

select + 궁금한 내용 from + 테이블명

테이블에서 특정 ROW 를 삭제 : DELETE FROM

DELETE FROM + 테이블명 + WHERE + 조건절

SQL> DELETE FROM member;
2 행이 삭제되었습니다.

-> WHERE절 조건 주지 않으면 모든 행 다 삭제됨

테이블에서 특정 ROW를 수정 : UPDATE

UPDATE+테이블명
SET 칼럼명=데이터
WHERE(특정 row) (조건)

여기서 WHERE 뒤 조건절은 PRIMARY KEY인 칼럼을 이용한다 !

* 오라클에서의 =의 역할 : 대입, 비교연산

  1. addr='동물원' => 대입
  2. where num=3; => 비교연산 (== 아님 !)

* primary key
똑같은 num(id역할)이 다른 row에 있을 수 없음
만들 때 비어있는 상태(NULL)로 만들 수 없음

테이블 삭제 : drop table + 테이블명

SQL> DROP TABLE client_list;
테이블이 삭제되었습니다.
  • 테이블 생성, 삭제 : 바로 반영된다 (commit 필요 x)
    row변경할때만 commit 해주면 됨 !

함수 SYSDATE : 날짜 등록 - 실행하는 시점의 날짜, 시간이 들어감

날짜 제한해서 나오게 하기

시간도 추가

오라클에서의 함수 호출
TO_CHAR(X, X)
XXX -> 전달할게 아무것도 없는 함수, ()쓰지 않고 그냥 적기 !

ORDER BY : 정렬해서 select하기

SQL> SELECT num, content, regdate FROM todo
  2  ORDER BY num DESC; (내림차순, descend)
 

정렬 여러번 가능 !
order by job asc, sal desc;
// 순서 중요 !! 뭐가 먼저 나오느냐에 따라서 결과 달라짐
ORDER BY는 한번만 쓰고 나머지 콤마로 구분

한 row data만 불러오기 가능 -> WHERE절 사용

SQL> SELECT num, content, regdate
  2  FROM todo
  3  WHERE num=2;  // 이 조건이 true인 row만 출력

비교연산자도 가능 !

SQL> SELECT num, content, regdate
  2  FROM todo
  3  WHERE num>=2;

일부 칼럼에만 데이터 집어넣기
1.

SQL> INSERT INTO member
  2  (num, name, addr)
  3  VALUES(1, '김구라', null);
SQL> INSERT INTO member
  2  (num, name)  // 칼럼이름 적지 않기
  3  VALUES(2, '해골');

oracle 실행순서
emp전체에서
1 from (emp table에서)
2 where (true인 row만 남긴 다음에)
3 select (정보 셀렉)

  • 오라클 명령문, 테이블명, 칼럼명 등은 대소문자를 가리지 않지만
    저장된 문자열(data)은 비교를 할 때 대소문자를 가린다. ***

  • select문의 결과도 하나의 테이블이다 !!
    (emp테이블을 가공해서 결과 테이블을 만들어냈다)
    -> 개발자가 원하는 특정 모양의 테이블을 만들어낼 수 있다

alias : 별칭 – 칼럼명이 복잡할 때 사용

SELECT empno AS “사원번호”, ename AS “사원이름”
= SELECT empno 사원번호, ename 사원이름

AS랑 따옴표 안쓰고 그냥 한칸 띄어쓰기해서 지정하면 됨

ORACLE 실행 순서

  1. from
  2. where
  3. group by
  4. having
  5. select
  6. order by

SPOOL : 작업내용 텍스트파일로 저장

spool study.txt
spool + 파일명.txt : 앞으로 일어나는 모든 작업내용을 텍스트파일에 저장하겠다
spool off 엔터 => 끝남

0개의 댓글