Perl MySQL创建表

简介:在本教程中,我们将向您展示如何使用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程序创建新表。

日期:2019-11-20 08:52:38 来源:oir作者:oir