본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

MySQL 기초 — CREATE DATABASE · USE · SELECT · SHOW 완전 정리

by 왕진 2026. 6. 27.
반응형

 

 

Web Development · MySQL

MySQL 기초 —
CREATE DATABASE · USE · SELECT · SHOW

데이터베이스를 처음 만들고, 선택하고, 내용을 확인하는 기본 명령어 완전 정리
시작 오늘 분석할 코드

MySQL에서 처음 데이터베이스를 만들 때 반드시 쓰는 명령어들이다. 데이터베이스를 삭제 → 생성 → 선택하고, 테이블 구조를 확인하거나 전체 목록을 조회하는 기초 흐름이다.

DROP DATABASE IF EXISTS sqldb; -- 만약 sqldb가 존재하면 우선 삭제한다. -- 대쉬 2개는 MySQL에서 주석을 의미한다. CREATE DATABASE sqldb; USE sqldb; -- sqldb를 사용할 것이다. DESC usertbl; -- 테이블이 완성되었는지 확인할 수 있음. SMALLINT -- -32,768 ~ 32,767 TINYINT -- -128 ~ 127 SELECT * FROM usertbl; -- usertbl의 전체 목록을 보여줌 SELECT * FROM buytbl; SHOW DATABASES; -- 사용할 수 있는 DB 목록을 보여줌.
용어 용어 정리
DATABASE테이블들의 묶음. 하나의 프로젝트 = 하나의 데이터베이스
TABLE행(row)과 열(column)로 이루어진 데이터 저장 단위
CREATE"생성하라" — DB/테이블을 새로 만드는 명령어
DROP"삭제하라" — DB/테이블을 완전히 지운다
USE"이 DB를 쓰겠다" — 이후 명령이 이 DB 안에서 실행됨
DESCDESCRIBE의 줄임. 테이블 컬럼 구조를 보여줌
SELECT *해당 테이블의 모든 행과 열을 조회
SHOWMySQL 내부 정보를 목록으로 보여주는 명령
SMALLINT정수형 타입. -32,768 ~ 32,767 범위
TINYINT정수형 타입. -128 ~ 127 범위 (1바이트)

1 DROP DATABASE IF EXISTS — 왜 삭제부터 하는가?
처음 만드는데 왜 지우고 시작하는가?

실습 코드를 여러 번 반복 실행하면 "이미 같은 이름의 DB가 존재한다"는 오류가 난다. DROP DATABASE IF EXISTS sqldb는 "있으면 지우고, 없으면 그냥 넘어가라"는 의미다. 덕분에 코드를 몇 번이고 다시 실행해도 오류 없이 처음부터 재시작된다.

-- 오류가 나는 방법 CREATE DATABASE sqldb; -- 이미 있으면 ERROR 발생 -- 안전한 방법 DROP DATABASE IF EXISTS sqldb; CREATE DATABASE sqldb; -- 항상 깨끗하게 시작
IF EXISTS는 "있을 때만 실행해라"는 조건부 처리다. IF NOT EXISTS와 반대 개념으로, CREATE 시에는 CREATE DATABASE IF NOT EXISTS sqldb처럼 쓰기도 한다.

2 CREATE DATABASE와 USE — 생성과 선택
만든 것과 쓰는 것은 별개다

CREATE DATABASE sqldb는 DB를 "공간만" 만드는 것이다. 만들었다고 자동으로 그 안에서 작업하지 않는다. 반드시 USE sqldb"이 공간에 들어가겠다"고 선언해야 이후 CREATE TABLE, SELECT 등이 sqldb 안에서 실행된다.

1
CREATE DATABASE sqldb빈 데이터베이스 공간을 생성 (컨테이너만 만든 것)
2
USE sqldb"현재 작업 공간"을 sqldb로 전환 — 이후 명령은 모두 여기서 실행
3
CREATE TABLE ...USE 이후에 작성하면 sqldb 안에 테이블이 생성됨
※ USE 없이 CREATE TABLE을 실행하면 "어느 DB에 만들어야 하는지 모르겠다"는 오류가 난다. No database selected 오류가 보이면 USE를 빠뜨린 것이다.

3 SHOW DATABASES와 DESC — 확인 명령어
SHOW DATABASES : 전체 DB 목록 보기

SHOW DATABASES;는 MySQL 서버에 존재하는 모든 데이터베이스 이름을 목록으로 보여준다. 내가 만든 sqldb 외에 MySQL이 기본으로 가지고 있는 시스템 DB(information_schema, mysql 등)도 함께 표시된다.

DESC : 테이블 구조 확인

DESC usertbl;은 usertbl 테이블의 컬럼 이름, 데이터 타입, NULL 허용 여부, 키 여부 등을 한눈에 보여준다. 테이블을 만든 후 "제대로 만들어졌나?" 확인할 때 제일 먼저 쓰는 명령이다.

