[MySQL] #1

yenn·2021년 2월 21일
0

MySQL

목록 보기
1/3
post-thumbnail

데이터베이스

  • 데이터들의 집합
  • 여러 응용 시스템(프로그램)들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터 집합
  • 효율적으로 저장, 검색, 갱신 할 수 있도록 데이터 집합들끼리 연관시키고 조직화 되어야 함

특성

  • 실시간 접근성

    → 사용자 요구 즉시 처리

  • 계속적인 변화

    → 정확한 값을 유지하려고 삽입, 삭제, 수정 작업등을 이용해서 데이터 지속적 갱신

  • 동시 공유성

    → 사용자마다 서로 다른 목적으로 사용하므로 동시에 여러 사람이 동일한 데이터 접근 & 이용

  • 내용 참조

    → 저장한 데이터 레코드의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터 값에 따라 참조 가능해야 함

데이터베이스 관리 시스템, DBMS

데이터베이스를 관리하는 소프트웨어

  • 여러 응용 SW 또는 시스템이 동시에 데이터베이스에 접근하여 사용할 수 있게 함
  • Oracle, SQL Server, MySQL, DB2 등등

필수 기능

  • 정의 기능 : 데이터 베이스의 논리 물리적 구조를 정의
  • 조작 기능 : 데이터 검색, 삭제, 갱신, 삽입, 삭제 기능
  • 제어 기능 : 데이터베이스의 내용 정확성과 안정을 유지하도록 제어

데이터 베이스 관리 시스템 장/단점

장점

  • 데이터 중복이 최소화
  • 데이터 일관성 및 무결성 유지
  • 데이터 보안 보장

단점

  • 운영비가 비쌈
  • 백업 및 복구에 대한 관리가 복잡
  • 부분적 데이터 베이스 손실이 정체 시스템을 정지

SQL

  • SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조직을 할 수 있도록 고안된 언어
  • 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단
  • DML : 데이터를 조작하기 위해 사용

    → INSERT, UPDATE, DELETE, SELECT

  • DDL : 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용

    → CREATE, DROP, ALTER

  • DCL : 데이터를 제어하는 언어, 권한을 관리, 데이터의 보안, 무결성등을 정의

    → GRANT, REVOKE

✔ DATABASE 생성

create database DB이름;

✔ DATABASE 사용자 생성, 권한 부여

사용자 권한 부여

grant all privileges on DB이름.* to 계정이름@'%' identified by '암호'

  • .* 을 통해서 모든 사용자에게 권한을 줌
  • @'%' 는 어떤 클라이언트에서든 접근이 가능하다는 의미
  • @'localhost' 는 해당 컴퓨터에서만 접근이 가능하다는 의미

flush privileges; : DBMS에게 변경사항을 적용을 하라는 의미, 해당 명령을 반드시 실행해야 함 → 자주 사용하면 부하가 일어날 수 있음

✔ DBMS 존재 데이터베이스 확인

show databases;

✔ 사용중인 데이터베이스 전환하기

use DB이름;

테이블의 구성요소

  • 테이블 : RDBMS의 기본적 저장 구조, 한개 이상의 column과 0개 이상의 row로 구성
  • 열(column): 테이블 상에서 단일 종류 데이터를 나타냄, 특정 데이터 타입 및 크기를 가짐
  • 행(row) : column들의 값의 조합, 레코드라고 함, PK(기본키)에 의해 구분 → 중복 X
  • Field : 행&열의 교차점으로 Field는 데이터를 포함할 수 있고 없을때는 NULL 값을 가지고 있음

✔ table 확인

show tables;

✔ mysql에서 sql 파일 import 하는 법

  1. use DB이름;
  2. source 파일경로/파일이름.sql

✔ field 확인

desc TABLE이름;

profile
Junior BackendEngineer 😎

0개의 댓글