MariaDB 기초 가이드
MariaDB 기초 가이드
가장 먼저 해 볼 일은 MariaDB 서버에 접속해서 데이터베이스와 테이블을 만들고, 기본적인 데이터를 넣고 읽어보는 거예요. 이 기초 가이드는 그 흐름을 단계별로 잡아줘요. 새로 시작하는 분이나 핵심 명령어를 빠르게 되새기고 싶은 분 모두에게 딱 맞는 내용이에요.
출처: https://mariadb.com/docs/server/mariadb-quickstart-guides/basics-guide
MariaDB 서버 접속하기
MariaDB 서버와 상호작용하려면 클라이언트 프로그램을 써요. 기본 명령줄 클라이언트는 mariadb예요. 리눅스 명령줄에서 모니터(monitor) 모드로 접속하려면 이렇게 해요.
mariadb -u root -p -h localhost
주요 옵션은 다음과 같아요.
-u username— MariaDB 사용자 지정 (예:root). OS 사용자가 아니라 MariaDB 계정이에요.-p— 비밀번호 입력 프롬프트를 띄워요. 비밀번호가 없다면 [Enter]를 누르면 돼요.-h hostname_or_IP— 클라이언트가 서버와 다른 머신에 있을 때 서버의 호스트명·IP를 지정해요. 로컬 접속에서는 보통 필요 없어요.
root로 리눅스에 로그인한 상태라면 mariadb -p만 해도 충분할 수 있어요. 접속을 끝낼 때는 quit 또는 exit를 입력하고 [Enter]를 눌러요.
데이터베이스 구조 만들기
먼저 데이터베이스를 만들고 선택해요.
CREATE DATABASE bookstore;
USE bookstore;
bookstore라는 데이터베이스를 만들고 이후 작업의 기본 대상으로 설정한 거예요. 이제 데이터를 담을 테이블을 만들어요.
CREATE TABLE books (
isbn CHAR(20) PRIMARY KEY,
title VARCHAR(50),
author_id INT,
publisher_id INT,
year_pub CHAR(4),
description TEXT
);
books 테이블은 여섯 개 컬럼을 가져요.
isbn—CHAR(20), 고유 식별을 위한 기본 키.title—VARCHAR(50), 책 제목을 담는 가변 길이 문자열.author_id,publisher_id—INT, 숫자 형태의 ID.year_pub—CHAR(4), 출판 연도를 담는 고정 길이 문자열.description—TEXT, 긴 설명 텍스트 (최대 65,535바이트).
테이블 구조를 확인하려면 DESCRIBE books;를 실행해요.
데이터 입력하기
INSERT 문장으로 테이블에 새 행을 추가해요.
INSERT INTO authors (name_last, name_first, country)
VALUES('Kafka', 'Franz', 'Czech Republic');
authors 테이블의 author_id는 AUTO_INCREMENT라 값이 자동으로 부여돼요. 특정 컬럼만 채울 때는 컬럼 이름을 나열하고 VALUES 절에 맞춰 값을 넣어야 해요. 하나의 INSERT로 여러 행을 넣을 수도 있어요.
데이터 읽기 / 바꾸기 / 지우기
조회는 SELECT로 해요. 결과를 제한하려면 LIMIT, 여러 테이블을 연결할 때는 JOIN, 조건은 WHERE로 거르죠.
SELECT title AS 'Kafka Books'
FROM books
JOIN authors USING (author_id)
WHERE name_last = 'Kafka';
데이터를 수정할 때는 UPDATE를 쓰고, 반드시 WHERE 절로 대상 행을 지정해야 해요. 삭제는 DELETE로 하는데 마찬가지로 WHERE로 대상 행을 정해요.
SQL 문법 참고 사항
- SQL 문장은 보통 세미콜론(
;) 또는\G로 끝나요. - 문장은 여러 줄에 걸쳐 쓸 수 있고, 종결 문자와 [Enter]를 누르면 실행돼요.
- 입력 중인 문장을 취소하려면
\c를 입력해요. CREATE·SELECT같은 예약어는 가독성을 위해 대문자로 쓰는 게 관례지만, MariaDB에서는 대소문자를 구분하지 않아요.- 리눅스에서는 데이터베이스·테이블 이름이 대소문자를 구분하지만(디렉토리·파일에 매핑되므로), Windows에서는 대개 구분하지 않아요. 컬럼 이름은 대소문자 구분이 없어요.
- 테이블·컬럼 이름은 소문자를 쓰는 게 흔한 관례예요.
더 알아보기
- 데이터 조회(SELECT) 가이드: https://mariadb.com/docs/server/mariadb-quickstart-guides/mariadb-selecting-data-guide
- 인덱스 시작하기 가이드: https://mariadb.com/docs/server/mariadb-quickstart-guides/mariadb-indexes-guide
- ALTER TABLE 문서: https://mariadb.com/docs/server/reference/sql-statements/data-definition/alter/alter-table