조아마시

쓸모 있는 상세페이지 만들기

웹개발/mySQL

[MySQL] MySQL 명령어 모음

joamashi 2024. 7. 29. 00:02

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