설치 없이 브라우저로 바로 SQL을 실습할 수 있는 온라인 환경을 설정하고, 샘플 테이블을 만들어 첫 쿼리를 실행합니다.
🎯 학습 목표
이 강을 마치면 설치 없이 브라우저만으로 SQL을 실행할 수 있는 온라인 환경을 구축할 수 있습니다. 또한 이 강좌 전반에서 사용할 샘플 데이터를 직접 만들어보고, 첫 번째 SELECT 쿼리가 정상적으로 동작하는 것을 확인할 수 있습니다. 실습 환경이 준비되어야 앞으로의 모든 강의를 실질적으로 따라할 수 있으니, 이 강에서 꼭 환경을 완성해 두시기 바랍니다.
💡 어떤 환경을 선택할까
이 섹션에서는 SQL 실습 환경의 종류와 이 강좌에서 추천하는 방법을 살펴보겠습니다.
SQL을 실습하는 방법은 크게 두 가지입니다. 첫 번째는 온라인(웹 기반) 환경으로, 별도 설치 없이 브라우저에서 바로 SQL을 실행할 수 있습니다. 두 번째는 로컬 설치 환경으로, MySQL이나 PostgreSQL 같은 DBMS를 내 컴퓨터에 직접 설치하는 방법입니다.
이 강좌는 온라인 환경을 기본으로 권장합니다. 이유는 세 가지입니다. 첫째, 설치와 설정에 시간을 낭비하지 않고 바로 SQL 학습에 집중할 수 있습니다. 둘째, 운영체제(Windows·macOS·Linux)에 상관없이 동일한 환경에서 실습할 수 있습니다. 셋째, 강좌의 모든 예제가 표준 SQL을 기준으로 작성되어 있어 어떤 환경에서도 동작합니다.
다만 나중에 실무에서는 회사가 사용하는 특정 DBMS(MySQL, PostgreSQL 등)를 로컬에 설치해 사용하게 됩니다. 로컬 환경 구축은 24강(실전·다음 단계)에서 간략히 안내할 예정입니다.
| 환경 | 장점 | 단점 | 추천 대상 |
|---|---|---|---|
| 온라인(브라우저) | 설치 불필요, 즉시 시작 | 인터넷 필요, 저장 제한 | 입문자, 이 강좌 수강생 |
| 로컬 SQLite | 오프라인 사용, 파일로 저장 | GUI 도구 별도 설치 | 가볍게 로컬 사용하고 싶을 때 |
| 로컬 MySQL/PostgreSQL | 실무와 동일한 환경 | 설치·설정 복잡 | 실무 준비, 프로젝트 개발 |
🌐 온라인 실습 환경 설정
이 섹션에서는 무료 온라인 SQL 환경을 설정하는 방법을 단계별로 살펴보겠습니다.
이 강좌에서 사용할 온라인 도구는 SQLiteOnline.com입니다. 완전 무료이고 회원가입도 필요 없으며, SQLite 문법을 지원합니다. SQLite는 표준 SQL의 핵심 기능을 모두 갖추고 있어 이 강좌의 내용을 익히기에 충분합니다.
접속 방법은 간단합니다. 브라우저 주소창에 sqliteonline.com을 입력하면 됩니다. 페이지가 열리면 왼쪽에 데이터베이스 트리, 가운데에 SQL 편집기, 아래쪽에 실행 결과 창이 나타납니다.
대안 도구로는 DB Fiddle(db-fiddle.com)이 있습니다. 여러 DBMS(SQLite, MySQL, PostgreSQL)를 선택할 수 있어 나중에 특정 DBMS를 연습하고 싶을 때 유용합니다. 기본 인터페이스는 SQLiteOnline보다 약간 복잡하지만, MySQL이나 PostgreSQL 문법을 함께 익히고 싶다면 좋은 선택입니다.
SQLiteOnline에 접속했으면 기본으로 표시되는 demo 데이터베이스를 지우고 새로 시작하겠습니다. 화면 상단의 편집기에 커서를 놓고, Ctrl+A(전체 선택) 후 Delete 키로 기존 내용을 모두 지웁니다. 이제 빈 편집기에서 시작할 준비가 됐습니다.
🏗️ 샘플 데이터 만들기
이 섹션에서는 이 강좌 전반에서 실습에 사용할 샘플 테이블을 직접 생성하겠습니다.
이 강좌에서는 가상의 온라인 서점 데이터베이스를 예제로 사용합니다. 회원 테이블(members), 도서 테이블(books), 주문 테이블(orders)로 구성됩니다. 이 세 테이블은 현실에서 흔히 볼 수 있는 관계형 데이터 구조를 잘 보여주며, JOIN·서브쿼리·집계 등을 실습하기에도 적합합니다.
아래 SQL을 편집기에 복사해서 실행해 보겠습니다. 아직 각 명령의 의미를 완전히 이해하지 않아도 됩니다. 이후 강의에서 하나씩 배울 내용이며, 지금은 데이터를 만드는 경험에 집중하면 됩니다.
-- 회원 테이블
CREATE TABLE members (
member_id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
grade TEXT DEFAULT 'REGULAR',
join_date TEXT NOT NULL
);
-- 도서 테이블
CREATE TABLE books (
book_id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author TEXT NOT NULL,
category TEXT NOT NULL,
price INTEGER NOT NULL,
stock INTEGER DEFAULT 0
);
-- 주문 테이블
CREATE TABLE orders (
order_id INTEGER PRIMARY KEY,
member_id INTEGER NOT NULL,
book_id INTEGER NOT NULL,
quantity INTEGER NOT NULL,
order_date TEXT NOT NULL,
status TEXT DEFAULT 'PENDING'
);
코드를 모두 선택하고 실행 버튼(▶ Run 또는 F5)을 누릅니다. 오류 없이 실행되면 왼쪽 DB 트리에 세 개의 테이블이 생성된 것을 확인할 수 있습니다.
이제 각 테이블에 실습용 데이터를 넣어보겠습니다. 편집기를 지우고 아래 INSERT 문을 실행합니다.
-- 회원 데이터
INSERT INTO members VALUES
(1, '김민준', 'minjun@example.com', 'VIP', '2023-01-15'),
(2, '이서연', 'seoyeon@example.com','REGULAR', '2023-03-22'),
(3, '박지훈', 'jihoon@example.com', 'REGULAR', '2023-05-10'),
(4, '최유진', 'yujin@example.com', 'VIP', '2023-07-01'),
(5, '정하늘', 'haneul@example.com', 'PREMIUM', '2024-01-20');
-- 도서 데이터
INSERT INTO books VALUES
(1, 'SQL 첫걸음', '아사이 아츠시', 'IT', 22000, 15),
(2, '파이썬 독학', '홍길동', 'IT', 28000, 8),
(3, '돈의 심리학', '모건 하우절', '경제', 17000, 20),
(4, '채식주의자', '한강', '소설', 13000, 5),
(5, '클린 코드', '로버트 마틴', 'IT', 33000, 10),
(6, '82년생 김지영', '조남주', '소설', 14000, 3),
(7, '부의 추월차선', '엠제이 드마코', '경제', 16000, 12);
-- 주문 데이터
INSERT INTO orders VALUES
(1, 1, 1, 2, '2024-03-01', 'DONE'),
(2, 2, 3, 1, '2024-03-05', 'DONE'),
(3, 1, 5, 1, '2024-03-10', 'DONE'),
(4, 3, 2, 1, '2024-04-02', 'DONE'),
(5, 4, 4, 3, '2024-04-15', 'DONE'),
(6, 5, 1, 1, '2024-05-01', 'DONE'),
(7, 2, 7, 2, '2024-05-10', 'DONE'),
(8, 1, 3, 1, '2024-05-20', 'CANCEL'),
(9, 3, 5, 1, '2024-06-01', 'PENDING'),
(10, 4, 2, 2, '2024-06-05', 'PENDING');
실행 버튼을 누르면 총 22개의 행이 세 테이블에 나누어 삽입됩니다. 에러 없이 완료되면 샘플 데이터 준비가 끝난 것입니다.
▶️ 첫 쿼리 실행하기
이 섹션에서는 방금 만든 데이터에 첫 번째 SELECT 쿼리를 실행해 보겠습니다.
편집기를 비우고 아래 쿼리를 입력한 뒤 실행해 봅니다.
SELECT * FROM members;
화면 아래 결과창에 5명의 회원 정보가 표 형태로 나타나면 성공입니다. member_id, name, email, grade, join_date 열이 모두 보여야 합니다.
이번에는 도서 테이블도 확인해 봅니다.
SELECT * FROM books;
7권의 도서 정보가 나타나면 정상입니다. 마지막으로 주문 테이블을 조회합니다.
SELECT * FROM orders;
10건의 주문 내역이 출력되면 세 테이블 모두 정상 생성된 것입니다. 축하합니다! 이제 SQL 실습 환경이 완벽하게 준비되었습니다.
여기서 한 가지 중요한 점을 짚겠습니다. SQLiteOnline은 브라우저 세션에 데이터를 저장합니다. 따라서 브라우저 탭을 닫으면 데이터가 사라집니다. 다음에 다시 실습할 때는 위의 CREATE TABLE과 INSERT 문을 다시 실행해야 합니다. 편의를 위해 위 코드를 메모장에 저장해 두거나, SQLiteOnline의 "저장" 기능(상단 메뉴 → File → Save)을 이용해 .sql 파일로 내보내 두는 것을 권장합니다.
⚠️ 자주 하는 실수와 주의사항
이 섹션에서는 실습 환경을 사용할 때 초보자가 자주 겪는 문제를 살펴보겠습니다.
첫 번째 실수는 세미콜론(;) 누락입니다. SQL 문장의 끝에는 반드시 세미콜론을 붙여야 합니다. SQLiteOnline에서는 단일 쿼리 실행 시 세미콜론 없이도 실행되는 경우가 있지만, 여러 쿼리를 한꺼번에 실행할 때는 각 문장을 세미콜론으로 구분해야 합니다. 처음부터 세미콜론 작성 습관을 들여두면 나중에 오류를 예방할 수 있습니다.
두 번째 실수는 대소문자 혼동입니다. SQL 키워드(SELECT, FROM, WHERE 등)는 대소문자를 구분하지 않습니다. select * from members와 SELECT * FROM members는 동일하게 동작합니다. 그러나 관례적으로 키워드는 대문자, 테이블명·열명은 소문자로 작성합니다. 이 강좌에서도 이 관례를 따릅니다.
세 번째 실수는 테이블이 없는 상태에서 SELECT 실행입니다. CREATE TABLE을 실행하기 전에 SELECT를 시도하면 "no such table: members"라는 오류가 납니다. 항상 테이블 생성 → 데이터 삽입 → 데이터 조회 순서로 진행해야 합니다.
네 번째는 브라우저 탭을 닫으면 데이터 초기화되는 문제입니다. 앞서 언급했듯이 SQLiteOnline은 세션 기반이므로, 실습 도중 탭을 닫거나 새로고침하면 데이터가 사라집니다. 긴 실습 세션 중간에 실수로 닫지 않도록 주의하고, .sql 파일 저장 습관을 들이는 것이 좋습니다.
📝 핵심 요약
이번 강에서 배운 내용을 정리하겠습니다.
| 항목 | 내용 |
|---|---|
| 추천 실습 환경 | sqliteonline.com — 설치 불필요, 브라우저에서 즉시 사용 |
| 샘플 DB 구성 | members(회원), books(도서), orders(주문) — 3개 테이블, 22개 행 |
| 테이블 생성 | CREATE TABLE 명령으로 구조 정의 후 INSERT로 데이터 삽입 |
| 첫 조회 | SELECT * FROM 테이블명; — 해당 테이블의 모든 데이터 출력 |
| 주의사항 | 세미콜론 필수 / 탭 닫으면 데이터 초기화 / .sql 파일 저장 권장 |
이제 SQL을 배울 무대가 완벽하게 준비되었습니다. 3강부터는 본격적으로 SQL 문법을 배우기 시작합니다. 다음 3강에서는 테이블과 데이터를 다양한 방법으로 살펴보는 방법을 알아보겠습니다. 어떤 열이 있는지, 데이터 타입은 무엇인지, 행이 몇 개인지 확인하는 기본 탐색 쿼리를 직접 실행해 볼 것입니다.
관련 주제
- 온라인 SQL 실습 환경
- SQLite
- 샘플 데이터베이스 구축
- SELECT 쿼리 실행
- 개발·프로그래밍
- 개발·프로그래밍 강의
- SQL·데이터베이스 입문 24강
- 무료강의
- 무료 온라인 강의
- NUGUNA
- 누구나
📚 시리즈 전체 공유
SQL·데이터베이스 입문 24강
이 강의가 속한 시리즈는 총 8강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.
댓글
불러오는 중...
