방법 1: 설치 프로그램 사용 (권장)
1. https://dev.mysql.com/downloads/mysql/ 접속
2. MySQL Server Community Edition macOS 버전 다운로드
방법 2: Homebrew 사용
brew install mysql
1. 터미널 종류 확인 후 설정 파일 열기
# zsh 사용 시
open ~/.zshrc
# bash 사용 시
open ~/.bash_profile
2. PATH 추가
export PATH="$PATH:/usr/local/mysql/bin/"
3. 터미널 재시작 후 MySQL 접속
mysql -u root -p
MySQL Workbench Local Instance 시작 실패
1. 윈도우 검색 → "환경 변수 편집"
2. Path 변수에 C:\Windows\System32 추가
DBeaver MySQL 연결 실패
1. 윈도우 검색 → "서비스"
2. MYSQL80 서비스 찾아서 우클릭 → 시작
3. MySQL Workbench에서도 서버 실행 상태 확인
# 터미널에서 MySQL 서버 실행 여부 확인
mysql -u root -p
-- DBeaver에서 Databases 우클릭 → Create New Database
-- 또는 SQL로 생성
CREATE DATABASE mart;
-- product 테이블 생성 예시
CREATE TABLE product (
번호 INT,
상품명 VARCHAR(100),
카테고리 VARCHAR(50),
가격 INT
);
Column 설정 시 고려사항
| Data Type | 저장 가능한 양 | 특징 |
|---|---|---|
| CHAR | 0~255자 | 고정 길이, CHAR(10)은 항상 10자 용량 차지 |
| VARCHAR | 0~65,535자 | 가변 길이, 실제 데이터 크기만큼 용량 차지 |
| TEXT | 0~65,535자 | 긴 텍스트용 |
| MEDIUMTEXT | 0~1,600만자 | 매우 긴 텍스트용 (블로그 글 등) |
사용 팁
VARCHAR 사용MEDIUMTEXT 사용VARCHAR(300) 설정 후 10자만 저장해도 10자+1byte만 차지| Data Type | 저장 범위 | 용량 | 특징 |
|---|---|---|---|
| SMALLINT | -32,768 ~ 32,767 | 2byte | 작은 숫자용 |
| INT | -21억 ~ 21억 | 4byte | 가장 많이 사용 |
| BIGINT | -900경 ~ 900경 | 8byte | 매우 큰 숫자용 |
| FLOAT | -10^38 ~ 10^38 | 4byte | 소수점 7자리, 약간의 오차 |
| DOUBLE | -10^308 ~ 10^308 | 8byte | 소수점 14자리, 약간의 오차 |
| DECIMAL | 최대 65자리 | 가변 | 소수점 30자리, 오차 없음 |
사용 팁
INT 사용UNSIGNED 옵션 추가 (범위가 2배로 확장)DECIMAL 사용 (금융 데이터 등)| Data Type | 저장 범위 | 형식 | 특징 |
|---|---|---|---|
| DATE | 1000년~9999년 | YYYY-MM-DD | 날짜만 저장 |
| TIME | -839~+838시간 | HH:MM:SS | 시간의 양 저장 |
| DATETIME | 1000년~9999년 | YYYY-MM-DD HH:MM:SS | 날짜와 시간 모두 저장 |
| TIMESTAMP | 1970년~2038년 | YYYY-MM-DD HH:MM:SS | 2038년 문제로 권장하지 않음 |
사용 팁
DATETIME 사용TIMESTAMP 간혹 사용기본 조회
-- 모든 컬럼 조회
SELECT * FROM 테이블명;
-- 특정 컬럼만 조회
SELECT 컬럼명 FROM 테이블명;
-- 여러 컬럼 조회
SELECT 컬럼명1, 컬럼명2 FROM 테이블명;
-- 다른 데이터베이스의 테이블 조회
SELECT * FROM 데이터베이스명.테이블명;
기본 정렬
-- 오름차순 정렬 (ASC는 생략 가능)
SELECT * FROM product ORDER BY 가격 ASC;
-- 내림차순 정렬
SELECT * FROM product ORDER BY 가격 DESC;
-- 여러 컬럼 기준 정렬
SELECT * FROM product ORDER BY 카테고리 ASC, 가격 DESC;
-- 컬럼 번호로 정렬 (3번째 컬럼 기준)
SELECT * FROM product ORDER BY 3 DESC;
정렬 순서
기본 조건
-- 문자 조건 (따옴표 필수)
SELECT * FROM product WHERE 카테고리 = '가구';
-- 숫자 조건 (따옴표 불필요)
SELECT * FROM product WHERE 가격 > 50000;
-- 범위 조건
SELECT * FROM product WHERE 가격 BETWEEN 5000 AND 8000;
비교 연산자
= : 같음!= : 같지 않음 >, < : 크다, 작다>=, <= : 크거나 같다, 작거나 같다AND 조건 (모든 조건 만족)
SELECT * FROM product
WHERE 카테고리 = '가구' AND 가격 = 5000;
OR 조건 (하나 이상 조건 만족)
SELECT * FROM product
WHERE 카테고리 = '가구' OR 가격 = 5000;
NOT 조건 (조건 제외)
SELECT * FROM product
WHERE NOT 카테고리 = '가구';
괄호를 이용한 조건 그룹화
SELECT * FROM product
WHERE (카테고리 = '가구' OR 카테고리 = '옷') AND 가격 = 5000;
OR 조건을 IN으로 간단히 표현
-- 기존 방식 (OR 여러 개)
SELECT * FROM product
WHERE 카테고리 = '신발' OR 카테고리 = '가전' OR 카테고리 = '식품';
-- IN 사용 (더 간단)
SELECT * FROM product
WHERE 카테고리 IN ('신발', '가전', '식품');
-- NOT IN (제외)
SELECT * FROM product
WHERE 상품명 NOT IN ('셔츠', '반팔티', '운동화');
IN 사용 조건
-- 1. 재고가 20 이하인 상품을 상품명 가나다 순으로 조회
SELECT * FROM product
WHERE 재고 <= 20
ORDER BY 상품명;
-- 2. 가격이 3000원 미만이거나 6000원 초과인 상품 조회
SELECT * FROM product
WHERE 가격 < 3000 OR 가격 > 6000;
-- 3. 카테고리가 '옷'이 아니면서 가격이 5000원인 상품 조회
SELECT * FROM product
WHERE 카테고리 != '옷' AND 가격 = 5000;
주요 문법 정리
이러한 기본 문법들을 조합하면 복잡한 데이터 조회와 분석이 가능합니다.