SQLite - Perl: 초보자 가이드
안녕하세요, 미래의 데이터베이스 마법사 여러분! SQLite와 Perl의 세계로 가는 흥미로운 여정에서 여러분의 안내자로서 기쁜 마음입니다. 컴퓨터 과학을 가르쳐온 경험이 많은 사람으로서, 이 조합은 마치 펜타치와 jelly처럼 - 정말 맛있답니다! 그麼, 손을 불끈 다물고 시작해보겠습니다!
설치
데이터베이스 마법을 만들기 전에 도구를 준비해야 합니다. 이를 마치 고급 요리를하기 전에 주방을 준비하는 것과 같이 생각하면 됩니다.
- 먼저 시스템에 Perl이 설치되어 있는지 확인하세요. 터미널을 엽니다고 다음을 타이핑하세요:
perl -v
버전 정보가 보이면 준비가 되었습니다!
- 그다음, 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";
이를 해부해보면:
- 먼저 필요한 모듈을 가져옵니다.
- 드라이버(SQLite)와 데이터베이스 이름을 지정합니다.
- 데이터 소스 이름(DSN) 문자열을 생성합니다.
-
DBI->connect()
를 사용하여 연결을 설정하고$dbh
에 저장합니다. - 연결이 성공하면 성공 메시지를 출력합니다.
테이블 생성
이제 우리는 안에 들어왔으니, 데이터를 저장할 테이블을 생성해보겠습니다. 이는 마치 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";
}
이 작업에서는 다음이 일어납니다:
- 우리는 테이블 이름이 COMPANY인 테이블을 생성하는 SQL 문장을 정의합니다.
- 우리는
$dbh->do()
를 사용하여 문장을 실행합니다. - 작업이 성공했는지 확인하고 적절한 메시지를 출력합니다.
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";
이 코드에서는 다음이 일어납니다:
- 우리는 SQL INSERT 문장을 만듭니다.
- 우리는
$dbh->do()
를 사용하여 문장을 실행합니다. - 성공하면 확인 메시지를 출력합니다.
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";
}
이 작업에서는 다음이 일어납니다:
- 우리는 SELECT 문장을 준비합니다.
- 우리는
$sth->execute()
를 사용하여 문장을 실행합니다. - 우리는 루프를 사용하여 각 행을检索하고 출력합니다.
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";
}
이 코드에서는 다음이 일어납니다:
- 우리는 SQL UPDATE 문장을 만듭니다.
- 우리는
$dbh->do()
를 사용하여 문장을 실행합니다. - 몇 개의 행이 영향을 받았는지 확인하고 결과를 출력합니다.
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 연산과 같은 패턴을 따릅니다:
- 우리는 SQL DELETE 문장을 만듭니다.
- 우리는
$dbh->do()
를 사용하여 문장을 실행합니다. - 몇 개의 행이 영향을 받았는지 확인하고 결과를 출력합니다.
이제 SQLite 데이터베이스와 Perl을 사용하여 기본 작업을 배웠습니다. 연습이 완벽을 만드는 것을 기억하세요, 그麼 이 예제들을 실험해보세요. 당신은 곧 복잡한 데이터베이스 애플리케이션을 쉽게 만들 수 있을 것입니다!
Credits: Image by storyset