본문 바로가기

Database(DB)/MySQL(2024 version)

MySQL(1) - DB(Database) 개요, DBMS의 기초(RDBMS, SQL), 예제 풀이

728x90
반응형

<목차>

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"가 적용됨!