[프로그래밍] DataBase

[DATABASE] ORACLE SQL

JHVan 2024. 11. 11. 13:05

ORACLE DATABASE 에서 사용하는 주요 언어

 

1. DDL (DATA DEFINITION LANGUAGE) : 데이터베이스의 구조나 스키마를 정의하거나 변경

 

주요 명령어

 

CREATE :  TABLE 을 생성

코드예

-- 병원 환자 정보를 저장하는 테이블 생성
CREATE TABLE Patients (
    patient_id INT PRIMARY KEY,         -- 환자의 고유 ID, 기본 키
    first_name VARCHAR(50),             -- 환자의 이름
    last_name VARCHAR(50),              -- 환자의 성
    birth_date DATE,                    -- 생년월일
    gender CHAR(1),                     -- 성별 (M/F)
    contact_number VARCHAR(15),         -- 연락처
    address VARCHAR(100),               -- 주소
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- 기록 생성 날짜
);

 

 

ALTER : 기존 테이블에 새로운 열을 추가

코드예

-- 환자 테이블에 보험 번호 열 추가
ALTER TABLE Patients
ADD insurance_number VARCHAR(20);  -- 보험 번호 필드 추가

 

DROP : 테이블 삭제하고, 안의 모든 데이터 역시 삭제

코드예

-- 환자 테이블 삭제
DROP TABLE Patients;
-- 이 명령어는 테이블과 그 안의 모든 데이터를 삭제합니다.

 

TURNCATE : 테이블의 구조만 남기고, 모든 데이터를 삭제

코드예

-- 환자 테이블의 모든 데이터 삭제
TRUNCATE TABLE Patients;
-- 이 명령어는 테이블의 데이터만 제거하고 테이블 자체는 남아 있습니다.

 

 

2.DML(Data Manipulation Language) : 데이터베이스 내의 데이터를 조작(삽입, 수정, 삭제 등) 하는 명령어

 

주요 명령어

 

INSERT :  테이블에 데이터를 새로운 ROW 를 추가하여 삽입

코드예

-- 환자 테이블에 새로운 환자 데이터 삽입
INSERT INTO Patients (patient_id, first_name, last_name, birth_date, gender, contact_number, address)
VALUES (1, 'John', 'Doe', '1985-03-15', 'M', '123-456-7890', '123 Main St, Cityville');
-- 새로운 환자의 기본 정보를 추가합니다.

 

SELECT :  DB 에서 특정 조건이나 전체 데이터를 검색하고 조회하여 사용자가 볼 수 있도록 반환

코드예

-- 모든 환자의 정보를 조회
SELECT * FROM Patients;

-- 특정 환자의 정보를 조회 (이름과 성별만 선택)
SELECT first_name, gender FROM Patients
WHERE patient_id = 1;
-- 환자 ID가 1인 환자의 이름과 성별을 검색합니다.

 

UPDATE : DB 에서 테이블에 저장된 기존 데이터를 조건에 맞게 변경

코드예

-- 환자 테이블에서 환자 연락처를 업데이트
UPDATE Patients
SET contact_number = '987-654-3210'
WHERE patient_id = 1;
-- 환자 ID가 1인 환자의 연락처를 새로운 번호로 업데이트합니다.

 

DELETE : DB 테이블에서 특정 조건에 맞는 데이터를 제거

코드예

-- 특정 환자 데이터를 삭제
DELETE FROM Patients
WHERE patient_id = 1;
-- 환자 ID가 1인 환자의 데이터를 테이블에서 제거합니다.

 

3.DCL(DATA CONTROL LANGUAGE): 데이터베이스의 보안과 접근 권한을 담당하는 명령어

 

주요 명령어

 

GRANT : 특정 사용자나 역할군(ROLE)에게 데이터베이스 객체에 대한 특정 권한을 부여

코드예

-- 병원 데이터베이스에서 환자 테이블에 대한 SELECT 권한을 특정 사용자에게 부여
GRANT SELECT ON Patients TO user1;
-- user1은 이제 Patients 테이블의 데이터를 조회할 수 있는 권한을 가집니다.

 

REVOKE : 특정 사용자나 역할에서 데이터베이스 객체에 대한 기존 권한 취소

코드예

-- 병원 데이터베이스에서 user1의 SELECT 권한 회수
REVOKE SELECT ON Patients FROM user1;
-- user1은 더 이상 Patients 테이블의 데이터를 조회할 수 없습니다.

 

4.TCL(TRANSACTION CONTROL LANGUAGE): 데이터베이스에서 트랜잭션의 일관성과 무결성 확립

 

주요 명령어

 

COMMIT : 현재 트랜잭션에 의해 수행된 모든 변경 사항을 영구적으로 데이터베이스에 반영

코드예

-- 환자 데이터를 삽입하고 변경 사항을 확정
INSERT INTO Patients (patient_id, first_name, last_name, birth_date, gender, contact_number, address)
VALUES (2, 'Jane', 'Smith', '1990-07-20', 'F', '321-654-0987', '456 Elm St, Townsville');

-- 트랜잭션 확정
COMMIT;
-- 데이터베이스에 영구적으로 기록되며 다른 사용자에게도 반영됩니다.

 

ROLLBACK : 현재 트랜잭션 내에서 수행된 모든 변경사항을 취소하고 이전 상태로 되돌림

코드예

-- 환자 데이터 수정
UPDATE Patients
SET contact_number = '555-555-5555'
WHERE patient_id = 2;

-- 문제가 발생하여 트랜잭션을 취소
ROLLBACK;
-- 데이터베이스는 변경 이전 상태로 되돌아갑니다.

'[프로그래밍] DataBase' 카테고리의 다른 글

[DATABASE] ORACLE 함수와 표현식  (0) 2024.11.11
[DATABASE] ORACLE 연산자  (0) 2024.11.11
[DataBase] SQL 구문  (0) 2024.05.15
[DataBase] SQL  (0) 2024.05.15
[DataBase] Table 제약조건  (0) 2024.05.12