SlideShare una empresa de Scribd logo
DBI
¿Qué es?

• Database independent interface
  – ODBC
  – JDBC
¿Qué es?
• Acceso común a bases de datos
  – mysql_connect($server, $username,
    $password)
  – pg_connect($connection_string,
    $connect_type)
  – db2_connect($database, $username,
    $password)

       DBI->connect($dsn, $user, $pass)
Conceptos
• DBD -> DataBase Driver
    Cada driver se encarga de “hablar” con la DB
• DSN -> Data Source Name
    Cadena de conexión
• DBH -> Database handler
    Representa una conexión a una base de datos
• STH -> Statement handler
    Respresenta una sentencia SQL
Conectar a una base de datos
use DBI;
my $dbh = DBI-
  >connect(“dbi:DRIVER:PARAM1=VALOR1;PARAM2=VAL
  OR2”, $user, $pass, $dbi_opts);
…
$dbh->disconnect;

DRIVER: mysql, SQLite, Pg…
PARAMX=VALORX: en la doc del driver ;)

Recomendación:
{ „RaiseError‟ => 1, „PrintError‟ =>
  0, „AutoCommit‟ => 0 } en $dbi_opts
Ahora que tengo una conexión

my $sth = $dbh->prepare(„INSERT INTO tabla
  (nombre, apellidos) VALUES (?, ?)‟);
$sth->execute(„Larry‟, „Wall‟);
$sth->finish;



$dbh->do(„INSERT…‟, undef, „Larry‟, „Wall‟);
Ahora que tengo una conexión

my $sth = $dbh->prepare(„INSERT INTO tabla
  (nombre, apellidos) VALUES (?, ?)‟);
while (…) {
  $sth->execute($name, $lastname);
}
$sth->finish;
¿Qué son los interrogantes?
           Bind Params
• http://xkcd.com/327/
Recuperando Datos

my $sth = $dbh->prepare(„SELECT * FROM tabla
  WHERE nombre = ?‟);
$sth->execute(„Larry‟);
FETCH
$sth->finish;
Fetching…

   selectrow_array
 selectrow_arrayref
selectrow_hashref
  selectall_arrayref
  selectall_hashref
Recuperando Datos

my $sth = $dbh->prepare(„SELECT * FROM tabla WHERE
  nombre = ?‟);
$sth->execute(„Larry‟);
while (my $row = $sth->fetchrow_hashref){
    say “$row->{„nombre‟} $row->{„apellido‟}”;
}
$sth->finish;
DBDs Interesantes
•   DBD::mysql
•   DBD::sqlite
•   DBD::Pg
•   DBD::Oracle
•   DBD::CSV
•   …
DBD curiosos
•   DBD::iPod
•   DBD::Salesforce
•   DBD::RDFStore
•   DBD::Proxy
•   …

Más contenido relacionado

PDF
PDF
Administración de Tablespace en PostgreSQL
PDF
Creación de funciones postgre sql
PPTX
Comandos Unix
PPS
Unidades Almacenamiento
DOCX
PDF
DBI Advanced Tutorial 2007
Administración de Tablespace en PostgreSQL
Creación de funciones postgre sql
Comandos Unix
Unidades Almacenamiento
DBI Advanced Tutorial 2007

Destacado (20)

PDF
Linked Lists With Perl: Why bother?
ODP
PPT
Grade 8 9 course selection 2014-2015
PPTX
NRD: Nagios Result Distributor
PDF
Polifonia_6.16
PPTX
Bloedsomloop versie 1.0
PPTX
Results for my first drafts
PPTX
DBIx::Class
DOC
Rancangan Pengajaran Harian Matematik (Mikropengajaran)
PPTX
Proposal
DOCX
θουκυδίδου ι αγνωστο θεμα
PPS
Garm2 raton sin pilas
PDF
jul-ago-00
PPT
Web2 0
PPTX
Sophiie compu
PDF
Huidobro&Sepulveda_2010
PPTX
How to use photoshop
PPSX
Proposal
PPT
iPad Game Design -- Develop Liverpool Dec' 2011
PPTX
Работа в компании "АйТи Капитал"
Linked Lists With Perl: Why bother?
Grade 8 9 course selection 2014-2015
NRD: Nagios Result Distributor
Polifonia_6.16
Bloedsomloop versie 1.0
Results for my first drafts
DBIx::Class
Rancangan Pengajaran Harian Matematik (Mikropengajaran)
Proposal
θουκυδίδου ι αγνωστο θεμα
Garm2 raton sin pilas
jul-ago-00
Web2 0
Sophiie compu
Huidobro&Sepulveda_2010
How to use photoshop
Proposal
iPad Game Design -- Develop Liverpool Dec' 2011
Работа в компании "АйТи Капитал"
Publicidad

Similar a DBI (20)

PPTX
Java con base de datos
PPTX
JAVA CON BASE DE DATOS
PPTX
Java con base de datos
PPTX
Diapositivas de jdbc
PPT
Bases Datos en java
PPT
Java y Bases de Datos
PPT
Java y Bases Datos
PPT
Base de Datos por Gustavo V.M
PPTX
PPTX
Java con base de datos
PDF
PPT
Java y Base de Datos
PPTX
Clase conexion java - Analisis de Sistemas
PPTX
Connection trabajo
PPTX
PDF
MOSKitt: Ingeniería Inversa de Bases de Datos con MOSKitt
PPT
Bases de Datos en en www.fiec.espol.edu.ec
PPTX
Java DataBase Connectivity
PPTX
Diapositivas del jdbc magaly y duyen
Java con base de datos
JAVA CON BASE DE DATOS
Java con base de datos
Diapositivas de jdbc
Bases Datos en java
Java y Bases de Datos
Java y Bases Datos
Base de Datos por Gustavo V.M
Java con base de datos
Java y Base de Datos
Clase conexion java - Analisis de Sistemas
Connection trabajo
MOSKitt: Ingeniería Inversa de Bases de Datos con MOSKitt
Bases de Datos en en www.fiec.espol.edu.ec
Java DataBase Connectivity
Diapositivas del jdbc magaly y duyen
Publicidad

