* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download DBI tutorial
Survey
Document related concepts
Oracle Database wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Ingres (database) wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Concurrency control wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Functional Database Model wikipedia , lookup
ContactPoint wikipedia , lookup
Clusterpoint wikipedia , lookup
Transcript
DBI tutorial February 5th, 2007 What is DBI DBI is short for Database Interface, which is a Perl module Relational Database Relational database is a bunch of tables, each row of which is a record A record contains pieces of information called fields A table looks like: An Example of Table id name Title Phone 8 Yeming 4173 3442497 6 Jamie 4175 3442495 4 Jacky 4177 3442499 SQL SQL is short for Structured Query Language, which is invented at IBM at 1970’s Four main commands: SELECT, INSERT, DELETE, UPDATE Before manipulating a table, use CREATE TABLE to create a new table You can also DROP a table SQL Examples SELECT * FROM employees WHERE name = ‘jacky' DELETE FROM employees WHERE id = 8 UPDATE employees SET phone = phone+1 WHERE id = 8 INSERT INTO employees VALUES (10, ‘joyce', ‘5678’, 3445678 ) What DBI Is for? Every database system is a little different Every database system has a library, which is different from each other A extra layer is added to solve the difference among different database systems That's what Perl's DBI module is all about Using DBI, the programmer doesn’t need to know the details of different databases systems How DBI works? DBI talks Database Driver (DBD), which has the library for the real database system and knows how to talk to the database system directly How to Use DBI? DBI main functions: connect; prepare; disconnect; do; execute; fetchrow_array; rows; Connect driver source: dbi:mysql:host=torch.cs.dal.ca;database =torchacount;port=3306 username: torch account password: Banner ID Code Snippet (1) use DBI; (2) my $dbh = DBI -> connect ('dbi:mysql:host=torch;database=yeming;port=3306','yeming','B0xxxxxx') ||die "Database (3) connection not made: $DBI::errstr"; (4) $dbh->do("DROP TABLE employees"); (5) $dbh->do("CREATE TABLE employees ( id INTEGER NOT NULL, name VARCHAR(128), title VARCHAR(128), phone CHAR(8) )"); (6) $dbh->do("INSERT INTO employees VALUES('8', 'yeming', '4173', '3442497')"); (7) $dbh->do("INSERT INTO employees VALUES('6', 'jamie', '4173', '3442495')"); (8) $dbh->do("INSERT INTO employees VALUES('4', 'jacky', '4445', '3442493')"); Code Snippet (9) my $sth = $dbh->prepare('SELECT * FROM employees WHERE name=?'); (10) print "Enter name>"; (11) my $name=<>; (12) my @data; (13) chomp $name; (14) $sth->execute($name) or die "Couldn't execute statement". $sth->errstr; (15) while(@data=$sth->fetchrow_array()) { (16) my $id=$data[0]; (17) my $name=$data[1]; (18) my $title=$data[2]; (19) my $phone=$data[3]; (20) print " $id $name $title $phone \n" } (21) (22) (23) (24) $dbh->do("DELETE FROM employees WHERE name='jacky'"); $sth->execute('jacky') || die "Couldn't execute statement". $sth->errstr; my $rows= $sth->rows; print "There is $rows records about jacky\n "; Code Snippet (25) $dbh->do("UPDATE employees SET phone=4021828 WHERE name='yeming'"); (26) $name='yeming'; (27) $sth->execute($name) or die "Couldn't execute statement". $sth>errstr; (28) while(@data=$sth->fetchrow_array()) { (29) my $id=$data[0]; (30)my $name=$data[1]; (31) my $title=$data[2]; (32) my $phone=$data[3]; (33) print " $id $name $title $phone \n" } (34) $dbh->disconnect(); Sources http://www.perl.com/pub/a/1999/10/D BI.html http://www.unix.org.ua/orelly/perl/perlnut/ch12_03.htm http://www.pantz.org/database/mysql/ mysqlcommands.shtml Questions?