데이터분석 study/SQL

TIL_24.07.29_데이터베이스와 MySQL

justdata 2024. 7. 29. 20:15

▶데이터베이스 서비스와 개념 설명

    ● 왜 MySQL 부터 배울까?

         - 관계형 데이터 베이스가 1970년에 개발된 이후로 기존의 레거시 기업들은

            Oracle 데이터 베이스를 많이 사용하고 있다. 여전히 대기업들은 많이 

            사용함(금융회사 등)

 

    ● 최근 RDB 현황

             - 이를 이용한 오픈소스를 기반으로 한 RDB가 등장

               (MySQL, Postgresql, SQLite) 하면서 대체되고 있는 상황

 

             - 특히, 1995년 개발된 MySQL은 개인프로젝트에서는 무료로, 현재 점유율이

                46.83%로 대중성이 높아 많이 사용되며, Trouble shooting이 유리하다. 

                Oracle 회사가 2008년 인수.

 

              - 관대한 SQL 언어를 가지고 있다.

                (실행순서 뒤여도 select 절의 alias 가져다 쓰기 가능),

                반면 Postgresql은 불가능

              

▶ 클라우드 데이터베이스 종류

      ●  클라우드 서비스가 필요한 이유

            - 같은 데이터베이스를 보는 것은 매우 중요

            - 서로 각자의 데이터 베이스를 보고 만들다 보면 미스 커뮤니케이션

              확률 up

            - 특히 프로젝트 진행시 클라우드 데이터베이스 사용하는 것 권장

              (ex. bigquery)

 

▶MySQL 기본 구조

    ● MySQL의 기본 명령어

 

명령어 설명 구분
SELECT,
INSERT, UPDATE, DELETE
데이터 조회, 데이터 삽입, 변경, 삭제 DML
CREATE, DROP, ALTER 테이블 삭제, 수정 DDL
GRANT, REVOKE 테이블 접근권한 관리 DCL
SHOW, DESC, DESCRIBE, EXPLAIN 테이블 조회, 테이블 설명 정보 조회 명령어
USE 데이터베이스 선택 제어 명령어

 

    ● 데이터 조작(DML)

        - 데이터분석가가 가장 많이 쓰는 SELECT 구문 포함

        - 데이터 읽기, 추가, 수정, 삭제 권한

 

    ● 데이터 정의 (DDL)

       - 테이블 생성, 삭제 하는 등 (CREATE....)

     

    ● 데이터 관리(DCL)

       - 데이터 권한 자체를 부여하는 권한관리

 

    ● 시스템 관리언어

        - 데이터베이스 조회, 테이블 속성 조회 ... 등

 

MySQL 시스템 명령어 보기

  1. CREATE DATABASE {데이터베이스이름} : 데이터베이스 생성

 

  2. USE {데이터베이스이름} : 특정한 데이터베이스 선택하여 보기 

 

  3. SHOW 명령어

       - SHOW DATABASE;  : 데이터베이스 보기

       - SHOW TABLES;  : 현재 선택한 데이터베이스의 테이블보기

       - SHOW COLUMNS FROM {TABLE NAME} : 특정한 테이블의 컬럼 정보 보기

       - SELECT * FROM information_schema.TABLES;

            - information_schema : 데이터베이스 메타데이터 제공, 테이블, 컬럼, 

              인덱스, 사용자 권한 등 관리

                * 인덱스는 데이터 베이스의 즐겨찾기이다.

 

       - SELECT * FROM mysql.user;

          - MySQL서버의 기본 구성 및 사용자 권한 정보

       - SELECT * FROM performance_schema.events_waits_summary_global

          _by_event_name;

 

        - SELECT * FROM sys.user_summary;

           - sys : performance_schema와 함께 작동하는 뷰와 성능, 운영상태 모니터링

 

 4. DESC {테이블명} : 테이블 설명 보기