[SQL 실습 #1] 학생 정보 데이터베이스 설계
가장 간단한 테이블 설계부터 시작. CREATE TABLE, INSERT, SELECT 기본 문법을 배우고 첫 데이터베이스를 완성합니다. DB Browser for SQLite 실습 포함.
시작 전, 워밍업
학생 명단을 엑셀에서 관리하던 것을 데이터베이스로 옮긴다면?
학번, 이름, 나이, 학과. 단순해 보이는 이 정보들.
어떻게 저장하고, 어떻게 꺼내 쓸까?
시작하며 - 첫 번째 테이블
이전 글에서 데이터베이스가 무엇인지 알아봤습니다.
이제 직접 만들어볼 차례예요.
첫 실습 주제는 학생 정보 데이터베이스입니다.
가장 간단한 예제이면서도, 데이터베이스의 핵심 개념을 모두 담고 있어요.
"학번, 이름, 나이, 학과"
이 4가지 정보만으로도 완벽한 데이터베이스를 만들 수 있습니다.
30분이면 충분합니다. 직접 해보면서 배워봅시다.
DB Browser for SQLite 공식 웹사이트 - OS에 맞는 버전을 다운로드하세요
DB Browser for SQLite 설치하기
우리가 사용할 도구는 DB Browser for SQLite입니다.
무료이고, 설치도 간단하며, 초보자가 사용하기 딱 좋아요.
설치 과정
- 공식 웹사이트에 접속
- 본인의 OS에 맞는 버전 다운로드 (Windows, macOS, Linux)
- 설치 파일 실행 후 기본 설정으로 설치
- 프로그램 실행
설치가 완료되면 이런 화면이 나타납니다.
깔끔한 인터페이스 - 초보자도 쉽게 사용할 수 있습니다
새 데이터베이스 만들기
이제 첫 번째 데이터베이스를 만들어봅시다.
1단계: New Database 버튼 클릭
좌측 상단의 "New Database" 버튼을 클릭합니다.
좌측 상단 'New Database' 클릭
2단계: 파일 저장
파일 이름을 students.db로 입력하고 저장합니다.
어디에 저장해도 상관없어요. 찾기 쉬운 곳에 저장하세요.
3단계: 빈 데이터베이스 확인
빈 데이터베이스가 생성되었습니다.
이제 여기에 테이블을 만들 차례예요.
테이블 설계하기 (ERD)
코드를 작성하기 전에, 먼저 설계도를 그려봅시다.
이걸 ERD (Entity Relationship Diagram)라고 해요.
학생 테이블 설계
Entity: 학생 (Student)
Attributes (속성):
- student_id (학번) - 각 학생을 구분하는 고유 번호 → Primary Key
- name (이름) - 학생 이름
- age (나이) - 학생 나이
- major (학과) - 소속 학과
Student 테이블 설계도 - 4개 컬럼으로 구성
Primary Key란?
각 행(row)을 고유하게 식별하는 값입니다.
학번이 같은 학생은 절대 없어야 하므로, student_id를 Primary Key로 지정합니다.
CREATE TABLE - 테이블 생성
이제 SQL 코드로 테이블을 만들어봅시다.
Execute SQL 탭으로 이동
DB Browser 상단의 "Execute SQL" 탭을 클릭합니다.
SQL 코드 입력
CREATE TABLE students (
student_id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER,
major TEXT
);
코드 설명:
CREATE TABLE students- "students"라는 이름의 테이블 생성student_id INTEGER PRIMARY KEY- 정수형, 고유 식별자name TEXT NOT NULL- 문자형, 필수 입력 (NULL 불가)age INTEGER- 정수형, 선택 입력major TEXT- 문자형, 선택 입력
실행하기
코드를 입력했다면, ▶ 실행 버튼을 클릭합니다.
Execute SQL 탭에서 쿼리 입력 후 실행 버튼 클릭
성공 확인
좌측 Database Structure를 보면,
students 테이블이 생성된 것을 확인할 수 있습니다.
좌측 Database Structure에 students 테이블이 나타남
INSERT - 데이터 입력하기
빈 테이블에 데이터를 넣어봅시다.
SQL 코드
INSERT INTO students (student_id, name, age, major)
VALUES
(1, '김철수', 20, '컴퓨터공학'),
(2, '이영희', 22, '경영학'),
(3, '박민수', 21, '전자공학');
코드 설명:
INSERT INTO students- students 테이블에 데이터 삽입VALUES- 삽입할 값들 나열- 각 괄호 () 안의 값들이 한 행(row)이 됩니다
결과 확인
실행 후, Browse Data 탭으로 이동하면
입력한 학생 3명의 정보가 표시됩니다.
Browse Data 탭에서 입력한 데이터 확인
SELECT - 데이터 조회하기
이제 데이터를 꺼내보는 방법을 배워봅시다.
전체 데이터 조회
SELECT * FROM students;
*는 "모든 컬럼"을 의미합니다.
즉, students 테이블의 모든 데이터를 보여달라는 뜻이에요.
특정 컬럼만 조회
SELECT name, major FROM students;
이름과 학과만 보고 싶다면, 원하는 컬럼명을 나열하면 됩니다.
조건부 조회 (WHERE)
SELECT * FROM students WHERE age >= 21;
WHERE 뒤에 조건을 붙이면, 조건에 맞는 데이터만 필터링됩니다.
위 코드는 "나이가 21세 이상인 학생만 보여줘"라는 의미예요.
조건에 맞는 학생만 필터링된 결과 (age >= 21)
축하합니다!
여러분은 방금 첫 번째 데이터베이스를 완성했습니다.
배운 내용 정리:
- ✅ CREATE TABLE - 테이블 생성
- ✅ INSERT - 데이터 입력
- ✅ SELECT - 데이터 조회
- ✅ WHERE - 조건 필터링
- ✅ Primary Key - 고유 식별자 개념
실생활 응용
이 구조를 응용하면 다양한 정보를 관리할 수 있습니다.
예를 들어:
- 반려동물 정보: pet_id, name, species, birth_date, weight
- 식물 관리: plant_id, name, type, last_watered, location
- 독서 기록: book_id, title, author, finished_date, rating
레오파드 게코를 키우신다면?
gecko_id, name, morph, hatch_date, current_weight같은 컬럼으로
개체 정보를 체계적으로 관리할 수 있어요.
다음 글 예고
다음 실습에서는 도서관 대출 시스템을 만들어봅니다.
이번에는 테이블이 하나가 아니라 여러 개예요.
1:N 관계라는 중요한 개념을 배우게 됩니다.
"한 회원이 여러 책을 빌릴 수 있다" - 이런 관계를 데이터베이스로 어떻게 표현할까요?
다음 글에서 만나요! 👋
