TIL / DB 1주차(1) / DB / DCL / DDL

병아리코더 아카이브·2023년 8월 30일
0

DB

목록 보기
1/9
post-thumbnail

* mariaDB 와 mySQL 섞임 주의 *

DataBase

  • DataBase 는 데이터를 영구적으로 저장할 수 있는 저장소이다.
  • DataBase 를 이용하면 서로 다른 시스템 간에 데이터를 공유 할 수 있다.

DBMS(Data Base Management System)

  • DataBase 를 관리하는 시스템을 DBMS(Data Base Management System) 라고 한다.
  • DataBase Model 은 크게 Relational 과 No-SQL 로 구분된다.
  • mariaDB 는 관계형 데이터 베이스 (Relational Data Base) 이다.
  • 그밖에 MySQL, Oracle, Microsoft SQL Server, PostgreSQL 등이 관계형 데이터 베이스이다.

관계형 데이터베이스 (Relational Data Base)

  • 데이터들은 어떻게 정리하느냐에 따라 중복이 발생할 수 있다.
    (ex) 음식 분류( 코너 ) / 식당 이름 / 메뉴 를 입력할 메뉴가 여러개면 식당이름과 음식분류도 여러번 쓰는 중복이 생긴다.

  • 중복되는 정보들로 인해 생기는 비효율성과 오류를 없애고자 테이블끼리 적절하게 분리함으로서 중복을 제거한다.

  • 이때 각각의 데이터의 고유 번호 ( id ) 를 연결해줘서 관계 ( Relation ) 를 맺어준다.

  • 하지만 매번 테이블의 고유번호를 찾으면서 어떤 것들이 연결되어있는지 일일히 확인해줘야 하기 때문에 이러한 번거로움을 해결하기 위해 등장한 기능이 JOIN 이다.

  • 각각의 데이터의 고유 번호를 JOIN 을 통해 연결해주고 SELECT 를 통해 한 화면에서 보여주게 하면 한 곳에서 보는 것처럼 확인이 가능하다.

  • 이와 같이 데이터를 다양한 방식으로 필터링, 정렬, 가공해서 내가 필요로 하는 의미 있는 '정보' 들로 만들어내는 다양하고 강력한 기능들을 '관계형 데이터베이스' 가 제공한다.

  • 관계형 데이터베이스들은 공통적으로 SQL을 사용한다. 그래서 SQL Database 라고도 불린다.

MongoDB 와 같은 Non-Relational Database, NoSQL Database 도 존재한다.
(각각의 DBMS 마다 방식들이 천차만별이라 Non으로 묶음)

SQL (Structured Query Language)

  • 사용자가 정보들을 입력하고 조회하고 수정, 삭제하는 등 데이터를 관리할 수 있도록 제공하는 방식들 중 하나.

  • 표 형태의 데이터베이스에 정보를 넣고 빼고 조작하는데 사용되는 것이 '구조화 질의 언어' SQL 이다.

  • C,JAVA 같은 범용 프로그램이 언어보단 HTML같은 특정 사용처에서 쓰이는 도메인특화 언어이다.


DataBase 접속

  • mySQL 과 mariaDB 는 port : 3306 을 사용한다.
  • 데이터베이스는 여러 테이블을 저장하는 장소 개념으로 엑셀과 비슷하다.
  • 플러그의 + 를 통해서 새로운 데이터베이스를 연결할 수 있다.

이때 Username 과 password 지정이 가능하다
Test Connection 을 통해 연결을 하면 Connected 가 뜬다.
( 중간의 다운로드 창이 뜨면 실행해준다 )

DCL (Data Control Language)

  • Root 는 모든 권한을 가지고 있다.

  • Root 를 통해 사용자의 명령어 실행 및 접근 권한을 조정 할 수 있다.

  • 또 User 생성 시 접근 IP 대역을 설정 할 수 있다.

  • 이때 사용하는 언어가 DCL ( Data Control Language) 이다.

  • DCL 은 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어 즉, 데이터 제어어이다.

  • DCL 을 통해 Root 에서는 유저를 생성할 수 있다.

  • CREATE USER [유저이름]@[이용 가능한 IP] IDENTIFIED BY [비밀번호]

  • 권한 부여 및 회수가 가능하다
  • GRANT [권한] ON [데이터베이스.테이블] TO [사용자] - 권한 부여
  • REVOKE [권한] ON [데이터베이스.테이블] FROM [사용자] - 권한 회수

  • 비밀번호 변경이 가능하다.
  • SET PASSWORD FOR [사용자] = PASSWORD([비밀번호])
  • 유저를 삭제할 수 있다.
  • DROP USER [유저이름]

  • SHOW DATABASES 를 통해 데이터 베이스 목록을 볼 수 있다.

  • CREATE DATABASE [생성할 데이터베이스] 로 데이터베이스 생성이 가능하다.

  • USE [사용할 데이터베이스] 로 데이터베이스 사용이 가능하다.

  • 데이터 타입은 문자 타입, 숫자타입, boolean, 날짜타입으로 나뉜다

  • 문자타입
    고정형( CHAR(byte) ) - 공간이 남으면 공백으로 채워 검색이 어려움
    가변형 - 공간이 남으면 알아서 줄임 ( 입력 속도가 고정형에 비해 상대적으로 느림 ) VARCHAR(byte) , TEXT , LONGTEXT

  • 숫자타입
    INT , FLOAT , BIGINT , DOUBLE

  • 날짜타입
    DATE : 2023-08-30
    DATETIME : 2023-08-30 08:10:10
    TIMESTAMP : DATETIME 과 같지만 timezone 에 따라 시간이 변한다.

DDL(Data Definination Language)

  • 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들
  • 생성, 변경, 삭제, 이름변경 등 테이블을 만들고 속성을 지정하는 데이터 구조와 관련된 명령어들을 말한다.

  • 테이블을 생성 -
    CREATE TABLE [생성할 테이블명](
        [생성할 컬럼명] [데이터타입(사이즈)],
        ...
        [생성할 컬럼명] [데이터타입(사이즈)]
    );

  • DESC [확인할 테이블] - 확인하고 싶은 테이블의 구조를 알 수 있다.

  • SHOW tables - 생성한 테이블 목록을 볼 수 있다.

  • DROP TABLE [삭제할 테이블] - 테이블을 삭제한다

  • TRUNCATE TABLE [지우고 다시만들 테이블] - 테이블 안의 데이터를 다 지운다.

  • ALTER TABLE [테이블이름] RENAME COLUMN [변경전이름] TO [변경후이름] -
    컬럼의 이름을 변경한다. 변경시 기존 데이터는 날아간다.

  • ALTER TABLE [테이블이름] ADD ([컬럼명][데이터타입(사이즈)]) -
    새로운 컬럼을 추가한다.

  • ALTER TABLE [테이블이름]
       MODIFY COLUMN [컬럼명][변경할 데이터타입(사이즈)] -
    컬럼의 속성을 변경한다. 이 때 컬럼 안에 데이터가 있으면 안된다.

  • float(전체 자리수, 그 중에 소숫점 자리) 로 사용한다.
    이때 00.00 은 float(4,2) 로 표현이 가능하다.

  • ALTER TABLE [테이블이름] DROP COLUMN [컬럼명] -
    컬럼을 삭제한다.

출저 : https://www.youtube.com/watch?v=dgpBXNa9vJc

0개의 댓글

관련 채용 정보