DBMS

김상우·2022년 8월 5일
0

CentOS

목록 보기
8/11
post-thumbnail

DBMS(DataBase Management System)는 여러번의 포스트를 통해 개념과 Query문 등을 다룬적이 있다.
이번엔 그동안 사용했던 CentOS에 MariaDB 서버를 설치해보기 위해 기본적인 개념과 Query문을 다시 한 번 작성해보았다.

DBMS

  • 관련 용어
용어정의
데이터(Data)자료
테이블(Table)데이터를 표 형식으로 표현한 것
데이터베이스(Database)테이블을 저장하는 공간 또는 테이블의 집합
DBMS(DataBase Management System)데이터베이스를 관리하는 소프트웨어
레코드(Record)또는 로우(Row)테이블의 행
필드(Field) 또는 컬럼(Column)테이블의 열
데이터 타입(Data Type)필드에 입력할 값의 타입(정수, 문자, 날짜 등)
필드 이름각 필드의 이름
주 키 필드(Primary Key Field)유일한 값을 가지며, 비어있지 않은 필드
외래 키 필드(Foriegn Key Field)다른 테이블의 주 키와 대응되는 필드
RDBMS(Relational DBMS)관계형 DBMS
SQL(Structured Query Language)데이터베이스에서 정보를 얻거나 생성 및 갱신을 위한 표준 언어

SQL

  • 데이터베이스와 관련된 SQL

    • 데이터베이스 이름 조회
    SHOW DATABASES;
    • 데이터베이스 생성
    CREATE DATABASE [데이터베이스 이름]
    
    # 예시
    CREATE DATABASE login_db;
    • 사용할 데이터베이스 지정
    USE [데이터베이스 이름];
    
    # 예시
    USE login_db;
    • 데이터베이스 삭제
    DROP DATABASE [데이터베이스 이름];
    
    # 예시
    DROP DATABASE login_db;
  • 테이블 운영과 관련된 SQL

    • 테이블 이름 조회
    SHOW TABLES;
    • 테이블 생성
    CREATE TABLE [테이블 이름](필드이름1 필드타입1, 필드이름2 필드타입2, ...);
    
    # 예시
    CREATE TABLE student (name VARCHAR(10), grade INT, class INT, age INT);
    • 테이블 구조 조회
    EXPLAIN [테이블 이름]; 또는 DESC [테이블 이름];
    
    # 예시1
    EXPLAIN student;
    # 예시2
    DESC student;
    • 테이블 수정
    ALTER TABLE [옵션];
    
    # 예시1 - name 필드 데이터 타입 변경
    ALTER TABLE student MODIFY name CHAR(20);
    # 예시2 - name 필드 이름 변경
    ALTER TABLE student CHANGE name fullname CHAR(10);
    # 예시3 - name 필드 뒤에 필드 추가
    ALTER TABLE student ADD phone VARCHAR(20) AFTER name;
    # 예시4 - name 필드 삭제
    ALTER TABLE student DROP name;
    • 테이블 삭제
    DROP TABLE [테이블 이름];
    
    # 예시
    DROP TABLE student;
  • 레코드와 관련된 SQL

    • 레코드 입력
    INSERT INTO [테이블 이름] VALUES (1,2, ...);
    
    # 예시
    INSERT INTO student VALUES ('kimsangwoo', 3, 1);
    • 레코드 수정
    UPDATE [테이블 이름] SET [필드 이름1=수정 값1], [필드 이름2=수정 값2, ... WHERE [조건];
    
    # 예시
    UPDATE student SET class=2 WHERE fullname='kimsangwoo';
    • 레코드 삭제
    DELETE FROM [테이블 이름] WHERE [조건];
    
    # 예시
    DELETE FROM student WHERE fullname='kimsangwoo';
  • 테이블 조회 (SELECT)

    • 테이블 조회
    SELECT [필드 이름1], [필드 이름2], ... FROM [테이블 이름] WHERE [조건];
    
    # 예시1 - student 테이블에서 모든 레코드의 모든 필드 조회
    SELECT * FROM student;
    # 예시2 - student 테이블의 모든 name 필드 조회
    SELECT name FROM student;
    # 예시3 - student 테이블의 fullname 필드값이 'kimsangwoo'인 레코드의 grade, class 필드 값 조회
    SELECT grade, class FROM student WHERE fullname='kimsangwoo';
    # 예시4 - student 테이블에서 grade 필드 값이 2 이상인 레코드의 fullname 필드 조회
    SELECT fullname FROM student WHERE grade >= 2;

MariaDB의 데이터 형식

  • VARCHAR(n)
    • 최대 n개의 크기를 갖는 가변 길이 문자열
  • CHAR(n)
    • n개의 문자가 저장되는 고정 길이 문자열
  • INT
    • 정수형 숫자
  • FLOAT
    • 실수형 숫자
  • DATE
    • 날짜 저장
  • TIME
    • 시간 저장

VARCHAR, CHAR의 차이점

  • VARCHAR(n)
    • VARCHAR는 character varying의 약자로 가변하는 문자열을 입력해야 하는 경우 사용한다.
    • 예를들어 이름을 입력해야한다면, 우리나라만 봐도 이름의 길이가 다른 경우가 있다. (2글자, 3글자, 4글자 등...)
      이 때 이름의 길이 자체가 다르므로 입력 한계를 수치를 n에 넣고 2글자인 경우 2글자만큼의 데이터만 저장할 수 있도록 하는 것이다.
  • CHAR
    • 이름처럼 데이터의 길이가 천차만별일 때가 아닌 전화번호, 주민등록번호, 학번, 군번 등 데이터 자체의 길이가 정해져 있는 경우 사용할 수 있다.
    • CHAR가 아닌 VARCHAR를 사용해도 좋지만 CHAR 타입은 입력 및 저장 길이가 고정되어 있으므로 속도면에서 조금 유리한 측면이 있다.
profile
아침엔 운동하고 밤엔 잠을 잔다.

0개의 댓글