Definition of SQL
SQL은 관계형 데이터베이스에 access하기 위해 세계 공통으로 사용하는 ANSI 표준 언어임
오라클 뿐만 아니라 모든 업체에서 만드는 관계형 데이터베이스에 대해 SQL 사용 가능
SQL은 프로그래밍을 하기 위한 언어가 아니며 관계형 데이터베이스 내의 데이터 정의, 검색, 조작하기 위한 기능 제공
데이터 access를 위한 모든 기능을 제공하지만 syntax가 어렵지 않기 때문에 쉽게 배우고 사용할 수 있는 장점이 있음
SQL Statements
- Data Retrieval (Query) : 데이터를 읽어오는 명령문
- Data Manipuliation Language (DML) : 데이터를 삽입 / 수정 / 삭제하는 명령문
- Data Definition Language (DDL) : 데이터 구조 정의를 생성 / 변경 / 삭제하는 명령문
- Transaction Control : 작업의 논리적 단위인 트랜잭션을 제어하는 명령문
- Data Control Language (DCL) : 데이터에 대한 접근 권한을 제어하는 명령문
Projection using SELECT Statement
테이블에서 특정 열만 선택하여 검색하고자 할 때에는 SELECT 절에 원하는 열의 이름 나열
SELECT 절에는 열의 이름 외에도 여러 가지 연산자를 포함하는 표현식 사용 가능
Selection using SELECT Statement
SELECT 문장의 WHERE 절에 원하는 조건을 사용하면 테이블에서 특정 행만 선택하여 검색 가능
Selection using SELECT Statement
WHERE 절의 조건에서는 여러 가지 비교 연산자를 사용할 수 있으며 문자나 날짜 데이터를 비교할 때는 값을 홀 따옴표 내에 써주어야 함
여러 개의 조건식을 AND나 OR 연산자로 연결하여 사용할 수도 있음
Elimination Duplicate Rows
SELECT 문은 기본적으로 검색한 결과 중 중복되는 행이 있을 경우 중복 행 모두 출력
Elimination Duplicate Rows
SELECT 절에 DISTINCT 를 사용하면 결과에서 중복 행을 제거하고 서로 다른 행들만 출력 가능
Sorting Rows
검색 결과 행들을 정렬하여 보고자 할 때는 ORDER BY 절 사용
ORDER BY 절은 SELECT 문장의 끝에 사용해야 하며 행들을 정렬하는 기준이 될 열의 이름 지정
Sorting Rows in Ascending and Descending Order
정렬 순서는 오름차순과 내림차순이 있는데 ORDER BY 절에서는 열 이름 뒤에 이를 지정하기 위해 ASC, DESC를 사용할 수 있음
생략하면 기본 값은 ASC, 즉 오름차순 정렬임
Join Tables
두 개 이상의 테이블로부터 데이터를 연결하여 조회할 때는 Join 기법 사용
Join을 할 때는 SELECT 문장의 FROM 절에는 두 개 이상의 테이블 이름을 나열하게 되며, WHERE 절에 두 테이블의 데이터를 연결하기 위한 비교 조건 사용
서로 다른 테이블에 동일한 이름의 열이 존재할 경우에는 혼동을 일으키지 않도록 열 이름 앞에 테이블 이름을 표시해주어야 함
Equijoin Example
Equijoin은 양 쪽 테이블의 공통 열 값을 비교하여 같은 값을 같는 행들끼리 연결하여 출력하는 방식의 Join으로서 가장 일반적으로 사용되는 Join의 형태
The INSERT Statement Syntax
INSERT 문장을 사용하여 테이블에 새로운 하나의 행을 삽입할 수 있음
- table : 행을 추가할 테이블 이름 지정
- column : 새로운 값이 저장될 열 이름 지정
- value : 각 열에 저장될 데이터 값 지정
열의 이름을 지정하지 않으면 테이블에 정의되어 있는 순서대로 모든 열에 값 저장하게 됨
Inserting New Row into a Table
INSERT 문장의 VALUES 절에는 테이블의 각 열에 대응되는 값을 순서대로 지정해 주어야 함
이때, 문자나 날짜 데이터는 홀 따옴표를 사용하여 표시함
The UPDATE Statement Syntax
UPDATE 문장을 사용하여 테이블에 저장되어 있는 데이터 수정 가능
- table : 데이터를 수정할 테이블의 이름 지정
- column : 데이터를 수정할 열의 이름 지정
- value : 수정할 열의 새로운 데이터 값 지정
- condition : 열의 값을 수정할 행을 선택하는 조건식 지정
Updating Rows in a Table
UPDATE 문장에서 WHERE 절을 사용하면 조건에 맞는 행만 선택하여 데이터 수정 가능
만약 WHERE 절을 사용하지 않으면 테이블의 모든 행에 대하여 값 수정
The DELETE Statement Syntax
DELETE 문장을 사용하여 테이블에 저장되어 있는 데이터 삭제 가능
- table : 데이터를 삭제할 테이블 이름 지정
- condition : 삭제할 행을 선택하는 조건 지정
Deleting Rows from a Table
DELETE 문장에서 WHERE 절의 사용하면 조건에 맞는 행만 삭제됨
조건에 맞는 행이 없을 경우에는 아무 데이터도 삭제되지 않고 결과로 "0 rows deleted." 라는 메세지 출력
만약 WHERE 절을 사용하지 않으면 테이블의 모든 행이 삭제되므로 주의해서 사용할 필요가 있음
Database Transactions
트랜잭션은 데이터베이스에 수행하는 작업의 논리적 단위를 가리키는 말
데이터베이스에서 하나의 트랜잭션은 첫 번째로 실행되는 DML 문장으로부터 시작되어 COMMIT이나 ROLLBACK 과 같은 트랜잭션 제어 명령문을 실행할 때 끝남
이 한 트랜잭션 동안 수행되는 모든 작업은 데이터의 일관성을 유지하기 위하여 트랜잭션이 끝날 때까지 데이터 변경을 실제로 데이터베이스에 적용하지 않고 priview 형태로 보여주기만 함
데이터 변경이 실제로 적용되는 것은 트랜잭션이 COMMIT 명령문으로 종료되는 경우임
ROLLBACK 명령문으로 종료된 트랜잭션은 그 트랜잭션 동안 수행한 모든 데이터 변경을 취소함
Commiting Data
COMMIT 명령문은 트랜잭션 동안 데이터베이스에서 수행한 모든 데이터 변경 작업을 확정하여 데이터베이스에 영구적으로 반영되도록 함
Rolling Back Changes
ROLLBACK 명령문은 트랜잭션 동안 데이터베이스에서 수행한 모든 데이터 변경 작업을 취소하여 데이터베이스를 트랜잭션이 시작되기 전의 상태로 되돌려 놓음
Creating Tables
CREATE TABLE 문장을 실행하여 테이블을 생성한 후, 생성된 테이블의 구조를 확인하기 위하여 DESCRIBE 명령문을 사용할 수 있음
DESCRIBE 명령문을 실행하면 테이블의 열 이름과 각 열의 데이터 유형 및 길이, Null 값 허용 여부를 알 수 있음
ALTER TABLE Statement
ALTER TABLE 문장을 사용하여 데이터베이스에 저장되어 있는 테이블에 열을 추가하거나 변경, 삭제하는 등 테이블 구조 변경 가능
Dropping a Table
DROP TABLE 문장을 사용하여 데이터베이스에서 테이블을 삭제할 수 있음
테이블을 삭제하면 테이블 내의 모든 데이터와 테이블의 구조까지 완전히 삭제되며 이 작업은 ROLLBACK이 되지 않음
'DB > DBI' 카테고리의 다른 글
What is Oracle? (1) | 2024.01.08 |
---|---|
Advanced Database Technology and Future Trend (1) | 2024.01.08 |
Database Design and Build (1) | 2024.01.08 |
Normalization (1) | 2024.01.04 |
Logical Data Model and Relational Database (2) | 2024.01.04 |