기초 용어 정리
DataBase :데이터베이스
- 데이터를 일정한 체계에 따라 통합하여 디스크나 메모리에 저장한 것
- 응용 프로그램에 종속적이지 않아 일종의 미들웨어 형태
DBMS(Database Management System) : 데이터베이스 관리 시스템
- 데이터베이스를 구축하고 관리할 수 있는 기능을 제공하는 시스템 소프트웨어
- 엄밀하게는 OS위에 애플리케이션과 같이 설치하여 운영(시스템 소프트웨어와 응용 소프트웨어의 중간 미들웨어)
관계형데이터 베이스 (RDB) : Relational Database
- 데이터의 일관성 문제를 근본적으로 해결한 데이터베이스 시스템
- 요즘은 대부분 객체관계형 데이터베이스 (Object-Relational Database)
- Oracle, PostgreSQL, MariaDB, MySQL, SQL Server 등이 있다
- 관계형 데이터베이스는 2차원 구조의 행(ROW)와 열(Column)으로 표현
- 한 열을 필드(속성)이라 하고 한 행을 레코드(튜플)이라 한다
SQL (Structured Query Language)
- 구조화된 질의 언어
- 데이터베이스의 구조를 정의하고, 데이터를 조작하며, 데이터를 제어할 수 있는 절차적 + 비절차적 언어
SQL 구분
DDL (Data Definition Language, 데이터 정의 언어)
- 스키마(데이터의 구조)를 정의하는 명령어
- ERD (Entity-Relationship Diagram) 으로 그려진 데이터 모델과 상호 변환이 가능
- ex) CREATE, ALTER, DROP, RENAME, TRUNCATE
DML (Data Manipulation Language, 데이터 조작 언어)
- 테이블에 데이터를 조회, 입력, 수정, 삭제하는 명령어
- ex) SELECT, INSERT, UPDATE, DELETE, MERGE
* TRUNCATE, DROP, DELETE의 차이
- DROP : 스키마까지 완전히 삭제 / 저장공간을 릴리즈(재사용 가능)
- TRUNCATE : 스키마는 남기고 데이터만 삭제 / 저장공간을 릴리즈(재사용 가능)
- DELETE : 테이블의 데이터를 모두 삭제 / 저장공간을 릴리즈 x (재사용 불가)
DCL (Data Control Language, 데이터 제어 언어)
- 사용자 접근 권한과 보안, 제어 등을 다룸
- ex) GRANT, REVOKE
TCL(Transaction Control Language, 트랜잭션 제어 언어)
- 트랜잭션에 대한 제어를 다루는 명령어 (DCL의 일부로 보기도 함)
- ex) COMMIT, ROLLBACK, SAVEPOINT
SQL의 기본
1. SELECT절
SELECT 문은 데이터를 조회시에 사용
- 여러 테이블에 동일한 명의 칼럼이 있으면 " . " 을 이용하여 테이블과 붙여 표기 한다
- ex) member.ID,c client.ID
Table에는 Alias를 부여할 수도 있다
- Alias 는 From 절에서는 그냥 쓰고, Select절에서는 AS 문법을 사용한다
- ex) SELECT A.회원번호 AS ID
FROM 회원 A
SELECT문의 기본 순서
SELECT : 조회
FROM : 테이블 지정
WHERE : 조건에 맞는 행
GROUP BY :그룹핑
HAVING : 필터링(그룹기준 조건)
ORDER BY : 정렬
* DUAL : Orable에서 사용할 수 있는 임시 가상테이블
- 이런 식으로 사용 SELECT 85 + NULL FROM DUAL
=> 실행 순서는 F W G H S O (Fuck why 구했소)
산술연산자
산술 연산자는 다른 언어와 동일하게 사용
(), *, /, %, +, - => Oracle에서는 %대신 MOD 함수를 사용
* Null 과의 산술 연산 결과는 Null 이다
|| : 합성 연산자
- 문자열을 연결할 때 사용
- ex) SELECT FNAME || ' ' || LNAME AS FULL_NAME
>> FNAME 과 LNAME을 공백을 가운데에 두고 합성하여 FULL_NAME을 형성
2. WHERE 절
3. GROUP BY, HAVING 절
4. ORDER BY 절
'IT Study > SQL' 카테고리의 다른 글
| [SQLD] 데이터베이스 이상현상 및 정규화/반정규화 (0) | 2025.11.03 |
|---|---|
| [SQLD] 데이터 모델링의 이해 (모델링,주요요소 트랜젝션) (0) | 2025.10.16 |
| 데이터 베이스의 기초 (용어 정리) (0) | 2025.09.05 |
| [생활코딩 SQL][Database] 관계형 데이터 모델링(part1,2) (0) | 2022.11.28 |
| [생활코딩 SQL][MYSQL] JOIN (0) | 2022.11.19 |