1. MySQL 다운로드
https://print-blue.tistory.com/207
MySQL 설치 방법
print-blue.tistory.com
2. MySQL 기초 문법
데이터베이스 선택
use 데이터베이스명;
데이터베이스 목록 확인
show databases;
테이블 구조 확인
desc 테이블명;
테이블 조회
select * from 테이블명;
* : 모든 것
Limit : 결과행 제한하기
- 문법 1 : limit 몇 개;
- 문법 2 : limit offset, 몇 개;
select * from employees; # 전체 조회할 때
select * from employees limit 3; # 시작부터 3개까지 조회하고 싶을 때
select * from employees limit 4, 3; # 시작이 되는 위치에서부터 4만큼 떨어진 것
MySQL 워크벤치에서는 따로 설정 하지 않는 한 기본값으로 limit 이 1,000개로 제한 되어 있다
Distinct : 중복 제거
주의점 : 한 컬럼이 아닌 한 row 의 모든 데이터가 겹쳐야 중복이라고 볼 수 있음
select dept_no, emp_no from dept_manager; # 24 rows
select distinct dept_no, emp_no from dept_manager; # 24 rows
order by : 정렬
# database/p240605/select-order-by.sql
쓰는 이유 : 데이터를 출력할 때 개발자가 보기 편하게 하기 위해서
order by 컬럼명 asc, 컬럼명 desc
[ SELECT ]
select 컬럼명
from 테이블명
where 조건
order by 컬럼명 asc, 컬럼명 desc;
[문제 1] 연봉을 오름차순, 업무 시작일을 내림차순으로 하여 사번, 연봉, 업무 시작일 조회
select emp_no, salary, from_date
from salaries
order by salary asc, from_date desc;
[문제 2] 직책을 오름차순, 업무 시작일을 내림차순으로 하여 사번, 연봉, 업무 시작일 조회
select emp_no, title, from_date
from titles
order by title asc, from_date desc;
null 을 뒤로 보내고 싶을 때
기본 동작은 정렬 후 null 이 앞으로 오기 때문에
null 을 뒤로 보내고 싶을 때 is null asc 하면 된다
order by 컬럼명, is null asc;
3. MySQL 사용법
파일 저장될 때 확장자는 .sql
MySQL csv 파일이란 ?
https://print-blue.tistory.com/206
[MySQL] csv 파일이란 ?
print-blue.tistory.com
DBMS의 핵심 엔진, 옵티마이저란 ?
https://print-blue.tistory.com/209
옵티마이저
print-blue.tistory.com
특정 DB 다운 받고, MySQL 워크벤치에서 실행할 때
DB 예제 다운로드
https://github.com/datacharmer/test_db
GitHub - datacharmer/test_db: A sample MySQL database with an integrated test suite, used to test your applications and database
A sample MySQL database with an integrated test suite, used to test your applications and database servers - datacharmer/test_db
github.com
D:\fullstack\database\test_db>mysql -u root -p < employees.sql
4. SQL
SQL 은 크게 정의어/조작어/제어어 3개로 나뉘어 진다.
DDL / DML / DCL / TCL
명령어 종류 | 명령어 | 설명 |
DDL 데이터 정의어 (Data Definition Language) |
create : 생성 alter : 변경 drop : 삭제 truncate : 모든 row 삭제 |
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어 생성, 변경, 삭제 등 이름을 바꾸는 데이터 구조와 관련된 명령 |
DML 데이터 조작어 (Data Manipulation Language) |
select : 조회 | 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어 |
update : 수정 delete : 삭제 insert : 추가 |
데이터베이스의 테이블에 들어있는 데이터에 변형하는 명령어 | |
DCL 데이터 제어어 (Data Control Language) |
grant : 부여 revoke : 회수 |
데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어 |
TCL 트랜잭션 제어어 (Transaction Control Language) |
commit : 완료 rollback : 취소/복구 |
논리적인 작업의ㅏ 단위를 묶어 데이터 조작어(DML)에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어 |
SQL 의 언어적 특성
- 구조화된 질의 언어, 질의어
- 데이터베이스에서 데이터를 추출, 조작하는데 데이터 처리 언어
- 대소문자 구분 안함
- 명령어는 반드시 세미콜론(;) 으로 끝나야 함
- 고유의 값은 따옴표(' ')로 감싸줘야 함
- 객체를 나타낼 때는 백틱(` `)으로 감싸줘야 함
- 주석은 일종의 도움말로, 주석 처리된 문장은 프로그램에서 동작되지 않음
- 쿼리를 작성하고 서버에 보낸다라는 말을 쿼리 날린다 라고 많이 표현
쿼리 튜닝이란 ?
데이터베이스에서 쿼리의 성능을 최적화하는 과정으로 시스템의 구성, 인덱스 사용, 쿼리의 구조 등을 파악하고
최적화하여 실행 소요 시간과 리소스를 최소화하고 쿼리의 처리 속도를 빠르게 만들어 주는 작업이다 !
쉽게 말해 쿼리의 속도를 최대한 빠르게 해주는 작업 ~!
쿼리 튜닝하는 여러가지 방법
- 인덱스 사용
- 적절한 JOIN 사용
- 서브쿼리 최소화
- 쿼리 실행 계확 확인하기
- 쿼리 성능 모니터링
- 쿼리 최적화
5. SQL 연산자, 데이터형
https://print-blue.tistory.com/228
[SQL] 연산자 종류와 문법 정리, 데이터형
print-blue.tistory.com
https://print-blue.tistory.com/229
[SQL] 데이터형
print-blue.tistory.com
6. 그룹/집계 함수
https://print-blue.tistory.com/232
[SQL] 그룹 함수 집계 함수 문법 정리 및 예제
# fullstack/database/p240610/select_group_function.sql[그룹 함수] 집계 함수count(컬럼명) : 로우 개수 - null 제외count(*) : 로우 개수 - null 포함sum(컬럼명) : 합avg(컬럼명) : 평균max(컬럼명) : 최대값min(컬럼명) :
print-blue.tistory.com
7. JOIN
https://print-blue.tistory.com/230
[SQL] JOIN 문법 정리 및 예제
# fullstack/database/p240610/select_join.sqlselect * from dept_manager;select * from departments;수평 조인 from 절에 테이블명을 , 로 구분하여 여러 개- 다대다 조인# 다대다 조인 : M x N# 있는 row 를 다 연결select * from
print-blue.tistory.com
8. 서브쿼리
https://print-blue.tistory.com/231
[SQL] SubQuery : 서브 쿼리 문법 정리 및 예제
# fullstack/database/p240611/select_subquery.sql 서브 쿼리는 사용 위치에 따라 중첩 서브 쿼리, 스칼라 서브 쿼리, 인라인 뷰로 구분됨[서브 쿼리] subquery* 서브 쿼리 : 쿼리문 내 쿼리문select 절, from 절, wher
print-blue.tistory.com
9. DDL, DML, DCL, TCL 개념과 종류
DML : 데이터 조작어
https://print-blue.tistory.com/224
[SQL] DML (조작어) 문법 정리 및 예제
print-blue.tistory.com
DDL : 데이터 정의어
https://print-blue.tistory.com/225
[SQL] DDL (정의어) 문법 정리 및 예제
들어가기 전 !📌 DDL (조작어) 테이블의 구조나 관계를 생성하는 데 사용 ! create(생성), drop(삭제), alter(변경) 등이 있다.1. create(생성)# fullstack/database/p240611/create.sql[문법] create database DB명; 한
print-blue.tistory.com
DCL : 데이터 제어어
https://print-blue.tistory.com/226
[SQL] DCL (제어어) 문법 정리 및 예제
print-blue.tistory.com
TCL : 트랜잭션 제어어
https://print-blue.tistory.com/227
[SQL] TCL (트랜잭션 제어어) 문법 정리 및 예제
print-blue.tistory.com
공부하기 !!!
스키마와 오라클 아키텍처

