Perl MySQL Create Table

摘要:在本教程中,我们将向您展示如何使用 Perl DBI API 在 MySQL 数据库中创建表。

Perl MySQL建表步骤

在对数据库执行任何其他操作(例如插入更新删除查询数据)之前,您需要创建新表来存储数据。

要创建新表,请使用以下步骤:

  1. 连接到 MySQL 数据库。
  2. 通过调用数据库句柄对象的do()方法来执行CREATE TABLE 语句
  3. 断开与 MySQL 数据库的连接。

Perl MySQL 创建表示例

我们将在perlmysqldb示例数据库中创建三个表:

  • links :存储 URL,包括 link_id、标题、URL 和目标。
  • Tags :存储链接的标签,包括 tag_id 和 tag。
  • link_tags :存储links和tags表之间的关系,包含两个字段link_id和tag_id。

下图说明了这些表:

Perl MySQL Create Table - Sample Tables

以下是创建表的 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();Code language: Perl (perl)

怎么运行的。

  • 首先,使用connect()方法创建到perlmysqldb数据库的连接。
  • 接下来,定义一个包含三个CREATE TABLE语句的数组@ddl
  • 然后,调用数据库句柄对象的do()方法来执行循环内的每个CREATE TABLE语句。我们经常使用do()方法来执行不返回结果集的非 select 语句。
  • 之后,显示一条消息,表明所有表已成功创建。
  • 最后,断开与数据库的连接。

脚本的输出如下:

Perl MySQL Create Table Demo
All tables created successfully!

现在,您可以检查perlmysqldb数据库来验证表是否已成功创建。

Perl MySQL Create Table example

在本教程中,您学习了如何使用数据库句柄对象的do()方法从 Perl 程序在 MySQL 数据库中创建新表。

本教程有帮助吗?