SHOW DATABASES 결과 예시
  • information_schema
  • mysql
  • performance_schema
  • sqldb ← 내가 만든 것
  • sys
DESC usertbl 결과 예시
  • Field / Type / Null / Key
  • userID / CHAR(8) / NO / PRI
  • name / VARCHAR(10) / NO /
  • birthYear / INT / NO /
  • height / SMALLINT / YES /

 

반응형

 

4 정수형 데이터 타입 — SMALLINT vs TINYINT
왜 INT 하나가 아니라 여러 정수형 타입이 있는가?

MySQL은 저장 공간을 아끼기 위해 범위에 맞는 적절한 타입을 고르게 설계되어 있다. 나이처럼 0~127 범위면 TINYINT, 키(cm)처럼 0~32767 범위면 SMALLINT를 쓰면 INT보다 적은 용량으로 같은 데이터를 저장할 수 있다.

타입 크기 범위 (signed) 범위 (unsigned) 사용 예
TINYINT 1 byte -128 ~ 127 0 ~ 255 나이, 등급, 플래그
SMALLINT 2 bytes -32,768 ~ 32,767 0 ~ 65,535 키(cm), 연도, 점수
MEDIUMINT 3 bytes 약 -838만 ~ 838만 0 ~ 약 1678만 중간 규모 ID
INT 4 bytes 약 -21억 ~ 21억 0 ~ 약 42억 일반 ID, 수량
BIGINT 8 bytes 약 -922경 ~ 922경 0 ~ 약 1844경 SNS 글 ID, 대용량
※ 실습 테이블 usertbl에서 height 컬럼을 SMALLINT로 지정한 이유 — 키(cm)는 최대해도 250 정도이므로 SMALLINT(최대 32,767)면 충분하고, INT(4 bytes)보다 공간을 절반으로 아낄 수 있다.

5 SELECT * FROM 테이블명 — 전체 조회
가장 기본적인 데이터 조회

SELECT * FROM usertbl;은 usertbl의 모든 행(row)과 모든 열(column)을 조회하라는 뜻이다. *는 "전부"를 의미하는 와일드카드다. 데이터를 INSERT한 후 "잘 들어갔나?" 확인할 때 제일 먼저 쓰는 명령이다.

SELECT * FROM usertbl; -- usertbl 전체 조회 SELECT * FROM buytbl; -- buytbl 전체 조회 -- *는 모든 컬럼. 특정 컬럼만 보려면: SELECT userID, name FROM usertbl;
※ SELECT와 FROM의 역할 구분
  • SELECT — "무엇을" 보여줄지 (컬럼 지정, *는 전부)
  • FROM — "어느 테이블에서" 가져올지 (테이블 지정)
  • 이 두 절이 SELECT 구문의 핵심 뼈대. WHERE, ORDER BY 등은 모두 여기에 붙는 부가 조건

6 자주 하는 실수
실수 증상 해결
USE 없이 CREATE TABLE 실행 No database selected 오류 반드시 USE sqldb; 먼저 실행
DROP 없이 CREATE DATABASE 재실행 database exists 오류 DROP DATABASE IF EXISTS 선행
세미콜론(;) 빠뜨림 명령이 끝나지 않고 다음 줄 대기 모든 SQL 명령 끝에 ; 필수
TINYINT로 범위 초과 값 저장 데이터 잘림(truncate) 또는 오류 범위 계산 후 적합한 타입 선택
DESC를 SELECT처럼 사용 오류 또는 원하지 않는 결과 DESC는 구조 확인용, 데이터 조회는 SELECT

핵심 한 줄 요약

DROP DATABASE IF EXISTS있으면 삭제, 없으면 통과 — 재실행 오류 방지
CREATE DATABASE빈 컨테이너(공간) 생성
USE작업 공간 전환 — 이후 명령이 이 DB 안에서 실행
DESC 테이블명컬럼 구조(타입·NULL·키) 확인
SELECT * FROM 테이블전체 행·열 조회 (* = 모든 컬럼)
SHOW DATABASESMySQL 서버의 전체 DB 목록 나열
SMALLINT / TINYINT범위에 맞는 정수형 타입 — 공간 최적화

Tags

#MySQL #SQL #CREATE DATABASE #USE #DESC #SHOW DATABASES #SELECT #SMALLINT #TINYINT #데이터베이스기초 #관계형DB #RDBMS #웹개발 #티스토리
▼ 티스토리 태그 입력란 복사용
MySQL, SQL, CREATE DATABASE, USE, DESC, SHOW DATABASES, SELECT, SMALLINT, TINYINT, 데이터베이스기초, 관계형DB, RDBMS, 웹개발, 티스토리
반응형

댓글