나중에 알고리즘에 대해 공부를 한다면
정렬 광범위에 대한 내용이 나옴
정렬은 왜 한다 !? 개발자가 보기 편하기 위해서 -> 부가적인 작업
DBMS 에서는 데이터양이 많을수록 하나하나 비교하고 정렬하기 때문에 메모리 더 차지 하게 됨
쓸데없이 정렬하면 메모리 낭비, 성능 저하
그래서 정렬은 꼭 필요하지 않는 한 쓰지 않는ㄷㅏ !
많은 데이터를 정리할 때 다른 방법으로도 정렬을 할 수 있고, 한다면 사용자가 접속을 하지 않는 밤이나 새벽에 하는 경우도 많다고 함 !
그리고 기본키 기준으로 정렬하는게 좋다 !
'Others > 데이터베이스' 카테고리의 다른 글
[SQL] DDL (정의어) 문법 정리 및 예제 (1) | 2024.06.16 |
---|---|
[SQL] DML (조작어) 문법 정리 및 예제 (0) | 2024.06.16 |
006. 관계형 데이터베이스 SQL 및 모델링 - 1편 DB, DBMS, RDBMS (1) | 2024.06.16 |
[MySQL] 자료형 CHAR 와 VARCHAR 의 차이점 (0) | 2024.06.13 |
[SQL] 예제 모음 - 1 (0) | 2024.06.12 |