MySQL 실습
MySQL Workbench 사용 (실습환경)
MySQL Workbench 다운로드



- +버튼으로 DB연결하여 리스트를 저장할 수 있습니다.

- MySQL 벤치는 쿼리 질의 시 기본적으로 1000개만 조회, 변경하려면 Limit to 값 변경

오른쪽 창분할 아이콘 클릭하여 넓게 사용 가능

SQL문법 입력시 자동완성나오는게 대문자로 제시하게끔 설정
SELECT문 살펴보기
SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
WHERE 선택조건
GROUP BY 필드이름1, 필드이름2, ...
ORDER BY 필드이름 [ASC|DESC]
LIMIT N;
select count(0) from TABLE;
select count(1) from TABLE;
select count(NULL) from TABLE;
select count(value) from TABLE;
select count(DISTINCT value) from TABLE;
- count(*)와 count(1)의 차이에 대해서 알아보자!
WHERE 살펴보기
- WHERE를 사용해 조건을 만족하는 레코드 조회
- IN
- WHERE 필드명 in (3,4)
- NOT IN
- LIKE
- LIKE: 대소문자 구별 없이 문자열 매칭 기능 제공
- WHERE 필드명 LIKE 'G%' -> 'G*'
- WHERE 필드명 LIKE '%G%' -> '*G*'
- NOT LIKE
- BETWEEN
STRING Functions
- LEFT(STR, n)
- REPLACE(str, exp1, exp2)
- UPPER(str)
- LOWER(str)
- LENGTH(str)
- LPAD, RPAD
- 왼쪽이나 오른쪽 길이가 짧으면 패딩해주는 기능, RPAD(field, 15, '-')를 하면 15글자로 맞추는데 추가시 - 로 채움
- SUBSTRING
- LEFT()는 왼쪽에서부터 찾아서 바꾸는데, SUBSTRING은 중간, 왼쪽, 오른쪽 등 직접 인덱스 지정하여 가능
- CONCAT
ORDER BY
- 디폴트 순서는 오름차순(작은값부터 올라가는 순서)
- 내림차순(Descending)을 원하면 "DESC"
- 여러 개의 필드를 사용해서 정렬하려면
- ORDER BY 1(첫번째 필드) DESC, 2(2번째 필드), 3(3번째 필드)
- 첫번째 필드 정렬 후 2번째 ~ 3번째로 정렬 후 조회
- NULL값은 정렬하면 순서는?
- 오름차순일땐 처음에
- 내림차순일땐 마지막에, 즉 가장 작은 정렬 순서를 가짐.
타입 변환
- DATE Conversion
- NOW
- 타임존 관련 변환
- CONVERT_TZ(now(), 'GMT', 'Asia/Seoul')
- DATE, WEEK, MONTH,YEAR, HOUR, MINUTE, SECOND, QUARTER(구분기호 다음에 나오는 값), MONTHNAME
- DATEDIFF(날짜 차이 일 수)
- DATE_ADD(날짜에 며칠을 더하면 며칠 나오는지)
- ...
- STR_TO_DATE <--> DATE_FORMAT
- SELECT STR_TO_DATE('01,5,2013', "%d, %m, %'Y'); -- 2013-05-01
- cast 함수(cast와 convert는 as빠지고 , 콤마가 들어가는 차이)
- cast(category as float) 값이나 필드
- convert(expression, float)
- SELECT cast('100.0' as float)
- SELECT convert('100.0', float)
GROUP BY 살펴보기
- 테이블의 레코드를 그룹핑하여 그룹별로 다양한 정보 계산
- 그룹핑 할 필드 결정(하나 이상)
- 그룹별로 계산할 내용을 결정
- COUNT, SUM, AVG, MIN, MAX. GROUP_CONCAT...