Más de Jose Luis Martínez (15)

PDF
Being cloudy with perl
PPTX
Modern Perl toolchain (help building microservices)
PPTX
MooseX::Datamodel - Barcelona Perl Workshop Lightning talk
PPTX
Paws - Perl AWS SDK Update - November 2015
PPTX
Paws - A Perl AWS SDK
PPTX
Boosting MySQL (for starters)
PPTX
Plenv and carton
PPTX
Building an aws sdk for Perl - Granada Perl Workshop 2014
PPTX
Writing plugins for Nagios and Opsview - CAPSiDE Tech Talks
PDF
Escribir plugins para Nagios en Perl
PPTX
Perl and AWS
PDF
Writing nagios plugins in perl
PPTX
Ficheros y directorios
PPTX
The modern perl toolchain
PPTX
Introducción a las Expresiones Regulares
Being cloudy with perl
Modern Perl toolchain (help building microservices)
MooseX::Datamodel - Barcelona Perl Workshop Lightning talk
Paws - Perl AWS SDK Update - November 2015
Paws - A Perl AWS SDK
Boosting MySQL (for starters)
Plenv and carton
Building an aws sdk for Perl - Granada Perl Workshop 2014
Writing plugins for Nagios and Opsview - CAPSiDE Tech Talks
Escribir plugins para Nagios en Perl
Perl and AWS
Writing nagios plugins in perl
Ficheros y directorios
The modern perl toolchain
Introducción a las Expresiones Regulares

Último (20)

PPTX
El uso de las TIC en la vida cotidiana..
PDF
Distribucion de frecuencia exel (1).pdf
PDF
capacitación de aire acondicionado Bgh r 410
DOCX
Trabajo informatica joel torres 10-.....................
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PPTX
Uso responsable de la tecnología - EEST N°1
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PPT
Protocolos de seguridad y mecanismos encriptación
El uso de las TIC en la vida cotidiana..
Distribucion de frecuencia exel (1).pdf
capacitación de aire acondicionado Bgh r 410
Trabajo informatica joel torres 10-.....................
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Documental Beyond the Code (Dossier Presentación - 2.0)
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Diapositiva proyecto de vida, materia catedra
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Uso responsable de la tecnología - EEST N°1
Teoría de estadística descriptiva y aplicaciones .pdf
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
la-historia-de-la-medicina Edna Silva.pptx
Estrategia de Apoyo de Daylin Castaño (5).pdf
MANUAL de recursos humanos para ODOO.pdf
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
Mecanismos-de-Propagacion de ondas electromagneticas
ccna: redes de nat ipv4 stharlling cande
Historia Inteligencia Artificial Ana Romero.pptx
Protocolos de seguridad y mecanismos encriptación

DBI

  • 1. DBI
  • 2. ¿Qué es? • Database independent interface – ODBC – JDBC
  • 3. ¿Qué es? • Acceso común a bases de datos – mysql_connect($server, $username, $password) – pg_connect($connection_string, $connect_type) – db2_connect($database, $username, $password) DBI->connect($dsn, $user, $pass)
  • 4. Conceptos • DBD -> DataBase Driver Cada driver se encarga de “hablar” con la DB • DSN -> Data Source Name Cadena de conexión • DBH -> Database handler Representa una conexión a una base de datos • STH -> Statement handler Respresenta una sentencia SQL
  • 5. Conectar a una base de datos use DBI; my $dbh = DBI- >connect(“dbi:DRIVER:PARAM1=VALOR1;PARAM2=VAL OR2”, $user, $pass, $dbi_opts); … $dbh->disconnect; DRIVER: mysql, SQLite, Pg… PARAMX=VALORX: en la doc del driver ;) Recomendación: { „RaiseError‟ => 1, „PrintError‟ => 0, „AutoCommit‟ => 0 } en $dbi_opts
  • 6. Ahora que tengo una conexión my $sth = $dbh->prepare(„INSERT INTO tabla (nombre, apellidos) VALUES (?, ?)‟); $sth->execute(„Larry‟, „Wall‟); $sth->finish; $dbh->do(„INSERT…‟, undef, „Larry‟, „Wall‟);
  • 7. Ahora que tengo una conexión my $sth = $dbh->prepare(„INSERT INTO tabla (nombre, apellidos) VALUES (?, ?)‟); while (…) { $sth->execute($name, $lastname); } $sth->finish;
  • 8. ¿Qué son los interrogantes? Bind Params • http://xkcd.com/327/
  • 9. Recuperando Datos my $sth = $dbh->prepare(„SELECT * FROM tabla WHERE nombre = ?‟); $sth->execute(„Larry‟); FETCH $sth->finish;
  • 10. Fetching… selectrow_array selectrow_arrayref selectrow_hashref selectall_arrayref selectall_hashref
  • 11. Recuperando Datos my $sth = $dbh->prepare(„SELECT * FROM tabla WHERE nombre = ?‟); $sth->execute(„Larry‟); while (my $row = $sth->fetchrow_hashref){ say “$row->{„nombre‟} $row->{„apellido‟}”; } $sth->finish;
  • 12. DBDs Interesantes • DBD::mysql • DBD::sqlite • DBD::Pg • DBD::Oracle • DBD::CSV • …
  • 13. DBD curiosos • DBD::iPod • DBD::Salesforce • DBD::RDFStore • DBD::Proxy • …