miércoles, 15 de enero de 2014

Tutorial SQlite3 SELECT y WHERE

En esta ocasión aprenderemos como hacer uso de SELECT junto con WHERE usando la lógica de selección que aprendimos en el tutorial pasado:

Enlace

Primero que nada vamos a abrir una shell de SQLite y vamos a crear una base de datos:

sqlite3 Ejemplo.db

Y pegamos:


1
2
3
4
5
6
7
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE "Users" (id INTEGER,nombre TEXT,nucleo TEXT,sistema TEXT, version TEXT);
INSERT INTO "Users" VALUES(1,'atheyus','linux','ubuntu','14.04');
INSERT INTO "Users" VALUES(3,'usuario3','linux','gentoo',NULL);
INSERT INTO "Users" VALUES(4,'usuario4','darwin','MacOSX','Lion');
COMMIT;

Bien ya tenemos una tabla donde trabajar,para una selección normal vamos a usar:

SELECT * FROM Users;
De esta manera nos devuleve todas las columnas (*),de Users,si queremos un filtrado,por ejemplo queremos los nombres solamente pedimos el nombre:

SELECT nombre FROM Users;

Si queremos el nombre y el sistema usamos una coma:

SELECT nombre,sistema FROM Users;

Si queremos un orden podemos ordenar basado en una columna,usando la orden ORDER BY:

SELECT nucleo FROM Users ORDER BY nucleo;

Al final podemos agregar si lo queremos en modo ascendente ASC o descendente DESC;

SELECT nucleo FROM Users ORDER BY nucleo DESC;

Podemos limitar el numero de la salida de datos con el comando LIMIT:

Veamos como mostrar solo dos resultados:

SELECT nucleo FROM Users ORDER BY nucleo LIMIT 2;

Podemos filtrar el resultado para que solo muestre dos columnas pero se salte la primera,vamos a hacer esto:

Mostramos tres columnas pero nos saltamos la primera:

Primero añadimos mas usuarios para que se vea el uso bien hecho:

INSERT INTO "Users" VALUES(5,'usuario5','linux','Arch','rolling release');

INSERT INTO "Users" VALUES(6,'usuario6','linux','Debian','7');
Probamos:

SELECT * FROM Users ORDER BY nucleo;

Ahora si,para saltarnos las columnas usamos el numero a saltar primero y luego el numero a mostrar,divididos por comas:

SELECT nucleo FROM Users ORDER BY nucleo LIMIT 1,3;





Otra forma de hacer lo mismo es usando,OFFSET, seguido del numero a saltar,y LIMIT seguido del numero a mostrar:

 SELECT nucleo FROM Users ORDER BY nucleo LIMIT 3 OFFSET 1;
Usando WHERE, la clausula WHERE no es mas que un comprobador que se usa basado en respuesta lógica booleana,esto sera rápido ya que lo vimos en el tutorial pasado:

Mostrar todas las tablas con id mayor a 3:

SELECT * FROM Users WHERE id>3  ORDER BY id;
Mostrar todas las tablas con id mayor a 3 y que sea de núcleo linux:

SELECT * FROM Users WHERE id>3  AND nucleo='linux' ORDER BY id;
Mostrar todos los usuarios con nombre usuarionumero :

SELECT * FROM Users WHERE  nombre GLOB 'usuario?' ORDER BY id;

Eso es todo :D


No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.