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 |