SQLite - Perl: Hướng dẫn cho người mới bắt đầu

Xin chào các pháp sư cơ sở dữ liệu tương lai! Tôi rất vui mừng được làm hướng dẫn viên cho bạn trong hành trình thú vị vào thế giới của SQLite và Perl. Như một người đã dạy khoa học máy tính trong nhiều năm, tôi có thể告诉你 rằng sự kết hợp này giống như bơ và jelly - đơn giản là ngon tuyệt! Hãy cuộn lên tay áo và nhảy vào nào!

SQLite - Perl

Cài đặt

Trước khi chúng ta có thể bắt đầu tạo ra phép màu cơ sở dữ liệu, chúng ta cần thiết lập các công cụ của mình. Hãy tưởng tượng này như việc chuẩn bị nhà bếp trước khi nấu một bữa ăn cao cấp.

  1. Đầu tiên, hãy chắc chắn rằng bạn đã cài đặt Perl trên hệ thống của mình. Bạn có thể kiểm tra điều này bằng cách mở terminal và gõ:
perl -v

Nếu bạn thấy thông tin phiên bản, bạn đã sẵn sàng!

  1. Tiếp theo, chúng ta cần cài đặt mô-đun DBI (Database Interface) và trình điều khiển SQLite. Mở terminal của bạn và gõ:
cpan install DBI
cpan install DBD::SQLite

Điều này có thể mất vài phút, vì vậy bạn có thể uống một tách cà phê trong khi chờ đợi.

API Giao diện DBI

Bây giờ chúng ta đã sẵn sàng với các nguyên liệu, hãy nhìn vào sách công thức - API Giao diện DBI. Đây là các hàm chúng ta sẽ sử dụng để tương tác với cơ sở dữ liệu SQLite của mình.

Dưới đây là bảng các phương thức DBI phổ biến nhất mà chúng ta sẽ sử dụng:

Phương thức Mô tả
connect() Thiết lập kết nối cơ sở dữ liệu
prepare() Chuẩn bị một câu lệnh SQL cho việc thực thi
execute() Thực thi một câu lệnh đã chuẩn bị
fetch() Lấy một hàng dữ liệu từ một câu lệnh SELECT
disconnect() Đóng kết nối cơ sở dữ liệu

Đừng lo lắng nếu những điều này có vẻ rối rắm bây giờ. Chúng ta sẽ khám phá từng phương thức này chi tiết khi chúng ta tiếp tục.

Kết nối tới cơ sở dữ liệu

Hãy bắt đầu bằng cách thiết lập kết nối với cơ sở dữ liệu SQLite của mình. Điều này giống như gõ cửa và lịch sự yêu cầu được vào.

#!/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 "Mở cơ sở dữ liệu thành công\n";

Hãy phân tích này:

  1. Chúng ta bắt đầu bằng cách nhập các mô-đun cần thiết.
  2. Chúng ta xác định trình điều khiển (SQLite) và tên cơ sở dữ liệu.
  3. Chúng ta tạo một chuỗi Nguồn dữ liệu (DSN).
  4. Chúng ta sử dụng DBI->connect() để thiết lập kết nối và lưu trữ nó trong $dbh.
  5. Nếu kết nối thành công, chúng ta in một thông báo thành công.

Tạo bảng

Bây giờ chúng ta đã vào, hãy tạo một bảng để lưu trữ dữ liệu. Hãy tưởng tượng này như việc tạo một bảng tính mới trong 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 "Bảng được tạo thành công\n";
}

Dưới đây là những gì đang xảy ra:

  1. Chúng ta định nghĩa câu lệnh SQL để tạo một bảng tên là COMPANY.
  2. Chúng ta sử dụng $dbh->do() để thực thi câu lệnh.
  3. Chúng ta kiểm tra xem thao tác có thành công hay không và in một thông báo phù hợp.

Hoạt động INSERT

Đã đến lúc thêm một số dữ liệu vào bảng của chúng ta. Điều này giống như điền vào các hàng của bảng tính.

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 "Các bản ghi được tạo thành công\n";

Trong đoạn mã này:

  1. Chúng ta tạo một câu lệnh INSERT SQL.
  2. Chúng ta thực thi nó bằng $dbh->do().
  3. Nếu thành công, chúng ta in một thông báo xác nhận.

Hoạt động SELECT

Bây giờ, hãy lấy dữ liệu của chúng ta. Điều này giống như đọc thông tin từ bảng tính.

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";
}

Dưới đây là phân tích:

  1. Chúng ta chuẩn bị câu lệnh SELECT bằng $dbh->prepare().
  2. Chúng ta thực thi câu lệnh với $sth->execute().
  3. Chúng ta sử dụng một vòng lặp while với $sth->fetchrow_array() để lấy và in mỗi hàng.

Hoạt động UPDATE

Đôi khi chúng ta cần thay đổi dữ liệu của mình. Điều này giống như chỉnh sửa một ô trong bảng tính.

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 "Tổng số hàng được cập nhật: $rv\n";
}

Trong đoạn mã này:

  1. Chúng ta tạo một câu lệnh UPDATE SQL.
  2. Chúng ta thực thi nó bằng $dbh->do().
  3. Chúng ta kiểm tra số lượng hàng bị ảnh hưởng và in kết quả.

Hoạt động DELETE

Cuối cùng, hãy học cách xóa dữ liệu. Điều này giống như xóa một hàng khỏi bảng tính.

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 "Tổng số hàng đã bị xóa: $rv\n";
}

Đoạn mã này theo cùng mẫu như hoạt động UPDATE của chúng ta:

  1. Chúng ta tạo một câu lệnh DELETE SQL.
  2. Chúng ta thực thi nó bằng $dbh->do().
  3. Chúng ta kiểm tra số lượng hàng bị ảnh hưởng và in kết quả.

Và thế là xong! Bạn đã học được những основ của việc làm việc với cơ sở dữ liệu SQLite bằng Perl. Nhớ rằng, thực hành là cách tốt nhất để trở nên hoàn hảo, vì vậy đừng ngần ngại thử nghiệm với các ví dụ này. Trước khi bạn biết điều gì, bạn sẽ dễ dàng tạo ra các ứng dụng cơ sở dữ liệu phức tạp!

Credits: Image by storyset