Baisc Queries

  • Command 취소 - 긴 쿼리를 작성하다가 중간에 취소해야하는 경우\c를 붙혀주면 된다.

Data Migration

📝텍스트(.txt) 파일을 읽어 테이블에 인서트하는 LOAD DATA INFILE 구문이 있다. 기본 INSERT 구문을 쓰는 것보다 20배 정도 빠르다.

MYSQL > load data local infile '/home/webmaster/pet.txt' into table pet;

✔️ 한 레코드의 값들은 탭(tab)으로 구분되어야 한다. ✔️ 순서는 테이블을 생성할 때의 column순서대로 되어있어야 한다.

ORDER BY

❗️ order by의 기본 정렬 옵션은 ASC (오름차순)이다.

About Syntax

  • % - 여러개의 문자열
  • _ - 1개의 문자

count(Attribute)

❗️ AttributeNull값을 가진 record를 제외하고 카운팅한다.

restore dump

# mysql -u root -p < employees.sql

hr 계정 생성

  • 로컬 접근 계정

    create user 'hr'@'localhost' identified by 'hr';
    
    
      🔑 권한 부여
      ```shell
      grant all privileges on employees.* to 'hr'@'localhost';
    
    
    
  • 192.168.1.56에서 접근하는 hr 계정

    create user 'hr'@'192.168.1.56' identified by 'hr';
    
    
      🔑 권한 부여
      ```shell
      grant all privileges on employees.* to 'hr'@'localhost';
    
    
    
  • 🌀 Grant 테이블 reload

    flush privileges
    
    
    
    

MySQL 함수

숫자형 함수

now()

select now(), sleep(2), now();
now() sleep(2) now()
2019-05-03 14:22:16 0 2019-05-03 14:22:16

sysdate()

select sysdate(), sleep(2), sysdate(2);
sysdate() sleep(2) sysdate()
2019-05-03 14:23:03 0 2019-05-03 14:23:05.48

DATE_FORMAT(date,format)

select date_format(now(), '%Y %c월 %d일 %h시 %i분 %s초')
date_format(now(), ‘%Y %c월 %d일 %h시 %i분 %s초’)
2019 5월 03일 02시 29분 25초

PERIOD_DIFF()

YYMM이나 YYYMM으로 표기된 두 날짜 사이의 Month를 반환

SELECT concat(first_name, ' ', last_name) AS name,
PERIOD_DIFF( DATE_FORMAT(CURDATE(), '%Y%m'),
	     DATE_FORMAT(hire_date, '%Y%m') )
FROM employees

DATE_ADD

select first_name, hiredate,
       date_add(hiredate, interval 5 month);
first_name hiredate date_add(hiredate, interval 5 month)
Georgi 1986-06-26 1986-11-26
Bezalel 1985-11-21 1986-04-21
Parto 1986-08-28 1987-01-28
ㅡㅡㅡ ㅡㅡㅡ ㅡㅡㅡ

CAST(Expression AS type) / CONVERT(Expression, type)

type을 변경 하는데 유용하게 쓰이는 함수