Perl MySQL创建表
时间:2019-11-20 08:52:38 来源:igfitidea点击:
简介:在本教程中,我们将向您展示如何使用Perl DBI API在MySQL数据库中创建表。
Perl MySQL创建表的步骤
在对数据库执行其他操作(例如,插入,更新,删除和查询数据)之前,您需要创建新表来存储数据。
要创建一个新表,请使用以下步骤:
连接到MySQL数据库。
通过调用数据库句柄对象的do()方法来执行CREATE TABLE语句。
断开与MySQL数据库的连接。
Perl MySQL创建表示例
我们将在perlmysqldb示例数据库中创建三个表:
链接:存储URL,包括link_id,标题,URL和目标。
标签:存储链接的标签,包括tag_id和tag。
link_tags:存储链接和标签表之间的关系,包含两个字段link_id和tag_id。
下图说明了这些表:
以下是创建表的Perl脚本:
#!/usr/bin/perl
use strict;
use warnings;
use v5.10; # for say() function
use DBI;
say "Perl MySQL Create Table Demo";
# MySQL database configurations
my $dsn = "DBI:mysql:perlmysqldb";
my $username = "root";
my $password = '';
# connect to MySQL database
my %attr = (PrintError=>0, RaiseError=>1);
my $dbh = DBI->connect($dsn,$username,$password, \%attr);
# create table statements
my @ddl = (
# create tags table
"CREATE TABLE tags (
tag_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
tag varchar(255) NOT NULL
) ENGINE=InnoDB;",
# create links table
"CREATE TABLE links (
link_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
title varchar(255) NOT NULL,
url varchar(255) NOT NULL,
target varchar(45) NOT NULL
) ENGINE=InnoDB;",
# create link_tags table
"CREATE TABLE link_tags (
link_id int(11) NOT NULL,
tag_id int(11) NOT NULL,
PRIMARY KEY (link_id,tag_id),
KEY fk_link_idx (link_id),
KEY fk_tag_idx (tag_id),
CONSTRAINT fk_tag FOREIGN KEY (tag_id)
REFERENCES tags (tag_id),
CONSTRAINT fk_link FOREIGN KEY (link_id)
REFERENCES links (link_id)
) ENGINE=InnoDB"
);
# execute all create table statements
for my $sql(@ddl){
$dbh->do($sql);
}
say "All tables created successfully!";
# disconnect from the MySQL database
$dbh->disconnect();
这个怎么运作。
首先,使用connect()方法创建与perlmysqldb数据库的连接。
接下来,定义一个包含三个CREATE TABLE语句的数组@ddl。
然后,调用数据库句柄对象的do()方法以在循环内执行每个CREATE TABLE语句。
我们经常使用do()方法执行不返回结果集的非选择语句。之后,显示一条消息,指示所有表已成功创建。
最后,断开与数据库的连接。
脚本的输出如下:
Perl MySQL Create Table Demo All tables created successfully!
现在,您可以检查perlmysqldb数据库以验证表是否已成功创建。
在本教程中,您学习了如何使用数据库句柄对象的do()方法从MySQL数据库中的Perl程序创建新表。

