MySQL은 데이터 저장, 검색, 관리 등을 위한 다양한 명령어를 제공하는 데이터베이스 관리 시스템(DBMS)입니다.
기본 명령어
데이터베이스 작업
- SHOW DATABASES: 현재 존재하는 모든 데이터베이스 목록을 표시합니다.
SHOW DATABASES;
- CREATE DATABASE: 새로운 데이터베이스를 생성합니다.
CREATE DATABASE my_database;
- USE: 작업할 데이터베이스를 선택합니다.
USE my_database;
- DROP DATABASE: 데이터베이스를 삭제합니다.
DROP DATABASE my_database;
테이블 작업
- SHOW TABLES: 선택된 데이터베이스에 존재하는 모든 테이블 목록을 표시합니다.
SHOW TABLES;
- CREATE TABLE: 새로운 테이블을 생성합니다.
CREATE TABLE customers (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE,
age INT
);
- DESC: 테이블의 구조를 자세히 보여줍니다.
DESC customers;
- ALTER TABLE: 테이블 구조를 변경합니다.
ALTER TABLE customers ADD city VARCHAR(255);
- DROP TABLE: 테이블을 삭제합니다.
DROP TABLE customers;
데이터 조회
- SELECT: 테이블에서 데이터를 조회합니다.
SELECT * FROM customers;
- FROM: 조회할 테이블을 지정합니다.
SELECT name, email FROM customers;
- WHERE: 조회 조건을 설정합니다.
SELECT * FROM customers WHERE age > 30;
데이터 추가
- INSERT INTO: 테이블에 데이터를 추가합니다.
INSERT INTO customers (name, email, age) VALUES ('John Doe', 'johndoe@example.com', 35);
- VALUES: 추가할 데이터 값을 지정합니다.
INSERT INTO customers (name, email, age) VALUES ('Jane Doe', 'janedoe@example.com', 32);
데이터 수정
- UPDATE: 테이블의 데이터를 수정합니다.
UPDATE customers SET email = 'newemail@example.com' WHERE id = 1;
- SET: 수정할 데이터 값을 지정합니다.
UPDATE customers SET name = 'Jack Smith', age = 40 WHERE id = 2;
- WHERE: 수정 조건을 설정합니다.
UPDATE customers SET email = 'newemail@example.com' WHERE age > 35;
데이터 삭제
- DELETE FROM: 테이블에서 데이터를 삭제합니다.
DELETE FROM customers WHERE id = 1;
- WHERE: 삭제 조건을 설정합니다.
DELETE FROM customers WHERE age < 20;
MySQL 고급 명령어
MySQL은 기본적인 데이터베이스 작업뿐만 아니라, 트랜잭션, 뷰, 저장 프로시저, 함수, 사용자 관리 등 다양한 고급 기능을 제공합니다.
트랜잭션
- 트랜잭션은 여러 작업을 하나의 작업으로 묶어 처리하는 기능입니다.
- 예를 들어, 여러 계좌에서 돈을 출금하고 입금하는 작업을 트랜잭션으로 처리하면, 한 계좌에서 돈을 출금하는 데 실패해도 모든 작업이 취소되어 데이터 무결성을 유지할 수 있습니다.
트랜잭션 관련 명령어:
- START TRANSACTION: 트랜잭션을 시작합니다.
START TRANSACTION;
- COMMIT: 트랜잭션을 커밋(완료)합니다.
COMMIT;
- ROLLBACK: 트랜잭션을 롤백(취소)합니다.
ROLLBACK;
사용 예제:
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
뷰
- 뷰는 기존 테이블의 데이터를 기반으로 생성되는 가상 테이블입니다.
- 뷰를 사용하면 기존 테이블의 데이터를 특정 조건에 맞게 필터링하거나 정렬하여 조회할 수 있습니다.
뷰 관련 명령어:
- CREATE VIEW: 뷰를 생성합니다.
CREATE VIEW customer_view AS SELECT name, email, age FROM customers;
사용 예제:
CREATE VIEW customer_view AS
SELECT name, email, age FROM customers WHERE age > 30;
저장 프로시저
- 저장 프로시저는 자주 사용하는 SQL 문을 하나의 프로시저로 묶어 관리하는 기능입니다.
- 저장 프로시저를 사용하면 코드 중복을 줄이고, 프로그램 흐름을 명확하게 만들 수 있습니다.
저장 프로시저 관련 명령어:
- CREATE PROCEDURE: 저장 프로시저를 생성합니다.
CREATE PROCEDURE update_customer_email( customer_id INT, new_email VARCHAR(255) ) BEGIN UPDATE customers SET email = new_email WHERE id = customer_id; END;
사용 예제:
CREATE PROCEDURE update_customer_email(
customer_id INT,
new_email VARCHAR(255)
)
BEGIN
UPDATE customers SET email = new_email WHERE id = customer_id;
SELECT * FROM customers WHERE id = customer_id;
END;
함수
- 함수는 특정 작업을 수행하고 값을 반환하는 코드 블록입니다.
- 함수를 사용하면 코드를 재사용하고, 프로그램을 더욱 효율적으로 만들 수 있습니다.
함수 관련 명령어:
- CREATE FUNCTION: 함수를 생성합니다.
CREATE FUNCTION get_customer_name(customer_id INT) RETURNS VARCHAR(255) BEGIN DECLARE customer_name VARCHAR(255); SELECT name INTO customer_name FROM customers WHERE id = customer_id; RETURN customer_name; END;
사용 예제:
CREATE FUNCTION get_customer_name(customer_id INT)
RETURNS VARCHAR(255)
BEGIN
DECLARE customer_name VARCHAR(255);
SELECT name INTO customer_name FROM customers WHERE id = customer_id;
RETURN customer_name;
END;
SELECT get_customer_name(1);
사용자 관리
- MySQL은 사용자 관리 기능을 제공하여 데이터베이스에 접근할 수 있는 사용자를 관리하고 권한을 부여할 수 있습니다.
사용자 관리 관련 명령어:
- CREATE USER: 새로운 사용자를 생성합니다.
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
728x90