SQLite 데이터 다루기

SQLiteBeginner
지금 연습하기

소개

이 랩에서는 초보자에게 이상적인 경량 파일 기반 데이터베이스인 SQLite 에서 데이터를 다루는 기본적인 작업을 배우게 됩니다. LabEx VM 환경에서 실습을 통해 데이터베이스를 생성하고, 테이블을 설정하며, 데이터 삽입, 레코드 쿼리, 정보 업데이트, 항목 삭제와 같은 핵심 작업을 수행합니다. 이 단계별 가이드는 데이터베이스를 처음 접하는 사용자를 위해 맞춤화된 간단한 SQL 명령을 사용하여 데이터베이스 관리에 대한 탄탄한 기반을 구축하는 데 도움이 될 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 96%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

SQLite 데이터베이스 및 테이블 생성

이 첫 번째 단계에서는 SQLite 데이터베이스를 생성하고 데이터를 저장할 테이블을 설정합니다. SQLite 는 단일 파일에 데이터를 저장하는 경량 데이터베이스로, 학습 목적으로 사용하기 쉽습니다.

먼저 LabEx VM 에서 터미널을 엽니다. 기본 경로는 /home/labex/project입니다.

이제 mydb.sqlite라는 SQLite 데이터베이스를 생성해 보겠습니다. 다음 명령을 실행하여 데이터베이스 파일을 생성하고 SQLite 명령줄 도구를 엽니다.

sqlite3 mydb.sqlite

이제 SQLite 셸 내부에 있음을 나타내는 프롬프트가 표시됩니다.

SQLite version 3.x.x
Enter ".help" for usage hints.
sqlite>

다음으로, 기본 사용자 정보를 저장할 users라는 테이블을 생성합니다. 이 테이블에는 id (고유 식별자), name, email의 세 개의 열이 있습니다. sqlite> 프롬프트에서 다음 SQL 명령을 입력하고 Enter 키를 누릅니다.

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL
);

이 명령은 다음과 같이 users 테이블을 설정합니다.

  • id는 각 새 항목에 대해 자동으로 증가하는 정수입니다. PRIMARY KEY 제약 조건은 각 id가 고유하도록 보장하고, AUTOINCREMENT는 자동으로 증가하도록 합니다.
  • name은 비워둘 수 없는 텍스트 필드입니다 (NOT NULL).
  • email도 비워둘 수 없는 텍스트 필드입니다 (NOT NULL).

명령이 성공적으로 실행되면 아무런 출력도 표시되지 않습니다.

테이블에 데이터 삽입

이제 users 테이블을 생성했으므로, 여기에 데이터를 추가해 보겠습니다. 세 개의 사용자 레코드를 테이블에 삽입합니다.

sqlite> 프롬프트에서 다음 명령을 하나씩 실행하여 users 테이블에 세 개의 사용자 레코드를 삽입합니다.

INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@example.com');

이 명령은 users 테이블에 세 개의 행을 추가합니다. 각 새 항목마다 자동으로 증가하므로 id 열에 대한 값을 지정하지 않는다는 점에 유의하십시오.

  • INSERT INTO users (name, email)users 테이블의 nameemail 열에 데이터를 삽입함을 지정합니다.
  • VALUES ('Alice', 'alice@example.com')은 각 레코드에 대해 삽입할 값을 제공합니다.

데이터가 올바르게 추가되었는지 확인하려면 이 명령을 실행하여 테이블의 모든 레코드를 봅니다.

SELECT * FROM users;

예상 출력:

1|Alice|alice@example.com
2|Bob|bob@example.com
3|Charlie|charlie@example.com

이 출력은 각 레코드의 id, name, 및 email을 보여줍니다. SELECT * 명령은 지정된 테이블에서 모든 열을 검색합니다.

SELECT 쿼리로 데이터 조회

이 단계에서는 SELECT 문을 사용하여 테이블에서 데이터를 검색하는 방법을 배웁니다. 데이터 쿼리는 데이터베이스 작업의 핵심 기술이며, 저장된 정보를 보고 분석할 수 있게 해줍니다.

sqlite> 프롬프트에서 먼저 users 테이블의 모든 데이터를 검색해 보겠습니다. 다음 명령을 실행합니다.

SELECT * FROM users;

예상 출력:

1|Alice|alice@example.com
2|Bob|bob@example.com
3|Charlie|charlie@example.com

SELECT **는 "모든 열"을 의미하므로, 이 명령은 users 테이블의 모든 열과 행을 표시합니다.

다음으로, 표시할 특정 열을 선택할 수 있습니다. nameemail 열만 보려면 다음을 실행합니다.

