#MySQL이란?
MySQL은 전세계적으로 가장 널리 사용되고 있는 오픈 소스 데이터베이스이며, MySQL AB사가 개발하여 배포/판매하고 있는 데이터베이스(DataBase)이다. 표준 데이터베이스 질의 언어 SQL(Structured Query Language)을 사용하는 개방 소스의 관계형 데이터베이스 관리 관리시스템(RDBMS), 매우 빠르고 유연하며, 사용하기 쉬운 특징이 있다.
다중사용자, 다중쓰레드를 지원하고 C, C++, Eiffel, 자바, 펄, PHP, Pyton 스크립트 등을 위한 응용프로그램 인터페이스(API)를 제공한다. 유닉스나 리눅스, Windows운영체제 등에서 사용할 수 있다. LAPM 즉 리눅스 운영체제와 Apache 서버 프로그램, MySQL, PHP 스크립트 언어 구성은 상호 연동이 잘되면서도 오픈소스로 개발되는 무료 프로그램이어서 홈페이지나 쇼핑몰 등등 일반적인 웹 개발에 널리 사용되고 있다.
#데이터베이스(Database)란?
어느 한 조직의 여러 응용 시스템이 공유할 수 있도록 통합, 저장된 운영 데이터의 집합을 의미한다.
- 데이터베이스의 특징
데이터베이스는 질의에 대한 실시간 처리 및 응답을 처리할 수 있도록 실시간 접근과 삽입, 삭제 갱신을 통해서 현재의 데이터를 동적으로 유지할 수 있는 계속적인 변화를 제공하며, 여러 사용자가 동시에 공용할 수 있는 동시 공유와 위치나 주소가 아닌 내용, 즉 값에 따라 참조할 수 있는 내용에 의한 참조의 특징을 지니고 있다.
-데이터베이스 구성요소
데이터베이스에서는 어떤 목적을 가지고 있는 하나의 테이블로 정의한다. 테이블을 이용할 경우 편리성을 제공하기 위해서는 필드를 상세하게 정의하는것이 좋다.
- 데이터베이스 관리 시스템(DBMS)
DBMS는 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공유할 수 있도록 관리해 주는 소프트웨어 시스템이다. 목적은 데이터의 독립성을 제공하는 것이다. 데이터의 독립성에는 응용 프로그램에 영향을 주지 않고, 데이터베이스의 논리적인 구조를 변경시킬 수 있는 물리적인 데이터의 독립성이 있다. MySQL도 DBMS의 한 종류이다.
- MySQL 데이터베이스의 특징
PHP웹 프로그래밍에서 사용되는 DBMS는 MySQL이며, MySQL이 가지고 있는 특징을 살펴보면, 가장 먼저 꼽을 수 있는 것은 일반 사용자가 무료로 다운로드하여 사용할 수 있다는 장점이다. MySQL은 공개용 소프트웨어이기 때문에 누구나 무료로 다운받아 사용할 수 있지만, 상업적인 목적으로 MySQL을 사용하려면 반드시 라이센스를 별도로 구매하여야 한다. MySQL은 무료이면서 처리되는 속도 또한 상당이 빠르고 용이하며, 대용량의 데이터를 처리할 수 있는 장점과 보안에도 뛰어난 특성을 지니고 있다.
#SQL(Structured Query Language)문 살펴보기
- 관계형 데이터베이스에서 사용하는 표준 질의언어를 말한다.
- 사용방법이나 문법이 다른 언어(Java, C, C#)보다 단순하다.
- 모든 DBMS에서 사용 가능하다.
- 인터프리터 언어이다.
- 대소문자를 구별하지 않는다.(상수제외)
※
#데이터 정의 언어 - DDL(Data Definition Language)
데이터베이스의 구조 및 정의를 생성하거나 변경하는 쿼리를 DDL(데이터 정의 언어)라고 한다. 데이터베이스의 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터구조와 관련된 명령어들을 말한다.
※ 주의 : 직접 데이터베이스의 테이블에 영향을 미치기 때문에 DDL명령어를 입력하는 순간, 명령어에 해당하는 작업이 즉시 (AUTO COMMIT) 완료된다는 것을 기억해야 한다.
| SQL문 | 내 용 |
| CREATE | 데이터베이스 객체를 생성 한다 |
| DROP | 데이터베이스 객체를 삭제 한다 |
| ALTER | 기존에 존재하는 데이터베이스 객체를 다시 정의하는 역할을 한다 |
| RENAME | 기존에 존재하는 테이블명을 변경한다 |
| TRUNCATE | 테이블 또는 테이블의 지정된 파티션에서 모든 행을 제거한다 |
#데이터 조작 언어 - DML(Data Manipulation Language)
스키마(schema)객체의 데이터를 입력, 수정, 조회, 삭제한다. MySQL의 경우 오라클과는 다르게 스키마를 데이터베이스라고도 부른다. 스키마란, 데이터베이스 내의 구조와 제약 조건을 정의한 것 이라고 볼 수 있으며, 사용자에 따라 접근을 제한하는 등으 ㅣ관리가 가능한 집합을 의미한다. 하나의 스키마 안에 여러개의 테이블을 생성할 수 있으며, 각각의 스키마 별로 캐릭터셋을 구분하여 지정할 수도 있다.

※DB의 스키마 객체란?
DB의 데이터를 조회하기 위해서는 Select명령과 테이블과 칼럼 정보가 필요하다. 실제로는 어떠한 테이블, 칼럼이 있는지 알 수 없기에 데이터베이스 제품별로 스키마 객체로 조회가 가능한 형태로 제공하고 있다.
※데이터베이스 스키마
데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. 데이터베이스 관리 시스템이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다.
[스키마(schema)생성 예문]
CREATE SCHEMA test DEFAULT CHARACTER SET utf8;
CREATE DATABASE test DEFAULT CHARACTER SET utf8;
※데이터베이스 객체
데이터베이스에서 객체는 테이블, 인덱스, 프로시져, 트리거, 뷰, 시퀀스 등 데이터베이스 내부에서 생성되어 관리되는 모든 대상을 의미한다.
| SQL문 | 내 용 |
| INSERT | 데이터베이스 객체의 데이터를 입력한다 |
| DELETE | 데이터베이스의 객체를 삭제한다 |
| UPDATE | 기존에 존재하는 데이터베이스 객체의 데이터를 수정한다 |
| SELECT | 데이터베이스 객체로부터 데이터를 검색한다 |
#데이터 제어 언어 - DCL(Data Control Language)
데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어
※ 주의 : 직접 데이터베이스의 테이블에 영향을 미치기 때문에 DCL명령어를 입력하는 순간, 명령어에 해당하는 작업이 즉시 (AUTO COMMIT) 완료된다는 것을 기억해야 한다.
| SQL문 | 내 용 |
| GRANT | 데이터베이스 사용자 권한 설정(특정 사용자만 특정 작업을 할 수 있도록 지정 가능) |
| REVOKE | 데이터베이스 사용자 권한 회수 |
#데이터 제어 언어 - TCL(Transaction Control Language)
트랜잭션을 처리할 수 있다. 데이터 보안, 무결성, 회복, 병행 수행제어 등을 정의하는데 사용한다
| SQL문 | 내 용 |
| COMMIT | 트랜젝션의 작업 결과를 저장 반영 (트랜젝션 완료) |
| ROLLBACK | 데이터베이스를 마지막 COMMIT 된 시점의 상태로 복원 데이터에 대한 변경 내용은 논리적인 트랜잭션으로 그룹화 될 수 있다 |
| SAVEPOINT | 저장점(SAVEPOINT)을 정의하면 롤백(ROLLBACK)할 떄 트랜젝션에 포함된 전체 작업을 롤백하는 것이 아니라 현 시점에서 SAVEPOINT까지 트랜잭션의 일부만 롤백할 수 있다. 따라서 복잡한 대규모 트랜잭션에서 에러가 발생했을 때 SAVEPOINT까지의 트랜잭션만 롤백하고 실패한 부분에 대해서만 다시 실행할 수 있다.(일부 툴에서는 지원이 안될 수 있음) 복수의저장점을 정의할 수 있으며, 동일 이름으로 저장점을 정의했을 때는 나중에 정의한 저장점이 유효하다 |
| SET TRANSACTION | Transaction 지정 |
'MySQL' 카테고리의 다른 글
| [TIL 22.01.27] MySQL 내장함수(날짜처리, 변환) , 그룹함수 (0) | 2022.01.28 |
|---|---|
| [TIL 220120] 데이터 조작어(DML) SELECT문 및 연산자 (0) | 2022.01.20 |
| MySQL Workbench 단축키 11가지 정리 (0) | 2022.01.18 |
댓글