TIL

Database - DBMS, SQL

haseung22 2024. 9. 26. 21:44

데이터 베이스란 ?

데이터베이스는 한 마디로 '데이터의 집합'이라고 할 수 있다.  

    -  회원가입한 회원들의 정보, 게시판의 게시글 정보 모두 기록된다.

 

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 필드이름=데이터값;