🖋️ DDL 과 DML
@ Oracle SQL
널리 사용되는 관계형 데이터베이스 관리 시스템인
Oracle Database 에서 사용되는 SQL 버전
데이터 및 데이터베이스 구조를 관리하기 위해
DDL(데이터 정의 언어)과 DML(데이터 조작 언어)을 모두 사용
DDL (데이터 정의 언어)
DB 구조를 정의하고 수정하는 데 사용
CREATE (생성)
// DB 생성
CREATE DATABASE [데이터베이스 이름];
// 직원 ID, 이름, 성, 이메일, 가입 날짜 열이 포함된
// 'Employees'라는 새 테이블을 생성
CREATE TABLE Employees (
EmployeeID NUMBER PRIMRAY KEY,
FirstName VARCHAR2(50),
LastName VARCHAR2(50),
Email VARCHAR2(100),
JoinDate DATE
);
// 반드시 사용하는 column 은 NOT NULL
CREATE ~~ (
id INT(10) NOT NULL
)
// 중복여부 확인에는 UNIQUE
CREATE TABLE [테이블명] (
[컬럼명] [데이터형식] UNIQUE [제약조건]
)
// 각 테이블의 고유식별 column
CREATE ~~ (
PRIMARY KEY (id)
)
// 두 테이블을 연결
CREATE ~~ (
FOREIGN KEY (id) REFERENCES Table2(id)
)
ALTER (변경)
// 'Employees' 테이블에 새 열 'Salary' 추가
ALTER TABLE Employees ADD Salary NUMBER;
// 수정
ALTER TABLE [테이블 이름]
MODIFY COLUMN [column이름] [해당 데이터타입];
DROP (삭제)
// DB 삭제
DROP DATABASE [데이터베이스 이름];
// 'Employees' 테이블 삭제
DROP TABLE Employees;
날짜
DATE - format YYYY-MM-DD
DATETIME - format: YYYY-MM-DD HH:MI:SS
SMALLDATETIME - format: YYYY-MM-DD HH:MI:SS
TIMESTAMP - format: a unique number
DML (데이터 조작 언어)
DB 내의 데이터를 관리하는 데 사용
INSERT (삽입)
// 'Employees' 테이블에 새 레코드가 삽입
INSERT INTO Employees (EmployeeID, FirstName, LastName, Email, JoinDate)
VALUES (1, 'John', 'Doe', 'john.doe@example.com', TO_DATE('2021-01-15', 'YYYY-MM-DD'));
UPDATE (수정)
// 'EmployeeID' 1인 직원의 급여 업데이트
UPDATE Employees
SET Salary = 50000
WHERE EmployeeID = 1;
DELETE (삭제)
// 'Employees' 테이블에서
// 'EmployeeID'가 1인 직원의 기록이 삭제
DELETE FROM Employees
WHERE EmployeeID = 1;
SELECT (선택)
// 'Employees' 테이블의 모든 레코드가 선택
SELECT * FROM Employees;
SELECT (특정 데이터 선택)
// 급여가 40000 이상인 직원의 이름과 성을 선택
SELECT FirstName, LastName FROM Employees
WHERE Salary > 40000;
// And, Or, Not
SELECT FirstName, LastName FROM Employees
WHERE Salary > 40000 AND (FirstName = 'Kim' OR FirstName = 'Lee');
// Order by
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
// NULL (비어있지 않는 값)
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;
# 활용
- 합계 및 최대값
집계 함수가 포함된 'GROUP BY'를 사용하여
SQL DB 에 있는 데이터의 그룹화된 하위 집합에서 활용
SELECT Department,
AVG(Salary) AS AverageSalary,
SUM(Salary) AS TotalSalary,
MAX(Salary) AS HighestSalary,
COUNT(EmployeeID) AS TotalEmployees
FROM Employees
GROUP BY Department;