Download Información SQLite

Document related concepts
Transcript
SQLite 2.8.14
SQLlite es una pequeña librería programada en lenguaje C que implementa un completo
motor de base de datos multiplataforma que no precisa configuración. Se distribuye bajo
licencia de dominio público. Es muy rápido y la ventaja fundamental es que permite utilizar un
amplio subconjunto del lenguaje estándar SQL. SQLite destaca también por su versatilidad. El
motor de PHP 5 incluye soporte interno para SQLite.
Combina el motor y el interfaz de la base de datos en una única biblioteca, y almacena los
datos en un único archivo de texto plano. Esto hace que cada usuario pueda crear tantas bases
de datos como desee sin la necesidad de la intervención de un administrador de bases de
datos que gestione los espacios de trabajo, usuarios y permisos de acceso. El hecho de
almacenar toda la base de datos en un único archivo, facilita la portabilidad de los datos, y
solamente tiene la restricción del espacio de disco asignado al usuario en el servidor.
Su potencia se basa fundamentalmente en la simplicidad, lo que hace que no sea una
buena solución en entornos de tráfico muy elevado y/o alto acceso concurrente a datos. SQLite
encapsula toda la base de datos en un único fichero.
En su versión 3, SQLite soporta bases de datos de hasta 2 Terabytes de tamaño, y también
permite la inclusión de campos tipo Blob.
Recomendaciones
Para el correcto aprovechamiento de esta utilidad es necesario por parte del usuario tener
los siguientes conocimientos:
• Creación de paginas web ( HTML, etc … ).
• PHP.
• Conocimientos de bases de datos ( SQL ).
Formas de uso
Podemos utilizar SQLite de dos formas:
• Como gestor de base de datos local en un PC. De esta forma podemos gestionar bases
de datos con SQLite igual que si estuviéramos trabajando con un sistema gestor de base de
datos como MySQL sin necesidad de instalar nada, ya que SQLite se compone de un único
archivo ejecutable.
• Como una extensión más de PHP, utilizando las funcionalidades de SQLite
configuradas, o bien como módulo de PHP, o como librería; sin necesidad de tener instalado o
conectar con un servidor de base de datos. Ofrece un rápido interfaz de base de datos
almacenado en archivo de texto plano.
SQLite como extensión de PHP
Una de las opciones de utilización de SQLite es como extensión de base de datos para
PHP.
Esta opción, ofrece un rápido interfaz de base de datos, al igual que ofrecen otras bases de
datos como MySQL, pero con la ventaja de no tener la necesidad de tener instalado o conectar
con un servidor de base de datos. SQLite tiene prácticamente las mismas funcionalidades y
rapidez que el resto de gestores de base de datos, y los datos se almacenan en un archivo de
texto plano.
SQLite dispone de un completo interfaz orientado a objetos, con distintas funciones que nos
facilitan la manipulación de datos. Funciones muy similares a las que podemos manejar con
MySQL.
Funciones PHP - SQLite
A continuación mostramos una tabla con un breve resumen de las principales funciones.
Para información mas detallada sobre ellas pulse en el siguiente enlace (enlace con el pdf
donde se explican las funciones)
sqlite_array_query
sqlite_busy_timeout
sqlite_changes
sqlite_close
sqlite_column
sqlite_create_aggregate
sqlite_create_function
sqlite_current
sqlite_error_string
sqlite_escape_string
sqlite_exec
sqlite_factory
sqlite_fetch_all
sqlite_fetch_array
sqlite_fetch_column_types
sqlite_fetch_object
sqlite_fetch_single
sqlite_fetch_string
sqlite_field_name
sqlite_has_more
sqlite_has_prev
sqlite_key
sqlite_last_error
sqlite_last_insert_rowid
sqlite_libencoding
sqlite_libversion
sqlite_next
sqlite_num_fields
sqlite_num_rows
sqlite_open
sqlite_popen
Ejecuta una consulta contra una base de datos y devuelve el
resultado en forma de matriz
Establece la duración del temporizador de ocupado o deshabilita
los temporizadores
Devuelve el número de filas que se han modificado en la última
sentencia SQL
Cierra una base de datos SQLite abierta
Obtiene una columna de la fila actual del resultado
Registra una FDU (función definida por el usuario) de grupo
normal para su uso en sentencias SQL
Registra una FDU (función definida por el usuario) normal para
su uso en sentencias SQL
Obtiene la fila actual del resultado en forma de matriz
Devuelve la descripción del error producido a partir de un código
de error
Escapa una cadena de texto para poder usarla como parámetro
en una consulta
Ejecuta una consulta que no produce resultado
Abre una base de datos SQLite y devuelve un objeto
SQLiteDatabase
Obtiene todas las filas del resultado en forma de matriz de
matrices
Obtiene la siguiente fila del resultado en forma de matriz
Obtiene una matriz con los tipos de las columnas de una tabla
Obtiene la siguiente fila del resultado en forma de objeto
Obtiene la primera columna del resultado en forma de cadena
Alias de sqlite_fetch_single()
Obtiene el nombre de un campo
Indica si existen más filas disponibles
Indica si está disponible una fila anterior
Devuelve el índice de la fila actual
Devuelve el código de error del último error producido en la base
de datos
Devuelve el identificador de fila de la última fila insertada
Devuelve la codificación de la librería SQLite que se está
empleando
Devuelve la versión de la librería SQLite que se está empleando
Se desplaza hasta el siguiente número de fila
Obtiene el número de campos de un resultado
Obtiene el número de filas de un resultado almacenado
(buffered)
Abre una base de datos de SQLite y la crea si no existía
Abre una base de datos de SQLite de forma persistente y la
sqlite_prev
sqlite_query
sqlite_rewind
sqlite_seek
sqlite_single_query
sqlite_udf_decode_binary
sqlite_udf_encode_binary
sqlite_unbuffered_query
sqlite_valid
crea si no existía
Se desplaza hasta el anterior número de fila
Ejecuta una consulta sobre la base de datos y devuelve un
manejador del resultado
Se desplaza hasta el primer número de fila
Se desplaza hasta un determinado número de fila de un
resultado almacenado (buffered)
Ejecuta una consulta y devuelve o una matriz para una columna
o el valor de la primera fila
Decodifica los datos binarios que se pasan como parámetro a las
funciones FDU (función definida por el usuario)
Codifica los datos binarios antes de devolverlos de una FDU
(función definida por el usuario)
Ejecuta una consulta sobre la base de datos cuyo resultado no
almacena todos los datos devueltos
Indica si hay más filas disponibles en el resultado
Gestion de las bases de datos SQLite
Existen varias formas para gestionar las bases de datos creadas por SQLite:
• Aplicaciones web como SQLite Manager. Tambien existen otras aplicaciones web de
código libre en la red. (http://www.sqlitemanager.org/ )
• Desde la consola de usuario. ( http://www.sqlite.org )
Ejemplos de uso
• Creación/apertura de la base de datos
Tanto para crear como para abrir una base de datos tenemos que utilizar la siguiente
funcion:
$db=sqlite_open("nombre_basedatos");
Le pasamos como parámetro el nombre de la base de datos. Si la dase de datos existe,
entonces la abrirá, y si no existe la creará y la abrirá. Podemos tener tantas bases de datos
como queramos. La única restricción es el espacioweb de que dispongamos en nuestro
servidor.
• Cerrar la base de datos
Para cerrar la base de datos no tenemos mas que utilizar la siguiente función, pasándole
como parámetro la variable de identificación de la conexión a la base de datos:
sqlite_close($db);
• Lanzar una sentencia SQL
Para ejecutar cualquier sentencia SQL se utiliza la función sqlite_query:
sqlite_query($db , "CREATE TABLE tabla_prueba (id INTEGER PRIMARY KEY,
nombre CHAR(255))");
sqlite_query($db, "INSERT INTO tabla_prueba(nombre) VALUES ('Antonio')");
Con estas sentencias creamos una tabla llamada tabla_prueba, y con la segunda le
introducimos un dato de prueba.
• Recogida de los resultados de una consulta SQL
Las consultas SQL se realizan también utilizando la función sqlite_query:
$result = sqlite_query($db, "SELECT * FROM tabla_prueba");
El resultado se recoje en una variable de tipo array, la cual podremos manipular a nuestro
antojo.
• Impresión por pantalla de los valores de un array
Para este ejemplo aprovecharemos la variable de tipo array anterior, donde hemos
guardado los resultados de la consulta SQL.
while ($row = sqlite_fetch_array($result)) {
echo "ID --> ".$row["id"]." Nombre --> ". $row["nombre"]."<br>";
}
A continuación vamos a mostrar un ejemplo completo de utilización de la base de datos:
<?
// creamos una conexión la base de datos(le introducimos el nombre del archive donde se
almacena)
$db = sqlite_open("nombre.bd");
// Utilizar la siguiente línea sólo si se necesita crear la tabla
sqlite_query($db , "CREATE TABLE tabla_prueba (id INTEGER PRIMARY KEY, nombre
CHAR(255))");
// inserción de registros
sqlite_query($db, "INSERT INTO tabla_prueba(nombre) VALUES ('Antonio')");
sqlite_query($db, "INSERT INTO tabla_prueba(nombre) VALUES ('Pedro')");
sqlite_query($db, "INSERT INTO tabla_prueba(nombre) VALUES ('Sara')");
// ejecución de consulta de selección
$result = sqlite_query($db, "SELECT * FROM tabla_prueba ");
// muestra de los resultados con un bucle
while ($row = sqlite_fetch_array($result)) {
echo "ID --> ".$row["id"]." Nombre --> ". $row["nombre"]."<br>";
}
// se sierra la conexión a la base de datos
sqlite_close($db);
?>
Resultado del ejemplo anterior
ID --> 16 Nombre --> Antonio
ID --> 17 Nombre --> Pedro
ID --> 18 Nombre --> Sara
Enlaces útiles
• http://es.wikipedia.org/wiki/SQLite
• http://www.sqlite.org/ Sitio Oficial de SQLite (en inglés)
• http://www.zend.com/php5/articles/php5-sqlite.php
Introducción acerca de la extensión de SQLite para PHP5.
• http://necudeco.blogsome.com/2005/08/31/sqlite-con-csharp/
Ejemplos de codigo con SQLite
• http://www.sqlitemanager.org/ Web oficial de la aplicación SQLiteManager