SQL

김기훈·2025년 9월 3일

DataBase

목록 보기
4/6
post-thumbnail

MySQL

  • 관계형 데이터베이스 관리 시스템입니다. 데이터를 테이블(표) 형태로 관리합니다.
  • SQL(Structured Query Language): 데이터 조회, 삽입, 수정, 삭제하는 데 사용되는 언어

Workbench와 터미널 관계

  • mysql -u root -p : 터미널에서 MySQL 서버에 접속하는 명령어

    • 터미널 접속 → mysql -u root -p = 텍스트 기반으로 DB 관리
  • Workbench는 GUI 클라이언트라서, mysql -u root -p 를 직접 칠 필요는 없다.

    • Workbench = GUI(그래픽) 기반으로 DB 관리
  • mysql -u root -p 를 꼭 해야 Workbench가 켜지는 건 아님

  • 다만 MySQL 서버가 켜져 있어야 Workbench에서도 접속할 수 있음

    • 서버가 꺼져 있으면 둘 다 접속 불가

Workbench와 터미널 차이

  • 터미널 : 가볍고 빠름, 서버 관리에 적합
  • Workbench : 쿼리 작성, 테이블 구조 확인, ERD 그리기 등 개발 편의성 높음

데이터 베이스 생성

# mydatabase라는 이름의 데이터베이스 생성
CREATE DATABASE mydatabase;

# 모든 데이터베이스 목록 조회
SHOW DATABASES;

# mydatabase 데이터베이스 사용
USE mydatabase;

# mydatabase 데이터베이스 삭제 (만약 존재하면)
DROP DATABASE IF EXISTS mydatabase;

중요한 명령어 정리

  • 데이터베이스 관리

    • USE db명; → 특정 DB 사용
    • SHOW DATABASES; → DB 목록 보기
    • DROP DATABASE db명; → DB 삭제
  • 테이블 관리

    • SHOW TABLES; → 테이블 목록 보기
    • DESCRIBE table명; → 테이블 구조 보기
    • DROP TABLE table명; → 테이블 삭제
  • 데이터 조작 (CRUD)

    • C (Create): INSERT
    • R (Read): SELECT
    • U (Update): UPDATE
    • D (Delete): DELETE

추가적인 지식

들여쓰기

  • SQL은 VScode랑은 다르게 줄바꿈이나 들여쓰기의 영향을 받지 않는다
SELECT user_id, name, age
FROM users
WHERE age > 20
ORDER BY name;
------------------------------------------------------------------
SELECT user_id, name, age FROM users WHERE age > 20 ORDER BY name;

기록을 저장하는 법

  • MySQL은 VScode처럼 저장커맨드가 따로 없고 명령어를 실행하면 즉시 데이터베이스에 반영된다.
    • SELECT 를 실행해야만 데이터 조회 결과가 표로 출력

중복

  • 같은 데이터베이스 내부에서는 테이블의 이름은 중복될 수 없습니다.
  • 다른 데이터베이스라면 테이블의 이름은 중복이 가능합니다.
    • 이 경우 DB이름.테이블이름 으로 구분해서 접근
CREATE DATABASE shop_db;
CREATE DATABASE blog_db;

USE shop_db;
CREATE TABLE users (...);   -- shop_db.users

USE blog_db;
CREATE TABLE users (...);   -- blog_db.users (동명이지만 가능)
---------------------------------------------------------
SELECT * FROM shop_db.users;
SELECT * FROM blog_db.users;

실전투입

  • SELECT * FROM users; : users 테이블에 저장된 모든 데이터를 조회하는 명령어
    • SELECT : 데이터 조회 , * : 모든 컬럼(columns)을 가져옴 , FROM users : 대상이 users

  • user_id 에 있는 숫자는 AUTO_INCREMENT 이거 때문

SQL (DML) 기초

기본세팅


profile
안녕하세요.

0개의 댓글