DATABASE
Application으로, oracle, mysql, maria db, ms sql, mongo db 등의 종류가 있다.
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 + 테이블명
데이터를 실제로 테이블에 반영하기 : 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인 칼럼을 이용한다 !
* 오라클에서의 =의 역할 : 대입, 비교연산
* primary key
똑같은 num(id역할)이 다른 row에 있을 수 없음
만들 때 비어있는 상태(NULL)로 만들 수 없음
테이블 삭제 : drop table + 테이블명
SQL> DROP TABLE client_list;
테이블이 삭제되었습니다.
함수 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랑 따옴표 안쓰고 그냥 한칸 띄어쓰기해서 지정하면 됨
spool study.txt
spool + 파일명.txt : 앞으로 일어나는 모든 작업내용을 텍스트파일에 저장하겠다
spool off 엔터 => 끝남