SQLite 설치 및 테스트 데이터를 생성

SQLite 설치 및 테스트 데이터를 생성

Database
SQLite 설치 및 테스트 데이터를 생성
Author

gabriel yang

Published

December 7, 2024


SQLite 설치 및 테스트 데이터를 생성하는 방법

SQLite는 간단하게 SQL을 배우고 테스트할 수 있는 강력한 데이터베이스 관리 시스템입니다. 이 글에서는 SQLite를 설치하고, 주어진 데이터를 테스트 테이블에 삽입하는 방법을 설명합니다.

1. SQLite 설치

SQLite는 설치가 매우 간단합니다. 운영 체제에 맞는 방법을 따라 주세요.

  • Windows:

    1. SQLite 다운로드 페이지에서 Precompiled Binaries for Windowssqlite-tools ZIP 파일을 다운로드합니다.
    2. ZIP 파일을 압축 해제한 후, sqlite3.exe 파일을 원하는 폴더에 저장합니다.
    3. 명령 프롬프트(cmd)를 열고 SQLite가 있는 폴더로 이동하여 sqlite3 명령어를 실행합니다.
  • macOS: SQLite는 기본적으로 macOS에 설치되어 있습니다. 터미널에서 아래 명령어로 확인하세요:

    sqlite3 --version

    설치되지 않았다면, Homebrew를 통해 설치할 수 있습니다:

    brew install sqlite
  • Linux: 대부분의 배포판에 SQLite가 포함되어 있습니다. 설치되지 않았다면 다음 명령어로 설치하세요:

    sudo apt update
    sudo apt install sqlite3

2. SQLite CLI 실행

SQLite를 실행하려면 터미널 또는 명령 프롬프트에서 아래 명령어를 입력합니다:

sqlite3

그러면 sqlite> 프롬프트가 나타나며 SQLite 환경에 접속됩니다.

3. 테스트 데이터베이스 생성

SQLite에서 새로운 데이터베이스를 생성하려면 아래 명령어를 사용합니다:

sqlite3 test.db

위 명령어는 test.db라는 이름의 데이터베이스 파일을 생성하고, 해당 파일에 접속합니다.

4. 테이블 생성

다음 SQL 명령어를 사용하여 직원 정보를 저장할 Employees 테이블을 생성합니다:

CREATE TABLE Employees (
    employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    department TEXT NOT NULL,
    salary REAL NOT NULL
);

SQLite에서는 .tables 명령어를 사용하여 데이터베이스 내의 모든 테이블 목록을 확인할 수 있습니다

sqlite> .tables
Employees

명령을 통해서 Emaployees 테이블이 생성된 것을 확인할 수 있습니다. 테이블이 생성한 명령의 각 부분에 대한 설명을 하나씩 풀어보겠습니다.

1. CREATE TABLE Employees

  • CREATE TABLE: 새로운 테이블을 생성하는 명령어입니다.
  • Employees: 생성할 테이블의 이름입니다. 이 테이블은 직원들의 정보를 저장하는 용도로 사용됩니다.

2. employee_id INTEGER PRIMARY KEY AUTOINCREMENT

  • employee_id: 이 열의 이름은 employee_id입니다. 이 열은 각 직원의 고유한 식별자(ID)를 저장합니다.
  • INTEGER: 이 열은 정수 타입의 데이터를 저장합니다.
  • PRIMARY KEY: 이 열은 테이블에서 각 행을 고유하게 식별하는 키 역할을 합니다. PRIMARY KEY는 각 employee_id 값이 고유하다는 것을 보장하며, 이 열의 값은 중복될 수 없습니다.
  • AUTOINCREMENT: AUTOINCREMENT 속성은 이 열의 값을 자동으로 증가시켜 새로운 행을 추가할 때마다 고유한 값을 자동으로 할당합니다. 예를 들어, 첫 번째 직원은 1, 두 번째 직원은 2와 같이 값이 자동으로 증가합니다.

