SQLite - INSERT 쿼리

안녕하세요, SQL 열정가 여러분! 오늘 우리는 SQLite와 그것의 INSERT 쿼리로 인해 신나는 세계로 뛰어들어 보겠습니다. 여러분의 친절한 이웃 컴퓨터 교사로서, 이 여정을 안내해 드리게 되어 기쁩니다. 프로그래밍에 처음이라면 걱정하지 마세요 - 우리는 기본부터 시작하여 차근차근 올라갈 것입니다. 그러니 커피(또는 차, 당신이 좋아하는 것이라면)를 한 잔 마시고, 시작해 보겠습니다!

SQLite - INSERT Query

INSERT 쿼리 이해하기

INSERT 쿼리는 데이터베이스 파티의 문을 여는 사람과 같습니다. 데이터베이스 테이블에 새로운 데이터를 추가하는 역할을 합니다. 새로운 정보 클럽에 새로운 손님을 소개하는 것을 생각해 보세요.

기본 문법

가장 간단한 형태의 INSERT 쿼리는 다음과 같습니다:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

각 부분의 의미는 다음과 같습니다:

  • INSERT INTO: SQLite에 새로운 데이터를 추가하고 싶다고 알리는 방법입니다.
  • table_name: 데이터를 추가할 테이블의 이름입니다.
  • (column1, column2, ...): 새로운 데이터로 채울 열입니다.
  • VALUES: 추가할 실제 데이터를 소개하는 키워드입니다.
  • (value1, value2, ...): 각 열에 해당하는 값을 나열합니다.

간단한 예제

students라는 테이블이 있으며, id, name, age 열이 있습니다. 새로운 학생을 추가하는 방법은 다음과 같습니다:

INSERT INTO students (id, name, age)
VALUES (1, 'John Doe', 20);

이 쿼리는 students 테이블에 ID가 1, 이름이 "John Doe", 나이가 20인 새로운 행을 추가합니다.

여러 행 추가하기

이제 한 학급의 학생을 등록하는 상황을 상상해 보세요. 각 학생에 대해 별도의 INSERT 문을 작성하고 싶지 않을 것입니다. 좋은 소식! SQLite는 한 번에 여러 행을 추가할 수 있습니다:

INSERT INTO students (id, name, age)
VALUES 
    (2, 'Jane Smith', 22),
    (3, 'Bob Johnson', 21),
    (4, 'Alice Brown', 23);

이 단일 쿼리는 테이블에 세 명의 새로운 학생을 추가합니다. 효율적이죠?

열을 지정하지 않고 데이터 추가하기

때로는 테이블의 모든 열에 데이터를 추가하고 싶을 수 있습니다. 이 경우 열 이름을 지정할 필요가 없습니다:

INSERT INTO students
VALUES (5, 'Charlie Wilson', 24);

하지만 조심해야 합니다! 이 작업은 모든 열에 대해 값을 제공하고, 올바른 순서로 제공해야 합니다. 퍼즐을 풀 때처럼, 모든 조각이 딱 맞아야 합니다.

기본 값을 사용하기

SQLite는 테이블을 생성할 때 열에 기본 값을 설정할 수 있습니다. 입력 시 해당 열에 값이 지정되지 않으면 SQLite가 기본 값을 사용합니다.

students 테이블에 status 열이 기본 값 'Active'을 가지고 있다고 가정해 봅시다:

INSERT INTO students (id, name, age)
VALUES (6, 'David Lee', 22);

이 경우 David Lee의 status는 자동으로 'Active'이 됩니다.

다른 테이블에서 데이터 추가하기

이제 더 흥미로운 부분으로 넘어가겠습니다! SQLite는 하나의 테이블에서 다른 테이블로 데이터를 추가할 수 있습니다. 여러 관련 테이블을 다루는 경우 이는 매우 유용합니다.

기본 문법

INSERT INTO table1 (column1, column2, ...)
SELECT column1, column2, ...
FROM table2
WHERE condition;

실용적인 예제

studentsnew_enrollments라는 두 개의 테이블이 있다고 가정해 봅시다. new_enrollments 테이블에 등록된 모든 학생을 students 테이블에 추가하고 싶습니다:

INSERT INTO students (name, age)
SELECT student_name, student_age
FROM new_enrollments
WHERE enrollment_date = '2023-09-01';

이 쿼리는 new_enrollments 테이블에서 2023년 9월 1일에 등록한 모든 학생을 students 테이블에 추가합니다.

베스트 프랙티스와 팁

  1. 데이터를 항상 확인하세요: 입력하기 전에 데이터가 올바르고 적절한 형식인지 확인하세요.
  2. 트랜잭션을 사용하세요: 여러 개의 삽입 작업을 할 때는 트랜잭션으로 감싸세요. 하나가 실패하면 모두가 통과하지 않습니다.
  3. 열 유형에 주의하세요: 추가하는 데이터가 테이블의 열 유형과 일치하는지 확인하세요.
  4. 플레이스홀더를 사용하세요: 사용자 입력과 함께 작업할 때는 SQL 인젝션 공격을 방지하기 위해 플레이스홀더를 사용하세요.
  5. 오류를 부드럽게 처리하세요: 항상 잠재적인 오류에 대비하고 적절히 처리하세요.

일반 INSERT 방법

다음은 우리가 논의한 일반적인 INSERT 방법을 요약한 표입니다:

방법 설명 예제
기본 INSERT 단일 행 추가 INSERT INTO students (id, name) VALUES (1, 'John');
여러 행 INSERT 한 번에 여러 행 추가 INSERT INTO students VALUES (2, 'Jane'), (3, 'Bob');
열을 지정하지 않는 INSERT 모든 열에 대해 데이터 추가 INSERT INTO students VALUES (4, 'Alice', 20);
기본 값 사용 INSERT 지정되지 않은 열에 기본 값 사용 INSERT INTO students (id, name) VALUES (5, 'Charlie');
SELECT에서 INSERT 다른 테이블에서 데이터 추가 INSERT INTO students SELECT * FROM new_students;

결론

이제 여러분은 SQLite INSERT 쿼리의 세계를 여행한 경험이 있습니다. 간단한 삽입에서 더 복잡한 작업까지, 여러분은 데이터베이스를 훌륭하게 채울 수 있는 도구를 가지게 되었습니다.

기억하시오, 연습이 완벽을 이루는 열쇠입니다. 안전한 환경에서 이 쿼리들을 실험해 보세요. 누가 알겠습니까? 자신만의 멋진 트릭을 발견할 수도 있습니다!

행복하게 코딩하시고, 데이터베이스가 항상 잘 채워지고 오류가 없기를 바랍니다!

Credits: Image by storyset