반응형

Intro


안녕하세요, 이번에 MySQL을 공부할 일이 생겨서, 정리한 내용 공유할 겸 글을 써보겠습니다.

명령어는 검은색, 변수 이름은 파란색으로 표시했습니다.

DB 및 TABLE 조회


  1. CREATE DATABASE database-name; - DATABASE 생성
  2. SHOW DATABASES; - 생성되어 있는 DATABASE 조회
  3. SELECT DATABASE(); - 현재 사용중인 DATABASE 확인
  4. USE database-name; - 사용할 DATABASE 선택
  5. SHOW TABLES; - 현재 DATABASE의 TABLE확인
  6. DESC table-name; - 특정 TABLE의 scheme 확인

TABLE 관리


TABLE 생성

  1. CREATE TABLE IF NOT EXISTS table-name (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    str1 VARCHAR(20),  ## 20자리 가변 문자열 (메모리 효율 good, 속도 bad)
    str2 CHAR(1),         ## 1자리 고정 문자열 (메모리 효율 bad, 속도 good)
    int1 INT(5),            ## 5자리 정수
    date1 DATE);          ## yyyy-mm-dd
    A. 그 외 자료형: BOOL, DECIMAL, FLOAT, REAL, DOUBLE 등
    B. 정확한 소수점 저장을 위해서는 DECIMAL사용 (고정소수점)
  2. MySQL constraints 종류
    A. NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT
  3. 다른 테이블 값 복사
    CREATE TABLE IF NOT EXISTS new-table-name
    AS SELECT * FROM table-name;

TABLE 삭제

  1. DROP TABLE IF EXIST table-name;

TABLE 수정

  1. ALTER TABLE IF EXIST table-name [수정 내용];

Instance 추가

  1. 모든 변수에 대해서 추가
    INSERT INTO table-name VALUES (NULL, "apple", "melon",100, '2012-04-14');
  2. 특정 변수에 대해서만 추가 (나머지는 null됨)
    INSERT INTO table-name ('id','str1') VALUES (NULL, "apple");
  3. 여러 개 추가
    INSERT INTO table-name VALUES ("apple", "melon",100, '2012-04-14'), ("car", "cat",100, '2012-04-14'), ("ben", "chi",100, '2012-04-14');

Instance 삭제

  1. DELETE FROM customers   ##data를 삭제한 table 선택
    WHERE country = 'France' ##삭제할 data의 조건 명시, 안하면 모두 삭제
    ORDER BY creditLimit       ##삭제 대상 instance를 creditLimit으로 정렬
    LIMIT 5;                         ##creditLimit이 가장 낮은 5개의 instance 삭제

Instance 수정

A. UPDATE table-name
SET [수정 사항]
WHERE [수정 대상];

마무리


사실 이것만 보고는 감을 익히기 어려울 겁니다. 이를 참고해서 MySQL문제를 풀어보시는게 좋을 거 같습니다.

다음에는 본격적인, TABLE에서 정보를 추출하기 위한 Query에 대해서 정리하겠습니다!

References

w3school

반응형

+ Recent posts