Описание: в этой статье мы покажем вам, как использовать API Perl DBI для создания таблиц в базе данных MySQL.
Создание таблиц в MySQL с помощью Perl
Прежде чем делать что-либо еще с базами данных, например вставлять, обновлять, удалять и запрашивать данные, вам необходимо создать новые таблицы для хранения данных.
Чтобы создать новую таблицу, вы используете следующие шаги:
- Подключитесь к базе данных MySQL.
- Выполните инструкцию CREATE TABLE, вызвав метод do() объекта дескриптора базы данных.
- Отключиться от базы данных MySQL.
Пример создания таблиц в MySQL с помощью Perl
Мы собираемся создать три таблицы в примере базы данных perlmysqldb:
- links: хранит URL, включая link_id, title, URL и target.
- tags: хранит теги для ссылок, включая tag_id и tag.
- link_tags: хранит связь между таблицами ссылок и тегов, содержащими два поля link_id и tag_id.
Следующая диаграмма иллюстрирует таблицы:
Ниже приведен скрипт Perl, который создает таблицы:
#!/usr/bin/perl use strict; use warnings; use v5.10; # для функции say() use DBI; say "Создание демонстрационных таблиц в MySQL с помощью Perl"; # Конфигурации баз данных MySQL my $dsn = "DBI:mysql:perlmysqldb"; my $username = "root"; my $password = ''; # подключение к базе данных MySQL my %attr = (PrintError=>0, RaiseError=>1); my $dbh = DBI->connect($dsn,$username,$password, \%attr); # создание таблиц my @ddl = ( # создать таблицу tags "CREATE TABLE tags ( tag_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, tag varchar(255) NOT NULL ) ENGINE=InnoDB;", # создать таблицу links "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;", # создать таблицу link_tags "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 "Все таблицы созданы успешно!"; # отключитесь от базы данных MySQL $dbh->disconnect();
Как это работает.
- Сначала создайте соединение с базой данных perlmysqldb, используя метод connect().
- Затем определите массив @ddl, который содержит три оператора CREATE TABLE.
- Затем вызовите метод do() объекта дескриптора базы данных, чтобы выполнить каждый оператор CREATE TABLE внутри цикла. Мы часто используем метод do() для выполнения оператора без выбора, который не возвращает набор результатов.
- После этого отобразите сообщение, указывающее, что все таблицы были созданы успешно.
- Наконец, отключитесь от базы данных.
Вывод сценария выглядит следующим образом:
Создание демонстрационных таблиц в MySQL с помощью Perl Все таблицы созданы успешно!
Теперь вы можете проверить базу данных perlmysqldb, чтобы убедиться, что таблицы были созданы успешно.
В этой статье вы узнали, как создавать новые таблицы из Perl-программы в базе данных MySQL, используя метод do() объекта-дескриптора базы данных.