SQL - Database, User

Bean·2024년 2월 6일

Data

목록 보기
1/14

Database

Database?

  • 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
    💡 데이터가 모여있는 파일도 Database이다.
    ex) Exel, json, xml 등

DBMS(Database Management System)?

  • 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 조회,관리하는 소프트웨어이다.
    ex) MySQL, OracleDB 등

관계형데이터베이스(RDB : Relational Database)?

  • 서로간에 관계가 있는 데이터를 행과 열이 있는 테이블 형식으로 모아둔 데이터 저장공간
  • 관련된 데이터를 검색해서 필요에 따라 가공, 삭제
    ex) MySQL

비관계형데이터베이스

  • 데이터 간의 관계가 없고 어떤 데이터를 무한정 누적시켜서 저장
  • 요구사항이 변하는 데이터에 보다 유용하다

SQL(Structured Query Language)

  • 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어

SQL 구성

데이터 정의 언어(DDL : Data Definition Language)

  • create, alter, drop 등의 언어

  • 테이블이나 데이터베이스를 생성, 변경, 삭제

    -- 데이터베이스 생성
    create database myDB;
    -- ** 해당 데이터 베이스에서 사용할 기본 자료형 세팅은 다국어(utf8)이모지(mb4)지원 **
    create database myDB default character set utf8mb4;
    -- 데이터베이스 삭제
    drop database myDB;
    

데이터 조작 언어(DML : Data Manipulation Language)

  • insert, update, delete, select 등의 언어

  • 테이블이나 데이터베이스 같이 정의된 데이터 구조에 데이터를 넣거나 변경, 삭제, 조회

데이터 제어 언어(DCL : Data Control Language)

  • grant, revoke, commit, rollback 등의 언어
  • 계정 별 권한 부여, 삭제, 되돌리는 등을 수행

USER

USER 생성(CREATE)

  • 사용자 정보는 MySQL에서 관리하며 2가지 USER 타입이 있다
    --> 현재 PC에서만 접속 가능한 사용자
    --> 외부에서 접속 가능한 사용자
  • 같은 유형의 동일한 user name은 생성할 수 없으나, 다른 타입이라면 가능하다
-- 현재 pc에서만 접속 가능한 사용자 생성
create user 'usernameA'@'localhost' identified by 'password123'
-- 외부에서 접속 가능한 사용자 생성
create user 'usernameB'@'%' identified by 'password456'

USER 조회(SELECT)

  • 사용자 정보는 MySQL에서 관리하므로 mysql 데이터베이스로 이동 후 조회한다
-- mysql데이터베이스 선택
use mysql;
-- from user-> user라는 테이블에서-> host,user 정보를 select하겠다
select host,user from user;
-- 만약 안보인다면 새로고침
flush privileges;

USER 삭제(DROP)

  • 유저 유형에 맞춰 삭제해야한다
-- 현재 pc에서 접속 가능한 사용자 삭제
drop user 'usernameA'@'localhost';
-- 외부에서 접속 가능한 사용자 삭제
drop user 'usernameB'@'%';

사용자에게 특정 데이터베이스의 모든 권한 승인(GRANT)

grant all on myDB.* to 'username'@'localhost';

사용자에게 승인된 모든 권한 목록 확인(SHOW)

show grants for 'username'@'localhost';

사용자에게 승인된 특정 데이터베이스 권한 삭제(REVOKE)

revoke all on myDB.* from 'username'@'localhost';
profile
시리즈별로 봐주시길

0개의 댓글