SQLite - Perl: 초보자 가이드

안녕하세요, 미래의 데이터베이스 마법사 여러분! SQLite와 Perl의 세계로 가는 흥미로운 여정에서 여러분의 안내자로서 기쁜 마음입니다. 컴퓨터 과학을 가르쳐온 경험이 많은 사람으로서, 이 조합은 마치 펜타치와 jelly처럼 - 정말 맛있답니다! 그麼, 손을 불끈 다물고 시작해보겠습니다!

SQLite - Perl

설치

데이터베이스 마법을 만들기 전에 도구를 준비해야 합니다. 이를 마치 고급 요리를하기 전에 주방을 준비하는 것과 같이 생각하면 됩니다.

  1. 먼저 시스템에 Perl이 설치되어 있는지 확인하세요. 터미널을 엽니다고 다음을 타이핑하세요:
perl -v

버전 정보가 보이면 준비가 되었습니다!

  1. 그다음, DBI(데이터베이스 인터페이스) 모듈과 SQLite 드라이버를 설치해야 합니다. 터미널을 엽고 다음을 타이핑하세요:
cpan install DBI
cpan install DBD::SQLite

이 작업은 몇 분이 걸릴 수 있습니다. 기다리는 동안 커피를 한 잔 마시세요.

DBI 인터페이스 API

이제 우리는 재료를 준비했으니, 레시피 책을 펼쳐보겠습니다 - DBI 인터페이스 API. 이는 우리가 SQLite 데이터베이스와 상호작용할 때 사용할 기능들입니다.

다음은 우리가 사용할 가장 일반적인 DBI 메서드 표입니다:

메서드 설명
connect() 데이터베이스 연결을 설정합니다
prepare() SQL 문장을 실행 준비합니다
execute() 준비된 문장을 실행합니다
fetch() SELECT 문장에서 데이터 행을检索합니다
disconnect() 데이터베이스 연결을 닫습니다

이제 이 메서드들이 혼란스러울 수 있지만, 걱정 마세요. 우리는 각 메서드를 자세히 탐구해 나갈 것입니다.

데이터베이스 연결

먼저 SQLite 데이터베이스에 연결해보겠습니다. 이는 마치 문을 두드리고 조용히 들어가고자 하는 것과 같습니다.

#!/usr/bin/perl
use strict;
use warnings;
use DBI;

my $driver   = "SQLite";
my $database = "test.db";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "";
my $password = "";

my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })
or die $DBI::errstr;

print "데이터베이스 성공적으로 열렸습니다\n";

이를 해부해보면:

  1. 먼저 필요한 모듈을 가져옵니다.
  2. 드라이버(SQLite)와 데이터베이스 이름을 지정합니다.
  3. 데이터 소스 이름(DSN) 문자열을 생성합니다.
  4. DBI->connect()를 사용하여 연결을 설정하고 $dbh에 저장합니다.
  5. 연결이 성공하면 성공 메시지를 출력합니다.

테이블 생성

이제 우리는 안에 들어왔으니, 데이터를 저장할 테이블을 생성해보겠습니다. 이는 마치 Excel에서 새로운 스프레드시트를 만드는 것과 같습니다.

my $stmt = qq(CREATE TABLE COMPANY
(ID INT PRIMARY KEY     NOT NULL,
NAME           TEXT    NOT NULL,
AGE            INT     NOT NULL,
ADDRESS        CHAR(50),
SALARY         REAL););

my $rv = $dbh->do($stmt);
if($rv < 0) {
print $DBI::errstr;
} else {
print "테이블 성공적으로 생성되었습니다\n";
}

이 작업에서는 다음이 일어납니다:

  1. 우리는 테이블 이름이 COMPANY인 테이블을 생성하는 SQL 문장을 정의합니다.
  2. 우리는 $dbh->do()를 사용하여 문장을 실행합니다.
  3. 작업이 성공했는지 확인하고 적절한 메시지를 출력합니다.

INSERT 연산

이제 테이블에 데이터를 추가해보겠습니다. 이는 마치 스프레드시트의 행을 채우는 것과 같습니다.

my $stmt = qq(INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 ));

my $rv = $dbh->do($stmt) or die $DBI::errstr;
print "레코드 성공적으로 생성되었습니다\n";

이 코드에서는 다음이 일어납니다:

  1. 우리는 SQL INSERT 문장을 만듭니다.
  2. 우리는 $dbh->do()를 사용하여 문장을 실행합니다.
  3. 성공하면 확인 메시지를 출력합니다.

SELECT 연산

이제 데이터를检索해보겠습니다. 이는 마치 스프레드시트에서 정보를 읽는 것과 같습니다.

my $stmt = qq(SELECT id, name, address, salary from COMPANY;);
my $sth = $dbh->prepare( $stmt );
my $rv = $sth->execute() or die $DBI::errstr;

if($rv < 0) {
print $DBI::errstr;
}

while(my @row = $sth->fetchrow_array()) {
print "ID = ". $row[0] . "\n";
print "NAME = ". $row[1] ."\n";
print "ADDRESS = ". $row[2] ."\n";
print "SALARY = ". $row[3] ."\n\n";
}

이 작업에서는 다음이 일어납니다:

  1. 우리는 SELECT 문장을 준비합니다.
  2. 우리는 $sth->execute()를 사용하여 문장을 실행합니다.
  3. 우리는 루프를 사용하여 각 행을检索하고 출력합니다.

UPDATE 연산

때로는 데이터를 변경해야 합니다. 이는 마치 스프레드시트의 셀을 수정하는 것과 같습니다.

my $stmt = qq(UPDATE COMPANY set SALARY = 25000.00 where ID=1;);
my $rv = $dbh->do($stmt) or die $DBI::errstr;

if( $rv < 0 ) {
print $DBI::errstr;
} else {
print "총 수정된 행 수: $rv\n";
}

이 코드에서는 다음이 일어납니다:

  1. 우리는 SQL UPDATE 문장을 만듭니다.
  2. 우리는 $dbh->do()를 사용하여 문장을 실행합니다.
  3. 몇 개의 행이 영향을 받았는지 확인하고 결과를 출력합니다.

DELETE 연산

마지막으로 데이터를 제거하는 방법을 배워보겠습니다. 이는 마치 스프레드시트의 행을 지우는 것과 같습니다.

my $stmt = qq(DELETE from COMPANY where ID=2;);
my $rv = $dbh->do($stmt) or die $DBI::errstr;

if( $rv < 0 ) {
print $DBI::errstr;
} else {
print "총 지워진 행 수: $rv\n";
}

이 코드는 UPDATE 연산과 같은 패턴을 따릅니다:

  1. 우리는 SQL DELETE 문장을 만듭니다.
  2. 우리는 $dbh->do()를 사용하여 문장을 실행합니다.
  3. 몇 개의 행이 영향을 받았는지 확인하고 결과를 출력합니다.

이제 SQLite 데이터베이스와 Perl을 사용하여 기본 작업을 배웠습니다. 연습이 완벽을 만드는 것을 기억하세요, 그麼 이 예제들을 실험해보세요. 당신은 곧 복잡한 데이터베이스 애플리케이션을 쉽게 만들 수 있을 것입니다!

Credits: Image by storyset