소개
이 랩에서는 sqlite3 명령줄 도구를 사용하여 SQLite 데이터베이스 작업의 기본 사항을 배우게 됩니다. SQLite 는 초보자에게 이상적인 가볍고 파일 기반의 데이터베이스 시스템입니다. 데이터베이스를 생성하고, 테이블을 만들고, 데이터를 삽입하고, 데이터를 쿼리하고, 열을 추가하고, 데이터를 업데이트하고, 마지막으로 데이터베이스 파일을 제거하는 과정을 진행합니다. 시작해 봅시다!
이 랩에서는 sqlite3 명령줄 도구를 사용하여 SQLite 데이터베이스 작업의 기본 사항을 배우게 됩니다. SQLite 는 초보자에게 이상적인 가볍고 파일 기반의 데이터베이스 시스템입니다. 데이터베이스를 생성하고, 테이블을 만들고, 데이터를 삽입하고, 데이터를 쿼리하고, 열을 추가하고, 데이터를 업데이트하고, 마지막으로 데이터베이스 파일을 제거하는 과정을 진행합니다. 시작해 봅시다!
이 단계에서는 새 SQLite 데이터베이스 파일을 생성하고 sqlite3 명령줄 도구를 사용하여 해당 파일에 연결합니다.
LabEx VM 환경에서 터미널을 엽니다. 기본적으로 /home/labex/project 디렉토리에 있어야 합니다. 다음 명령을 실행하여 이를 확인합니다.
pwd
출력은 다음과 같아야 합니다.
/home/labex/project
이 디렉토리에 있지 않다면 다음 명령을 실행하여 이동합니다.
cd /home/labex/project
sqlite3 명령을 사용하여 mydatabase.db라는 새 SQLite 데이터베이스를 생성하고 연결합니다.
sqlite3 mydatabase.db
이 명령은 mydatabase.db 파일이 존재하지 않으면 생성하고 해당 파일에 대한 연결을 엽니다. SQLite 프롬프트가 표시됩니다.
SQLite version 3.x.x
Enter ".help" for usage hints.
sqlite>
sqlite3 명령은 SQLite 데이터베이스를 생성하고 연결하는 데 모두 사용됩니다. 지정된 데이터베이스 파일이 존재하지 않으면 SQLite 가 생성합니다. 이제 SQLite 환경 내에서 SQL 명령을 실행할 준비가 되었습니다.
이 단계에서는 mydatabase.db 데이터베이스 안에 users라는 테이블을 생성합니다.
SQLite 프롬프트에서 다음 SQL 명령을 사용하여 users라는 테이블을 생성합니다.
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
);
이 명령은 users 테이블의 구조를 정의합니다. id 열은 정수이며 기본 키 (primary key) 로, 각 사용자가 고유한 식별자를 갖도록 보장합니다. name 열은 비워둘 수 없는 텍스트 필드 (NOT NULL) 이며, age 열은 정수입니다.
CREATE TABLE 명령은 데이터베이스에서 테이블의 구조를 정의하는 데 사용되는 기본적인 SQL 명령입니다. PRIMARY KEY 제약 조건은 id 열이 각 행에 대해 고유한 값을 포함하도록 보장하며, NOT NULL 제약 조건은 name 열이 비어 있을 수 없도록 보장합니다.
이제 users 테이블을 생성했으므로 데이터를 삽입할 수 있습니다. 이는 테이블에 행 (레코드) 을 추가하는 것을 포함하며, 각 행은 사용자 및 해당 정보를 나타냅니다.
INSERT INTO 명령을 사용하여 다음 레코드를 users 테이블에 삽입합니다.
INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25);
INSERT INTO users (id, name, age) VALUES (2, 'Bob', 30);
INSERT INTO users (id, name, age) VALUES (3, 'Charlie', 22);
이 명령들은 users 테이블에 세 개의 새 행을 추가합니다. 각 행에는 id, name, age가 포함됩니다.
INSERT INTO 명령은 테이블에 새 행을 추가하는 데 사용됩니다. VALUES 절에 지정된 값은 테이블 이름 뒤의 괄호에 나열된 해당 열에 삽입됩니다.
이 단계에서는 SELECT 명령을 사용하여 users 테이블에서 데이터를 조회하는 방법을 배웁니다. 이를 통해 데이터베이스에서 특정 정보를 검색할 수 있습니다.
다음 SQL 명령을 사용하여 users 테이블에서 모든 데이터를 조회합니다.
SELECT * FROM users;
이 명령은 users 테이블의 모든 행에서 모든 열 (*) 을 선택합니다. 출력에는 이전 단계에서 삽입한 데이터가 표시됩니다. 다음과 같은 결과가 표시되어야 합니다.
1|Alice|25
2|Bob|30
3|Charlie|22
SELECT 명령은 데이터베이스에서 데이터를 검색하는 강력한 도구입니다. * 와일드카드 문자는 모든 열을 선택해야 함을 지정합니다. 열 이름을 쉼표로 구분하여 나열하여 특정 열을 선택할 수도 있습니다 (예: SELECT name, age FROM users;).
이 단계에서는 users 테이블에 email이라는 새 열을 추가한 다음 기존 레코드를 이메일 주소로 업데이트합니다.
ALTER TABLE 명령을 사용하여 users 테이블에 email이라는 새 열을 추가합니다.
ALTER TABLE users ADD COLUMN email TEXT;
이 명령은 users 테이블에 TEXT 타입의 email이라는 새 열을 추가합니다.
UPDATE 명령을 사용하여 각 사용자의 email 열을 업데이트합니다.
UPDATE users SET email = 'alice@example.com' WHERE id = 1;
UPDATE users SET email = 'bob@example.com' WHERE id = 2;
UPDATE users SET email = 'charlie@example.com' WHERE id = 3;
이 명령들은 각 사용자의 email 열을 해당 이메일 주소로 업데이트합니다.
users 테이블을 조회하여 업데이트된 데이터를 확인합니다.
SELECT * FROM users;
1|Alice|25|alice@example.com
2|Bob|30|bob@example.com
3|Charlie|22|charlie@example.com
ALTER TABLE 명령은 기존 테이블의 구조를 수정하는 데 사용됩니다. 이 경우 새 열을 추가하고 있습니다. UPDATE 명령은 테이블의 기존 데이터를 수정하는 데 사용됩니다. SET 절은 업데이트할 열과 새 값을 지정합니다. WHERE 절은 조건에 따라 업데이트할 행을 지정합니다.
이 단계에서는 SQLite 인터페이스를 종료한 다음 데이터베이스 파일을 제거합니다. SQLite 는 모든 데이터를 단일 파일에 저장하므로 데이터베이스를 제거하는 것은 rm 명령을 사용하여 파일을 삭제하는 것만큼 간단합니다. 이 작업은 영구적이므로 주의하십시오!
SQLite 프롬프트를 종료합니다.
.quit
/home/labex/project 디렉토리에 있는지 확인합니다. 다음 명령으로 확인합니다.
pwd
출력은 다음과 같아야 합니다.
/home/labex/project
그렇지 않다면 다음 명령을 사용하여 해당 디렉토리로 이동합니다.
cd /home/labex/project
rm 명령을 사용하여 mydatabase.db 파일을 삭제합니다.
rm mydatabase.db
삭제가 성공하면 아무런 출력도 없습니다.
디렉토리 내용을 다시 나열하여 파일이 제거되었는지 확인합니다.
ls
출력에서 더 이상 mydatabase.db가 보이지 않아야 하며, 이는 파일이 삭제되었음을 확인합니다.
.quit 명령은 SQLite 쉘을 종료하고 Linux 터미널로 돌아갑니다. rm 명령은 파일을 삭제하는 데 사용되는 표준 Linux 명령입니다. 이 경우 SQLite 데이터베이스의 모든 데이터와 구조를 포함하는 mydatabase.db 파일을 영구적으로 제거합니다.
이 실습에서는 sqlite3 명령줄 도구를 사용하여 SQLite 데이터베이스를 생성하고 관리하는 필수 기술을 배웠습니다. 데이터베이스를 생성하고, 테이블을 만들고, 데이터를 삽입하고, 데이터를 조회하고, 새 열을 추가하고, 데이터를 업데이트하고, 마지막으로 데이터베이스 파일을 제거했습니다. 이러한 단계는 SQLite 데이터베이스 작업을 위한 견고한 기반을 제공합니다.