데이터베이스 실습

KoK·2025년 10월 1일

DATABASE

목록 보기
3/6
post-thumbnail

1. 데이터베이스 생성

1-1. CREATE DATABASE my_shop;

  • 데이터베이스는 ; 단위로 SQL을 인식한다.
  • 해당 SQL을 실행하면 MYSQL에 my_shop 데이터베이스가 생성된다.
  • 해당 DB 안에 테이블들을 설계하면 된다.

1-2. USE my_shop;

  • 작업할 데이터베이스 지정하기
  • 항상 작업할 때 데이터베이스를 지정해줘야한다. 지정하지 않으면
    데이터베이스가 선택되지 않았다고 오류가 발생한다.

    Error Code: 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar.


2. 테이블 설계

CREATE TABLE sample (
	product_id INT PRIMARY KEY,
	name VARCHAR(100),
	price INT,
	stock_quantity INT,
	release_date DATE
);

CREATE TABLE은 테이블의 구조를 정의하고 생성하는 명령어다. 어떤 열(Column)들로 구성될지, 각 열에는 어떤 종류의 데이터가 들어갈지를 명시해야 한다.


3. 기본 키(PRIMARY KEY)

데이터베이스 테이블에는 항상 기본키가 있어야 한다.
기본 키란, 테이블에 있는 모든 행들 중에서 특정 행 하나를 유일하게 식별할 수 있는 열 또는 열들의 조합이다.

  • 위 테이블에는 product_id에 기본 키를 지정했으므로 해당 열에는 항상 다른 값이 들어가야한다. 다시 한번 강조하지만, 기본 키는 항상 유일해야한다.

3-1. 데이터타입

  • 각 열에 들어갈 데이터의 종류를 알려주는 데이터타입의 종류

    • INT : 정수를 의미한다. 1,2 ... 100 등 정수를 저장할 때 사용한다.
    • VARCHAR(n) : 문자열을 의미한다. n은 저장할 수 있는 최대 글자 수를 의미한다. VARCHAR(100) 은 최대 100글자 까지 저장할 수 있다.
    • DATE : 날짜를 저장할 때 사용한다.

4. 구조확인, 삭제

테이블을 설계할 때 오타가 나거나, 의도와 다르게 잘못 설계된 테이블이 설계될 수도있다. 삭제하는 방법을 알아보자

4-1. DESC sample;

  • 테이블 구조 확인하기, 테이블이 어떤 열들로, 어떤 데이터타입으로 구성되어 있는지 구조를 보여준다.

실행결과

FeildTypeNullKeyDefaultExtra
product_idintNOPRINULL
namevarchar(100)YESNULL
priceintYESNULL
stock_quantityintYESNULL
release_datedateYESNULL

4-2. SHOW DATABASES;

  • 현재 서버에 있는 모든 데이터베이스 목록을 보여준다.

실행결과

DATABASE
information_schema
my_shop
mysql
performance_schema
sys

4-3. SHOW TABLES;

  • 해당 명령 실행 전에 반드시 USE my_shop을 실행한 뒤에 실행해야한다.
  • 데이터베이스 안에 있는 테이블 목록을 보여준다.

실행결과

TABLES_in_my_shop
sample

4-4. DROP TABLE; , DROP DATABASE;

  • 실수로 잘못된 데이터베이스, 테이블을 만들거나 더이상 필요없는 데이터베이스, 테이블을 삭제할 때 사용한다. DROP 명령어는 구조 자체를 완전히 삭제하는 명령어이기 때문에 신중하게 사용해야한다.

SHOW TABLES; 실행결과

TABLES_in_my_shop

SHOW DATABASES; 실행결과

Database
information_schema
mysql
performance_schema
sys

주의할 점 : 실제 운영 중인 서비스라면 DROP 명령어 특히 DROP DATABASES는 절대 함부로 사용하면 안된다. 모든 데이터가 통째로 사라져버릴 수 있기 때문에 삭제 전에는 항상 백업이 되어있는지, 정말 삭제대상이 맞는지 더블체크 하는것이 중요하다.

profile
개발 이것저것

0개의 댓글