데이터 베이스란 ?
데이터베이스는 한 마디로 '데이터의 집합'이라고 할 수 있다.
- 회원가입한 회원들의 정보, 게시판의 게시글 정보 모두 기록된다.
DBMS
DBMS(Database Management System)는 데이터베이스를 관리하고 운영하는 소프트웨어이다.예를 들어 여러 명의 예금 계좌 정보를 모아 놓은 것을 데이터베이스라고 했을 때 예금 계좌 주인, 은행 담당 직원, 인터넷 뱅킹, ATM 기기 등 모두 접근이 가능한 이유는 DBMS가 있기 때문이다.
DBMS의 종류
대표적으로 MySQL, 오라클, SQL Server, MariaDB등이 있습니다.
DMBS | 작동 운영체제 |
MySQL | Unix , Linux , Windows ,Mac |
MariaDB | Unix , Linux , Windows |
PostgreSQL | Unix , Linux , Windows ,Mac |
Oracle | Unix , Linux , Windows |
SQL Server | Windows |
DB2 | Unix , Linux , Windows |
Access | Windows |
SQLite | Android,ios |
DBMS 분류
DBMS의 유형은 계층형, 망형, 관계형, 객체지향형, 객체관계형 등으로 분류됩니다.
현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많이 사용되며, MySQL도 관계형 DBMS에 포함된다.
계층형 DBMS
계층형 DBMS의 각 계층은 tree형태이며 부모, 자식 형태를 갖는 구조이다.
테이블 구조들 사이에 명확한 링크가 있기 때문에 사용자가 데이터 추출을 빨리 할 수 있다는 장점이 있지만
복잡한 관계를 지원할 수 없으며, 중복 데이터로 인한 문제가 종종 발생한다.
망형 DBMS
망형 DBMS는 계층형 DBMS의 문제점을 개선하기 위하여 등장했다. 하지만 망형 DBMS를 활용하려면
프로그래머가 모든 구조를 이해해야만 프로그램이 작성 가능하다는 단점이 있기에 잘 사용하지 않는 형태이다.
관계형 DBMS
관계형 DBMS는 줄여서 RDBMS라고 부른다. MySQL뿐만 아니라, 대부분의 DBMS가 RDBMS 형태로 사용된다.
RDBMS는 테이블로 이루어져 있으며, 테이블은 열과 행으로 구성되어 있다.
SQL
SQL - 구조적 질의 언어, RDBMS에서 데이터를 처리하기 위해 설계된 언어이다.
데이터 언어 : 데이터를 다루는 언어이며 DDL, DML, DCL로 나눠진다.
DDL
- DDL : 테이블이나 관계의 구조를 생성하는데 사용
- CREATE : 새로운 데이터베이스 및 테이블을 생성
CREATE DATABASE 데이터베이스이름;
CREATE TABLE 테이블이름
(
필드이름1 필드타입1,
필드이름2 필드타입2,
...
);
- ALTER : 데이터 베이스와 테이블의 내용을 수정
ALTER TABLE 테이블이름 ADD 필드이름 필드타입;
ALTER TABLE 테이블이름 DROP 필드이름;
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입;
- DROP : 데이터베이스와 테이블을 삭제할 수 있다.
DROP DATABASE 데이터베이스이름;
DROP TABLE 테이블이름;
- TRUNCATE : 데이터베이스와 테이블을 삭제할 수 있으며, 최초 테이블이 만들어졌던 상태
즉, 컬럼값만 남긴다.
TRUNCATE DATABASE 데이터베이스이름;
TRUNCATE TABLE 테이블이름;
DCL
- DCL : 데이터의 사용 권한을 관리하는데 사용
- GRANT : 사용자 또는 ROLE에 대해 권한을 부여할 수 있다.
GRANT [객체권한명] (컬럼)
ON [객체명]
TO { 유저명 | 롤명 | PUBLC} [WITH GRANT OPTION];
//ex
GRANT SELECT ,INSERT
ON mp
TO scott WITH GRANT OPTION;
- REVOKE : 사용자 또는 ROLE에 부여한 권한을 회수할 수 있다.
REVOKE { 권한명 [, 권한명...] ALL}
ON 객체명
FROM {유저명 [, 유저명...] | 롤명(ROLE) | PUBLIC}
[CASCADE CONSTRAINTS];
//ex
REVOKE SELECT , INSERT
ON emp
FROM scott
[CASCADE CONSTRAINTS];
DML
- DML : 테이블에서 데이터를 검색, 추가, 수정, 삭제 할 수 있다.
- INSERT : 테이블에 새로운 row를 추가할 수 있다.
INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...) VALUES(데이터값1, 데이터값2, 데이터값3, ...);
INSERT INTO 테이블이름 VALUES(데이터값1, 데이터값2, 데이터값3, ...);
- SELECT : 테이블의 row를 선택할 수 있다.
SELECT 필드이름 FROM 테이블이름 [WHERE 조건];
- UPDATE : 테이블의 row의 내용을 수정할 수 있다.
UPDATE 테이블이름 SET 필드이름1=데이터값1, 필드이름2=데이터값2, ... WHERE 필드이름=데이터값;
- DELETE : 테이블의 row를 삭제할 수 있다.
DELETE FROM 테이블이름 WHERE 필드이름=데이터값;
'TIL' 카테고리의 다른 글
Lombok (0) | 2024.09.27 |
---|---|
Request와 Response (0) | 2024.09.27 |
SRP - 단일 책임 원칙 (2) | 2024.09.25 |
[TIL] 9월 19일 (2) | 2024.09.19 |
[TIL] 9월 13일 (1) | 2024.09.13 |