Database

Hojun Jeong·2022년 4월 5일
0

MySQL

목록 보기
1/4
post-thumbnail

Data : 가공안된 사실값

Imformation : 데이터를 체계적으로 가공해 의미 있는 실체로 만든 결과


Database : 데이터를 모아놓은 논리적 집합

DBMS : database management system(software)


RDBMS(Relational DBMS) : 중복데이터를 제거한 데이터의 효율적 저장 방식 제안

SQL(Structured Query Language) : RDBMS의 데이터를 관리하기 위한 특수한 목적을 갖는 언어


  • 데이터 중복 최소화

    • RDBMS는 2차원 형태의 테이블이라는 객체에 데이터 저장
    • 데이터 성격에 따라 분할해 데이터 저장
    • 중복 데이터 저장을 최소화(데이터 저장 비용 절감)
  • SQL을 이용한 가벼운 데이터처리

    • 데이터 CRUD를 SQL로 수행
    • SQL은 사람RDBMS간 데이터 처리를 위한 의사소통 언어
    • 직관적
  • 트랜잭션 처리

    • Transaction == 거래
    • 오류 발생 시 거래 자체가 없었던 것으로 취급
  • 데이터 무결성(integrity)

    • 데이터베이스에 저장된 데이터의 일관성, 정확성, 신뢰성을 보장
    • 데이터 품질 보장
    • 잘못된 형태의 데이터는 입력이 안됌 -> 무결성 보장

  • 종류

    • Oracle - 1979년부터 SQL을 사용한 최초의 상용 RDBMS
    • MySQL - 전형적인 RDBMS
    • SQL Server
    • PostgreSQL
    • DB2
    • MariaDB

MySQL의 구조

1) MySQL 서버

  • MySQL에 접속해 SQL 문장을 실행하면 MySQL이 결과를 보여줌

2) User

  • MySQL을 사용하기 위한 계정
  • MySQL 설치 시 관리자 계정인 root 계정 자동 생성
  • root 계정으로 접속해서 다른 사용자 계정을 생성해 사용

3) 데이터베이스와 스키마

  • MySQL에서 스키마와 데이터베이스는 같은 개념
  • 테이블을 포함한 다양한 데이터베이스 객체를 담아 놓는 논리적인 저장 공간

4) 데이터베이스

  • 데이터베이스 안에 생성해 사용할 수 있는 다양한 객체
  • 테이블 외에도 뷰, 인덱스 등이 있음

SQL(Structured Query Language)

  • 구조적 질의 언어, 표준이 존재하므로 SQL을 알면 다양한 RDBMS에서 사용가능
    • 데이터 관리 : CRUD
    • 집합적 언어 : 어떤 조건에 맞는 데이터들을 한번에 모두 처리
    • ANSI(American National Standards Institude) 표준, ISO(International Standards Organization) 표준
    • SQL 구문이 RDBMS라고 모두 동일한건 아님
    • 종류
      • DDL : CREATE, ALTER, DROP, TRUNCATE TABLE, RENAME TABLE
      • DML : SELECT, INSERT, UPDATE, DELETE
      • TCL : COMMIT, ROLLBACK, STARTTRANSACTION, SAVEPOINT, SET autocommit
      • DCL : GRANT, REVOKE

Table


정의

RDBMS에서 데이터를 저장하는 2차원 형태의 객체
데이터를 가장 파악하기 쉬운 구조인 표
다양한 속성들을 가진 데이터의 집합

테이블의 구조

  • 칼럼:데이터의 속성을 나타냄
    • 테이블 생성은 로우가 아닌 칼럼에 대한 정의
    • 칼럼 정의 시 필요사항 : 칼럼명, 칼럼의 데이터 타입
    • datatype
      • 1) 문자형 - CHAR(n) : 고정길이 문자형, VARCHAR(n):가변길이 문자형, TEXT, BLOB, ENUM
      • 2) 숫자형 - UNSIGNED:사용할 경우 양수만 입력 가능, ZEROFILL,INT, DOUBLE
      • 3) 날짜형 - DATE, DATETIME, TIME, YEAR, TIMESTAMP
  • 로우 : 테이블의 전체 칼럼이 하나의 로우를 구성
  • 로우는 개체의 속성, 정보를 나타냄 위에서 로우는 한 도시의 정보를 나타냄
  • 테이블의 특성
    • 중복 데이터 저장 최소화
      • 다른 테이블에서 해당 칼럼을 생성하면 되도록 겹치지 않게, 테이블의 목적이 잘보이게 저장하는 것이 중요
        ex) city 테이블속 countryname 칼럼은 불필요, 필요시 country 테이블에서 가져오면됌
      • 기본키(primary key) : 테이블에서 로우 1개를 유일하게 식별할 수 있는 값이 들어있는 칼럼
      • 추가 할 때
          1) 필드이름 필드타입 primary key; 
           2) 필드이름 필드타입
              constraint primary key[ ] 
           - alter

데이터베이스 다루기

데이터베이스(스키마) : 테이블 등의 데이터베이스를 담은 공간

문장이 끝날때 항상 ;

데이터베이스 생성

create database|shcema if not exists db명;

데이터베이스 삭제

drop {databse|shcema} [if not exists] db명;

데이터베이스 진입

use db명;

데이터 베이스 정렬
1)order by 절

  select *from table where 조건 order by 칼럼1[ASC|DESC], 칼럼2[ASC|DESC]
  /*주의 칼럼1 정렬 후 칼럼2 정렬*/
  select 칼럼1, 칼럼2, 칼럼3 from table where 조건 order by 1[ASC|DESC], 2[ASC|DESC]
  /*칼럼이 명시되면 이렇게 인덱싱처럼 가능*/
 
  • ASC : 오름차순 정렬, 생략 가능
  • DESC : 내림차순 정렬, 생략 불가 2)조회 갯수 정렬
    limit num; -> num개만큼 만 나열

'*' -> 모든 칼럼

profile
Student , Junior Developer

0개의 댓글