MySQL 기본 문법 예시
데이터베이스 및 테이블 관리
데이터베이스 생성 및 선택
-- 데이터베이스 생성
CREATE DATABASE my_database;
-- 데이터베이스 선택
USE my_database;
테이블 생성
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
데이터 조작 (CRUD)
INSERT (데이터 추가)
-- 단일 행 삽입
INSERT INTO users (username, email, age)
VALUES ('johndoe', 'john@example.com', 25);
-- 다중 행 삽입
INSERT INTO users (username, email, age)
VALUES
('alice', 'alice@example.com', 30),
('bob', 'bob@example.com', 35);
SELECT (데이터 조회)
-- 모든 컬럼 조회
SELECT * FROM users;
-- 특정 컬럼 조회
SELECT username, email FROM users;
-- 조건 검색
SELECT * FROM users WHERE age > 25;
-- 정렬
SELECT * FROM users ORDER BY age DESC;
-- 제한된 결과
SELECT * FROM users LIMIT 5;
-- 복합 조건
SELECT * FROM users
WHERE age > 25 AND username LIKE 'j%';
UPDATE (데이터 수정)
-- 특정 행 업데이트
UPDATE users
SET email = 'newemail@example.com'
WHERE id = 1;
-- 다중 컬럼 업데이트
UPDATE users
SET age = age + 1, username = CONCAT(username, '_updated')
WHERE id = 2;
DELETE (데이터 삭제)
-- 특정 행 삭제
DELETE FROM users WHERE id = 3;
-- 조건부 삭제
DELETE FROM users WHERE age < 18;
고급 쿼리
JOIN
-- INNER JOIN
SELECT users.username, orders.product
FROM users
INNER JOIN orders ON users.id = orders.user_id;
-- LEFT JOIN
SELECT users.username, orders.product
FROM users
LEFT JOIN orders ON users.id = orders.user_id;
집계 함수
-- 평균, 합계, 최대/최소값
SELECT
AVG(age) AS average_age,
SUM(age) AS total_age,
MAX(age) AS max_age,
MIN(age) AS min_age
FROM users;
-- 그룹화
SELECT age, COUNT(*) AS user_count
FROM users
GROUP BY age
HAVING user_count > 1;
서브쿼리
-- 서브쿼리 예시
SELECT * FROM users
WHERE age > (SELECT AVG(age) FROM users);
테이블 수정
테이블 구조 변경
-- 컬럼 추가
ALTER TABLE users
ADD COLUMN phone VARCHAR(20);
-- 컬럼 수정
ALTER TABLE users
MODIFY COLUMN username VARCHAR(100);
-- 컬럼 삭제
ALTER TABLE users
DROP COLUMN phone;
인덱스 및 제약조건
인덱스 생성
-- 단일 컬럼 인덱스
CREATE INDEX idx_username ON users(username);
-- 복합 인덱스
CREATE INDEX idx_name_email ON users(username, email);
외래키 제약조건
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
product VARCHAR(100),
FOREIGN KEY (user_id) REFERENCES users(id)
);
이 문서는 MySQL의 기본적인 문법과 주요 쿼리 유형을 covers하고 있습니다. 실제 사용 시에는 데이터베이스의 특성과 요구사항에 맞게 적절히 수정하고 조정해야 합니다.
'DB' 카테고리의 다른 글
DB N-N관계 풀어내기 예제 (0) | 2024.12.06 |
---|---|
DB - 인덱스 (0) | 2024.12.03 |
DB - 정규화 (0) | 2024.11.28 |
DB - 관계형 데이터 모델링 (3) (1) | 2024.11.28 |
관계형 데이터베이스 모델링 (2) (1) | 2024.11.26 |
댓글