전세계 기업시장에서 굉장히 활용 많이 하는 관계형 DB 로 오라클이 있음.
상용 가격은 굉장히 비싸고, 유지보수 비용도 굉장히 높은것으로 알려져 있음.
마이크로서비스가 활성화 되면서 예전과 달리 비싼 비용의 오라클보다 무료 DB 로 전환하는 사례도 나타나고 있음
주로 서비스업체 중심으로 Mysql / Maria DB 가 많이 활용되고 SI 프로젝트는 아직도 전통의 강자 오라클이 많이 사용되고 있음
- SQL Developer
- Oracle SQL
- CRUD : 약어 , DB 또는 실무 프로젝트 많이 사용하는 용어
- C(CREATE 문(생성)), R(READ, SELECT 문(조회)), U(UPDATE 문(수정)), D(DELETE 문(삭제))
- 테이블 의미 : DB(데이터베이스)에서 자료를 저장하는 곳(논리적 공간)
- DDL( DATA DEFINITION LANGUAGE : 데이터 정의어(용어))
- NUMBER(크기) : 숫자 자료형, (실수, 정수 등)
- VARCHAR2(크기) : 문자열 자료형, 가변자료형 (VS CHAR(크기): 고정자료형)
사용법 :
CREATE TABLE 테이블명(
컬럼명 자료형(크기),
...
);
예 :
CREATE TABLE DEPT(
DNO NUMBER(2),
DNAME VARCHAR2(14),
LOC VARCHAR2(13)
);
테이블 구조 + 데이터 복사
사용법 :
CREATE TABLE 복사할테이블명
AS
SELECT * FROM 원본테이블;
예 :
CREATE TABLE DEPT_COPY
AS
SELECT * FROM DEPARTMENT;
테이블 구조 : 데이터 제외
사용법 :
CREATE TABLE 복사할테이블명
AS
SELECT * FROM 원본테이블
WHERE 거짓조건;
예 :
CREATE TABLE DEPT_COPY2
AS
SELECT * FROM DEPARTMENT
WHERE 1=2; -- 거짓조건 아무거나 붙이면 데이터 빼고 복사됨
- 테이블/컬럼에 상세 설명을 붙일 수 있음
사용법 : 테이블 주석 달기
COMMENT ON TABLE 테이블명 IS '테이블주석';
예 :
COMMENT ON TABLE DEPT IS '부서정보';
사용법 : 컬럼 주석 달기
COMMENT ON COLUMN 테이블명.컬럼명 IS '컬럼주석';
예 :
COMMENT ON COLUMN DEPT.DNO IS '부서번호';
COMMENT ON COLUMN DEPT.DNAME IS '부서명';
COMMENT ON COLUMN DEPT.LOC IS '부서위치';
- DROP TABLE 테이블명;
DROP TABLE DEPT_COPY;
- 영구반영 : INSERT/UPDATE/DELETE 에 대해서 영구 반영됨, 취소 불가
- 취소 : INSERT/UPDATE/DELETE 에 대해서 취소 가능
-- 취소 : ROLLBACK;
ROLLBACK;
-- 영구 반영 : 취소(ROLLBACK)불가상태
-- 의미 : 영구 반영하면 다른 유저가 현재 생성한/수정/삭제한 데이터를 볼 수 있음
COMMIT;
- INSERT
사용법)
INSERT INTO 테이블명(컬럼명, 컬럼명2, ...)
VALUES(값, 값2, ...); -- 데이터 추가
예 :
-- 예제) DEPT_COPY 테이블에 데이터 INSERT
INSERT INTO DEPT_COPY(DNO, DNAME, LOC)
VALUES(10, 'ACCOUNTING', 'NEW YORK'); -- 데이터 추가
-- NULL 값도 추가 가능
INSERT INTO DEPT_COPY(DNO, DNAME, LOC)
VALUES(40, 'OPERATIONS', NULL); -- 데이터 생성
-- 있는 컬럼을 제외하면 자동으로 NULL 이 입력됨
INSERT INTO DEPT_COPY(DNO, DNAME)
VALUES(30, 'SALES'); -- 데이터 생성
-- 영구 반영 : 다른 사람이 변경된 데이터를 볼 수 있음
COMMIT;
- UPDATE
사용법)
UPDATE 테이블명
SET
컬럼명 = 변경할값
WHERE 컬러명 = 값; (조건)
예 :
UPDATE DEPT_COPY
SET
DNAME = 'PROGRAMMING'
WHERE DNO = 10;
-- 영구 반영 : 다른 사람이 변경된 데이터를 볼 수 있음
COMMIT;
- DELETE
사용법)
DELETE (FROM) 테이블명
WHERE 컬럼명 = 값;
-- 예제) 10번 부서를 삭제하세요
DELETE FROM DEPT_COPY
WHERE DNO = 10;
SELECT * FROM DEPT_COPY;
-- 영구 반영
COMMIT;