SELECT name, email FROM users;

예상 출력:

Alice|alice@example.com
Bob|bob@example.com
Charlie|charlie@example.com

이 명령은 출력을 지정된 열로 제한하여 id를 생략합니다.

마지막으로, WHERE 절을 사용하여 조건을 통해 데이터를 필터링합니다. 'Alice'의 레코드만 보려면 다음을 실행합니다.

SELECT * FROM users WHERE name = 'Alice';

예상 출력:

1|Alice|alice@example.com

WHERE 절은 결과를 조건과 일치하는 행으로 좁힙니다. 이 경우 name이 'Alice'인 경우입니다.

  • SELECT * FROM usersusers 테이블에서 모든 열을 선택합니다.
  • WHERE name = 'Alice'name 열이 'Alice'와 같은 행만 포함하도록 결과를 필터링합니다.

테이블 레코드 업데이트

이제 UPDATE 문을 사용하여 테이블의 기존 데이터를 수정하는 방법을 배웁니다. 레코드 업데이트는 데이터베이스의 정보를 수정하거나 변경해야 할 때 중요합니다.

먼저, 업데이트할 내용을 확인하기 위해 users 테이블의 현재 데이터를 확인합니다. 다음을 실행합니다.

SELECT * FROM users;

예상 출력:

1|Alice|alice@example.com
2|Bob|bob@example.com
3|Charlie|charlie@example.com

이제 'Bob'의 이메일 주소를 bob.new@example.com으로 업데이트합니다. sqlite> 프롬프트에서 이 명령을 입력합니다.

UPDATE users SET email = 'bob.new@example.com' WHERE name = 'Bob';

명령이 성공하면 출력이 표시되지 않습니다. 이 명령은 name이 'Bob'인 행의 email 값을 변경합니다. WHERE 절은 일치하는 레코드만 업데이트되도록 합니다.

  • UPDATE usersusers 테이블을 업데이트함을 지정합니다.
  • SET email = 'bob.new@example.com'email 열의 새 값을 설정합니다.
  • WHERE name = 'Bob'name이 'Bob'인 행에만 업데이트가 적용되도록 필터링합니다.

테이블을 다시 쿼리하여 변경 사항을 확인합니다.

SELECT * FROM users;

예상 출력:

1|Alice|alice@example.com
2|Bob|bob.new@example.com
3|Charlie|charlie@example.com

Bob 의 이메일이 업데이트된 것을 확인할 수 있습니다.

테이블에서 레코드 삭제

이 마지막 단계에서는 DELETE 문을 사용하여 테이블에서 데이터를 제거하는 방법을 배웁니다. 레코드 삭제는 데이터베이스에서 오래되었거나 잘못된 데이터를 정리해야 할 때 필요합니다.

먼저, 삭제할 항목을 식별하기 위해 users 테이블의 현재 데이터를 봅니다. 다음을 실행합니다.

SELECT * FROM users;

예상 출력:

1|Alice|alice@example.com
2|Bob|bob.new@example.com
3|Charlie|charlie@example.com

이제 다음 명령을 실행하여 'Charlie'의 레코드를 삭제합니다.

DELETE FROM users WHERE name = 'Charlie';

명령이 성공하면 출력이 표시되지 않습니다. 이 명령은 name이 'Charlie'인 행을 제거합니다. WHERE 절은 지정된 레코드만 삭제되도록 합니다.

  • DELETE FROM usersusers 테이블에서 삭제함을 지정합니다.
  • WHERE name = 'Charlie'name이 'Charlie'인 행에만 삭제가 적용되도록 필터링합니다.

테이블을 다시 쿼리하여 삭제를 확인합니다.

SELECT * FROM users;

예상 출력:

1|Alice|alice@example.com
2|Bob|bob.new@example.com

Charlie 의 레코드가 더 이상 테이블에 없는 것을 확인할 수 있습니다.

요약

이 랩에서는 LabEx VM 환경 내에서 SQLite 로 데이터를 처리하는 데 필요한 필수 기술을 배웠습니다. SQLite 데이터베이스와 테이블을 생성하고, INSERT INTO 문을 사용하여 데이터를 삽입하고, SELECT로 정보를 쿼리하고, UPDATE로 레코드를 업데이트하고, DELETE를 사용하여 항목을 삭제했습니다. 이러한 실습을 통해 데이터베이스 관리에 대한 포괄적인 소개를 제공하여 SQLite 를 사용하여 데이터를 효과적으로 처리할 수 있는 기본적인 지식을 갖추게 되었습니다.