3. name TEXT NOT NULL

  • name: 이 열은 직원의 이름을 저장합니다.
  • TEXT: 이 열은 문자열 데이터를 저장합니다.
  • NOT NULL: 이 제약 조건은 이 열에 NULL 값을 저장할 수 없다는 의미입니다. 즉, 모든 직원 데이터에는 반드시 이름이 있어야 합니다.

4. department TEXT NOT NULL

  • department: 이 열은 직원의 부서 정보를 저장합니다.
  • TEXT: 이 열은 문자열 데이터를 저장합니다.
  • NOT NULL: 이 제약 조건은 이 열에 NULL 값을 저장할 수 없다는 의미입니다. 즉, 직원은 반드시 부서 정보가 있어야 합니다.

5. salary REAL NOT NULL

  • salary: 이 열은 직원의 급여를 저장합니다.
  • REAL: 이 열은 실수형 데이터를 저장하며, 급여처럼 소수점을 포함하는 숫자 값을 저장할 때 사용됩니다.
  • NOT NULL: 이 제약 조건은 급여 값이 반드시 존재해야 하며 NULL 값이 될 수 없음을 의미합니다.

전체 설명

이 SQL 명령은 Employees라는 테이블을 생성하는 데 사용되며, 다음과 같은 데이터를 저장할 수 있는 테이블 구조를 만듭니다: - employee_id: 직원의 고유 ID (자동 증가) - name: 직원의 이름 (비어 있을 수 없음) - department: 직원의 부서 (비어 있을 수 없음) - salary: 직원의 급여 (비어 있을 수 없음)

이 테이블은 직원 정보 관리에 필요한 기본적인 구조를 제공하며, employee_id는 각 직원이 고유하게 식별될 수 있도록 돕습니다.

5. 테스트 데이터 삽입

주어진 데이터를 테이블에 삽입합니다:

INSERT INTO Employees (employee_id, name, department, salary) VALUES
(1, 'Alice', 'HR', 50000),
(2, 'Bob', 'IT', 60000),
(3, 'Charlie', 'IT', 55000),
(4, 'Diana', 'Sales', 45000);

데이터가 잘 삽입되었는지 확인하려면 다음 명령어를 실행해 보세요:

SELECT * FROM Employees;

결과

sqlite> SELECT * FROM Employees;
1|Alice|HR|50000.0
2|Bob|IT|60000.0
3|Charlie|IT|55000.0
4|Diana|Sales|45000.0

6. CSV 파일로 테스트 데이터 불러오기

CSV 파일을 사용해 데이터를 불러오는 방법도 매우 유용합니다. 예를 들어, 아래와 같은 CSV 파일 employee_data.csv를 준비했다고 가정해봅시다:

employee_id,name,department,salary
1,Alice,HR,50000
2,Bob,IT,60000
3,Charlie,IT,55000
4,Diana,Sales,45000

CSV 파일을 SQLite 테이블에 불러오기 위해서는 다음 명령어를 실행합니다:

.mode csv
.import employee_data.csv Employees

7. SQL 실습

이제 삽입된 데이터를 바탕으로 다양한 SQL 명령을 실행해볼 수 있습니다. 예를 들어: - 부서별 직원 조회: sql SELECT * FROM Employees WHERE department = 'IT'; 결과 sql sqlite> SELECT * FROM Employees WHERE department = 'IT'; 2|Bob|IT|60000.0 3|Charlie|IT|55000.0

  • 급여가 50000 이상인 직원 조회:

    SELECT * FROM Employees WHERE salary >= 50000;

    결과

    sqlite>   SELECT * FROM Employees WHERE salary >= 50000;
    1|Alice|HR|50000.0
    2|Bob|IT|60000.0
    3|Charlie|IT|55000.0
  • 급여 순으로 직원 정렬:

    SELECT * FROM Employees ORDER BY salary DESC;

    결과

    sqlite>   SELECT * FROM Employees ORDER BY salary DESC;
    2|Bob|IT|60000.0
    3|Charlie|IT|55000.0
    1|Alice|HR|50000.0
    4|Diana|Sales|45000.0

8. SQLite 세션 종료

작업을 마친 후, SQLite 셸을 종료하려면 아래 명령어를 입력하세요:

.exit