SQLite - 명령어: 초보자를 위한 친절한 가이드
안녕하세요, 데이터베이스 열정가 되고자 하는 분들! SQLite 명령어의 세계로 여러분을 안내하게 되어 기쁩니다. 컴퓨터 과학을 가르친 지 오래된 저는 SQLite가 데이터베이스 세계에서 친절한 강아지似的하다고 말씀드릴 수 있습니다 - 접근하기 쉽고, 놀기 재미있고, 잘 알아보면 상당히 충성적입니다. 그럼 시작해보겠습니다!
SQLite 명령어 이해하기
자세히 알기 전에 잠시 SQLite 명령어에 대해 이해해보겠습니다. SQLite 명령어를 데이터베이스와 소통하는 언어라고 생각해보세요. 영어를 사용하여 도서관 사서에게 책을 찾아달라고 요청하는 것처럼, SQLite 명령어를 사용하여 데이터베이스에 데이터를 저장하거나 검색하거나 조작합니다.
기본 SQLite 명령어
그럼 가장 일반적인 SQLite 명령어 몇 가지를 시작해보겠습니다. 저는 이들을 SQLite의 "빵과 버터"라고 부르고 싶습니다 - 자주 사용할 것입니다!
명령어 | 설명 | 예제 |
---|---|---|
CREATE TABLE | 새로운 테이블 생성 | CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER); |
INSERT | 테이블에 새로운 데이터 추가 | INSERT INTO students (name, age) VALUES ('Alice', 20); |
SELECT | 테이블에서 데이터 검색 | SELECT * FROM students; |
UPDATE | 기존 데이터 수정 | UPDATE students SET age = 21 WHERE name = 'Alice'; |
DELETE | 테이블에서 데이터 제거 | DELETE FROM students WHERE name = 'Alice'; |
이제 각 명령어를 몇 가지 예제와 함께 설명해보겠습니다:
CREATE TABLE
CREATE TABLE students (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
이 명령어는 "students"라는 새로운 테이블을 생성합니다. 새로운 파일 캐비닛을 사무실에 설치하는 것과 같습니다. 각 학생은 고유한 ID(사회 보장 번호처럼), 이름, 나이를 가집니다.
INSERT
INSERT INTO students (name, age) VALUES ('Alice', 20);
INSERT INTO students (name, age) VALUES ('Bob', 22);
이 명령어는 테이블에 새로운 학생을 추가합니다. 인덱스 카드를 작성하고 파일 캐비닛에 넣는 것과 같습니다.
SELECT
SELECT * FROM students;
이 명령어는 테이블에서 모든 데이터를 검색합니다. 파일 캐비닛을 열고 모든 인덱스 카드를 한 번에 확인하는 것과 같습니다.
SELECT name FROM students WHERE age > 21;
이 명령어는 21세 이상인 학생들의 이름만 검색합니다. 미국에서는 이들이 술을 마실 수 있는 연령입니다!
UPDATE
UPDATE students SET age = 21 WHERE name = 'Alice';
이 명령어는 Alice의 나이를 21로 수정합니다. 생일이었을 수도 있습니다! Alice의 인덱스 카드에 나이를 펜으로 업데이트하는 것과 같습니다.
DELETE
DELETE FROM students WHERE name = 'Bob';
이 명령어는 Bob을 테이블에서 제거합니다. Bob이 졸업했을 수도 있습니다! Bob의 인덱스 카드를 파일 캐비닛에서 꺼내고 셔딩하는 것과 같습니다.
출력 형식
이제 기본적인 내용을 다루었으므로, 출력을 예쁘게 보이게 만드는 방법에 대해 이야기해보겠습니다. 데이터가 없으면 어떤 의미가 있을까요?
.mode 명령어
SQLite에는 출력을 표시하는 방법을 변경하는 특별한 명령어 .mode
가 있습니다. 가장 유용한 몇 가지 모드를 소개하겠습니다:
모드 | 설명 |
---|---|
column | 출력을 열로 표시 |
line | 각 행의 데이터를 별도의 줄에 표시 |
csv | 데이터를 CSV 형식으로 출력 |
html | 데이터를 HTML 테이블로 출력 |
이제 이들을 실제로 사용해보겠습니다:
.mode column
SELECT * FROM students;
이 명령어는 학생 데이터를 정리된 열로 표시합니다.
.mode line
SELECT * FROM students;
이 명령어는 각 학생의 정보를 별도의 줄에 표시합니다.
.mode csv
SELECT * FROM students;
이 명령어는 데이터를 스프레드시트 소프트웨어(예: Excel)로 가져가기 쉬운 형식으로 출력합니다.
.header 명령어
또 다른 유용한 형식화 명령어는 .header
입니다. ON으로 설정하면 출력의 상단에 열 이름을 표시합니다.
.header ON
.mode column
SELECT * FROM students;
이 명령어는 데이터를 열로 표시하고, 헤더를 포함하여 각 데이터 항목이 무엇을 의미하는지 명확하게 합니다.
sqlite_master 테이블
이제 뒤의 커튼을 걷어내고 SQLite가 모든 테이블과 색인을 어떻게 관리하는지 살펴보겠습니다. SQLite는 sqlite_master
라는 특별한 테이블을 사용하여 이를 수행합니다.
sqlite_master
의 내용을 보려면 다음 명령어를 사용할 수 있습니다:
SELECT * FROM sqlite_master;
이 명령어는 데이터베이스의 모든 테이블과 색인, 그리고 그들을 만드는 SQL 문을 보여줍니다. 데이터베이스의 전체 지도를 가지는 것과 같습니다!
sqlite_master
의 각 열은 다음과 같은 의미를 가집니다:
열 | 설명 |
---|---|
type | 객체의 유형(테이블, 색인, 뷰, 트리거) |
name | 객체의 이름 |
tbl_name | 객체와 관련된 테이블 |
rootpage | 객체의 루트 페이지 번호 |
sql | 객체를 만드는 SQL 문 |
sqlite_master
를 이해하면 데이터베이스의 구조와 연결을 X-ray로 보는 것과 같습니다. 모든 것이 어떻게 구성되고 연결되는지 보여줍니다.
결론
이제 여러분은 SQLite 명령어의 기본을 다루었고, 출력을 예쁘게 보이게 만드는 방법을 배웠으며, sqlite_master
테이블을 통해 데이터베이스의 뒤에 숨겨진 것을 살펴보았습니다. SQLite를 배우는 것은 자전거 타는 것과 같습니다 - 처음에는 흔들릴 수 있지만, 연습을 하면 데이터베이스를 자유롭게 타고 다니게 될 것입니다!
계속 실험하고, 계속 쿼리를 작성하며, 가장 중요한 것은 데이터를 즐기는 것입니다. 얼마 지나지 않아 여러분이 친구들 사이에서 SQLite 마법사가 될 것입니다. 행복하게 코딩하세요!
Credits: Image by storyset