<목차>
1) DB(Database) 개요
1-1) DB의 특징
2) DBMS의 기초
2-1) DBMS의 종류
2-2) RDBMS
2-3) SQL
3) 예제 풀이
1) DB(Database) 개요
DB(Database)
- 데이터 : 이론을 세우는 데 기초가 되는 사실 또는 바탕이 되는 자료
- 정보 : 데이터를 정보 처리한 결과
- 데이터베이스(DB) : 데이터를 저장하고 관리하는 저장소
1-1) DB의 특징
- 실시간 접근성(Real-Time Accessibility) : 실시간 처리에 의한 응답이 가능해야 한다.
- 계속적인 변화(Continuous Evolution) : 새로운 데이터의 삽입(Insert), 삭제(Delete), 갱신(Update)으로 항상 최신의 데이터를 유지한다.
- 동시 공유(Concurrent Sharing) : 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.
- 내용 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 사용자의 요구에 따른 데이터 내용으로 데이터를 찾는다.
2) DBMS의 기초
DBMS(DataBase Management System)
1. 데이터베이스를 관리하는 시스템
- DB : 테이블(Table)들이 모여 이루는 데이터 단위
- Data : 데이터베이스 안에서 Table 단위로 저장되는 정보
2. 데이터를 저장하고 유지보수(수정, 삭제, 추가)하고 이를 검색하는 시스템
3. 대량의 데이터를 처리하는 시스템
4. 다양한 자료구조와 검색구조(sorting, indexing, ...)를 사용해 “빠른” 검색 가능
5. 검색에 최적화
6. 동시에 DB에 접근하여 데이터를 사용
2-1) DBMS의 종류
- 계층형 데이터베이스
- 네트워크형 데이터베이스
- 관계형 데이터베이스(RDBMS)
- 객체지향 데이터베이스
- 객체관계형 데이터베이스(ORDBMS)
- NoSQL(Not Only SQL)
2-2) RDBMS
관계형(Relational) 데이터베이스 관리 시스템
2차원 테이블(Table based) 기반의 DBMS
데이터 처리를 위해 SQL 사용
파일 시스템 | 데이터베이스 모델링 | 관계형 데이터베이스 | |
파일(file) | 엔터티(entity) | 테이블(table) | |
레코드(record) | 튜플(tuple) | 행(row) | |
키(key) | 유일값(identifier) | 기본키(Primary Key) | |
필드(field) | Attribute | 컬럼(Column) |
RDBMS 종류 : Oracle Database, MySQL, MariaDB, Microsoft SQL Server, SQLite
2-3) SQL
- 관계형 데이터베이스에서 데이터 조작과 데이터 정의를 하기 위해 사용되는 언어
- 사용자는 데이터베이스에 자료를 입력/조회/수정/삭제하기 위해 SQL 사용
SQL : 표준 SQL과 각 회사별 특성을 표현하는 SQL 확장 언어
* SQL문 종류
명령어 종류 | 명령어 | 설명 |
데이터 조작어(DML : Data Manipulation Language) |
SELECT | 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 "RETRIEVE"라고도 한다. |
INSERT, UPDATE, DELETE | 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들을 말한다. 데이터 삽입, 수정, 삭제 |
|
데이터 정의어(DDL : Data Definition Language) |
CREATE, ALTER, DROP, RENAME, TRUNCATE | 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 그러한 구조를 생성하거나 변형하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어들을 DDL이라고 부른다. |
데이터 제어어(DCL : Data Control Language) |
GRANT, REVOKE | 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어를 DCL이라고 한다. |
트랜잭션 제어어(TCL : Transaction Control Language) |
COMMIT, ROLLBACK, SAVEPOINT | 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션)별로 제어하는 명령어를 말한다. |
3) 예제 풀이
<localhost> scit_45B_class01
-- 한 줄 주석
/*
여러 줄 주석
*/
/*
DataBase + Management System
MySQL(RDBMS)
공통된 저장소(DB)를 만들고 관리자가 관리
그 관리자와 소통하기 위한 언어(명령어)가
Query Language
구조화된(Structured) => SQL
구조화:
DDL(create, alter, drop) : 구조를 만듦
DML(select, insert, update, delete) : 안에 있는 내용물(데이터)를 조작하는 역할을 함
DCL(grant, revoke) : 권한을 부여하거나 뺏거나 함
TCL(commit, rollback) : 하나의 작업 단위를 만들어서 작업 단위를 관리함
*/
* ctrl + enter : 현재 커서를 두고 있는 코드 라인의 SQL 명령 구문 실행 단축기
select * from employees;

desc employees; -- 해당 테이블(employees 테이블)의 field(cloumn) 정보를 조회하는 명령 구문

select version(); -- 설치한 mysql 버전을 조회하는 명령 구문

show table status;

-- 전체 조회
select * from employees;

-- 부분 조회
select employee_id, last_name, salary from employees;

-- 1. 현재 DB(스키마) hr의 테이블명 출력
show tables;
-- show table status;
-- show table status like '%mp%';

-- 2. 테이블의 모든 데이터 출력(전체 조회)
select * from employees;
-- select * from departments;
-- select * from job_history;

-- 3. 테이블의 부분 컬럼 조회 출력(부분 조회)
select
employee_id 사원번호,
first_name '이름',
last_name as 성,
salary as '연봉'
from employees e;
-- 별칭 표현은 위의 4가지 다 가능하지만 이 중 네 번째에 해당하는 salary as '연봉'처럼 쓰는 것이 가장 좋음!
-- select department_id, department_name, manager_id from departments;
-- select job_id, department_id from job_history;

select
employee_id 사원번호,
first_name '이름',
last_name as 성,
salary as '연봉'
from employees e
order by salary desc;
-- asc: 오름차순, desc: 내림차순 --> 따로 지정을 하지 않은 경우에는 자동으로 default 값인 "asc"가 적용됨!

'Database(DB) > MySQL(2024 version)' 카테고리의 다른 글
MySQL(6) - SELECT 서브쿼리 (0) | 2024.05.21 |
---|---|
MySQL(5) - SELECT 조인(내부 조인, 외부 조인) (0) | 2024.05.20 |
MySQL(4) - SELECT 그룹화(집계 함수, GROUP BY, HAVING) (0) | 2024.05.17 |
MySQL(3) - SELECT 집합 연산자, 함수, 조건식, CASE 문 (0) | 2024.05.16 |
MySQL(2) - SELECT 조회, 중복 제거, 별칭, 정렬, 조건, 연산자 (0) | 2024.05.14 |