Publicado el 1 comentario

SQL básico. Consultar los datos de una tabla.

En la sección anterior vimos como borrar registros de una tabla con SQL, en esta sección vamos a ver como extraer la información de una tabla mediante el lenguaje SQL mediante el comando o instrucción SELECT. Abra la base de datos y el archivo SQL si no los tiene abiertos para realizar las prácticas.

Obtener todos los datos de una tabla con SQL.

La sintaxis para obtener todos los datos de todos los registros de una tabla es la siguiente:

SELECT * FROM nombre-tabla;

El “*” (asterisco) significa que liste los datos de todos los campos de la tabla especificada. Escribe la siguiente sentencia y ejecútala.

Consulta todos las filas de la tabla.

En la misma pestaña, en la parte de abajo de nuestro editor donde escribimos nuestras instrucciones, aparecerán los resultados en forma de una tabla. Y en el área de mensajes aparecerá el número de filas recuperadas, en mi caso 14,767 filas.

Resultados de la consulta.

Puedes usar la barra de desplazamiento para ver el resto de los campos y valores que no se observan a la derecha del área de resultados. Podrás también notar que los botónes “Write Changes” y “Revert Changes” no se activan. Esto es debido a que el comando SELECT sólo consulta información, no hace ningún cambio ni en los datos ni en las tablas de la base de datos.

También podemos indicar al comando SELECT que sólo me muestre ciertos campos de la tabla con la siguiente sintaxis del comando.

SELECT campo-1, campo-2, … campo-N FROM nombre-tabla;

Veamos el siguiente ejemplo. Escribe y ejecuta la siguiente instrucción:

Listar solo algunos campos o columnas.

La instrucción anterior, sólo mostrará los datos de las columnas “id_producto”, “nombre” y “modelo” de todos las filas o registros de la tabla “productos”.

Lista sólo algunos campos de la tabla “productos”.

En ambiente sen producción , por ejemplo en nuestros trabajos, no es práctico consultar todas las filas de una tabla a menos que éstas tengan pocas filas o registros. Con tablas grandes de miles o millones de registros, la consulta consumiría muchos recursos de la computadora y podría tardar en mostrarnos la información. Por lo general siempre “filtramos” o limitamos los resultados para obtener sólo aquellas filas que cumplan una condición específica, como ya lo hemos visto en instrucciones como DELETE y UPDATE.

Mostrar sólo las filas que cumplan una condición con el comando SELECT.

Vamos a obtener todos los valores de las columnas de sólo los productos cuyo valor en la columna “id_marca” sea 34. Escribe y ejecuta la siguiente instrucción:

Filtrando filas.

Como puede observar agregamos la cláusula WHERE seguida por la condición “id_marca = 34” para limitar el numero de filas a mostrar. Como usamos “*” nos mostrará todos las columnas de sólo aquellos registros que cumplan la condición id_marca igual a 34. Son 93 fila en total.

Muestra filas filtradas.

Como vimos anteriormente, también podemos limitar las columnas a mostrar de las filas filtradas. Escribe y ejecuta la instrucción mostrada y observa los resultados:

Filtrar y mostrar sólo algunas columnas.

Como hemos visto, la cláusula WHERE sirve para limitar el número de filas sobre las cuales las instrucción SQL, UPDATE, DELETE o SELECT, actuarán. Así mismo hemos visto como formar una condición sencilla buscando aquellas filas cuyo valor de una columna sea igual a una expresión. En la siguiente sección vamos a ver algunas otras cláusulas del SELECT y más adelante como formar condiciones un poco más complejas y usarlas con la cláusula WHERE.

¡Hasta pronto!

IR A LA PAGINA DEL CURSO.

Publicado el 2 comentarios

SQL básico. Borrar registros de una tabla.

delete

En la sección anterior vimo sel uso del comando SQL UPDATE para actualizar datos en las tablas de una base de datos. En esta sección veremos como eliminar o borrar registros o filas de una base de datos usando el comando SQL DELETE.

Borrar todas las filas o registros de una tabla con SQL.

Nota: mucha precaución con usar el siguiente comando SQL en base de datos en producción. El comando DELETE como lo vamos a ver, borra todo el contenido de la tabla. Sólo úselo si está seguro que quiere dejar vacía la tabla. Si su tabla contiene miles o millones de filas, será difícil recuperarlas.

La sintaxis del comando DELETE para borrar todo el contenido de una tabla es la siguiente:

DELETE FROM nombre-tabla;

Esta forma de ejecutar el comando DELETE, como ya hemos mencionado, borra todos los registros de la tabla indicada. Antes de verlo en la práctica vamos a crear una tabla a partir de un archivo de texto .csv (archivo delimitado por comas). Este archivo contiene información de muchos productos que nos servirán para hacer nuestras prácticas.

Convertir un archivo de texto CSV a una tabla con “DB Browser fos SQLite (DB4S)”.

Descargue el archivo productos.csv, que se encuentra enseguida, a una carpeta en su computadora, preferentemente al directorio donde tiene guardada la base de datos SQLite o el archivo SQL.

Ejecute la aplicación DB4S si no la tiene en ejecución y abra la base de datos SQLite con la que hemos estado trabajando. Seleccione del menú “File” (Archivo) la opción “Import >” (Importar) y enseguida la opción “Table for CSV file” (Tabla de un archivo CSV).

Table desde un archivo CSV.

El diálogo “Choose text files” (Selecciona archivos de texto) se abrirá. Ahí navega hasta el directorio o carpeta donde has estado trabajando, selecciona el archivo descargado “productos.csv” y oprime el botón “Abrir”.

Dialogo “Choose text files”.

Aparecerá la ventana “Import CSV file” (Importar archivo CSV). Por defecto el nombre de la tabla, “Table name” lo toma del nombre del archivo CSV, en este caso “productos”, dejaremos este nombre así. Selecciona el cuadro “Column names in first line” (Nombres de columnas en la primera fila), ya que en la primera fila del archivo CSV se encuentran efectivamente los nombres de las columnas. El resto de la opciones déjalas como aparece en la siguiente imagen u oprime el botón “OK”:

Import CSV file.

Revisa la estructura de la base de datos como lo hemos hecho antes y checa que la tabla “productos” aparezca y observa que campos o columnas contiene.

Aparecerá la tabla “productos”.

Si gustas puedes ver el contenido de la tabla como lo hemos hecho antes desde la pestaña “Browse Data” y seleccionando la tabla “productos” de la lista “Table”:

Desplegando contenido de la tabla “productos”.

Como acabamos de agregar una nueva tabla con datos, no olvides grabar la base de datos. Ahora escribe el siguiente comando en el archivo SQL que hemos estado usando y ejecútalo, pero NO grabes aún los cambios en la base de datos:

Borra todos los registros.

Consulta en contenido de la tabla, verás que ya no existe ningún registro en “productos”:

Tabla “productos” vacía.

La razón por la que no debes grabar aún los cambios en la base de datos es porque vamos a ver otra herramienta de la aplicación DB4S, la herramienta “Revert Changes” (Revertir Cambios). Esta herramienta se encuentra al lado del botón “Write Changes” que usamos para guardar los cambios a la base de datos, sirve para descartar los últimos cambios que hicimos en la base de datos después de la última grabación. Al igual qu eel botón de grabar, se activa cuando se detecta algún cambio en la base de datos. El último cambio que hicimos fue borrar todos los registros de la tabla “productos” y aún no hemos grabado. Oprime el botón “Revert Changes”. aparecerá un diálogo de confirmación preguntando que si en verdad quieres deshacer los últimos cambios hechos a la base de datos después de la última vez que se guardó. Oprime el botón “Yes” (Sí).

Deshaciendo los últimos cambios a la base de datos.

Si consultas el contenido de la tabla productos, veras que todas las filas que se habían borrado, aparecen de nuevo y el botón “Revert Changes” se desactivará.

Registros recuperados.

Otros motores de base de datos como ORACLE o Postgresql entre otras cuentan con la siguiente instrucción SQL:

TRUNCATE TABLE nombre-tabla;

Esta instrucción tiene la misma función que la instrucción DELETE que acabamos de ejecutar para borrar todos los registros de la tabla, sin embargo es más óptima y rápida para borrar todos los registros cuando la tabla contiene miles o millones de registros. El lenguaje SQL de SQLite no cuenta con esta instrucción.

Borrar una o varias filas de una tabla mediante SQL.

Para borrar uno o varios registros la vez se utiliza la siguiente sintaxis del comando DELETE:

DELETE FROM nombre-tabla WHERE condición.

Como se puede observar se agrega la cláusula “WHERE condición” a la sentencia DELETE. Veamos un ejemplo. Del listado del contenido de mi tabla producto en la pestaña “Browse Data” anotaré el valor de la columna “id_producto” de la primera fila que me aparece, en mi caso el valor es 1. Yo se de antemano que los valores de “id_producto” no se repiten, es decir, cada registro o fila tiene un valor “id_producto” diferente. En tu caso la primera fila puede tener un valor diferente, anota el valor “id_producto” que te aparezca en la primera fila.

Obtener valor campo id_producto.

Escribe y ejecuta la siguiente sentencia y graba la base de datos (reemplaza el valor de 1 por el valor que hayas anotado anteriormente):

Borra un sólo registro.

Si todo va bien observaras el siguiente texto en el área de mensajes:

Resultado de la ejecución del DELETE.

Lo subrayado con rojo, “1 rows affected”, indica que sólo una fila fue afectada por la ejecución del comando, es decir, sólo un registro fue borrado. Comprueba que el registro fue borrado. En mi caso, la fila con el valor 1 en la columna “id_producto” ya no aparece. Graba los cambios.

Un registro borrado.

Ahora desliza hacia la derecha la barra de desplazamiento que se encuentra en la parte de abajo del área donde aparecen los datos de la pestaña “Browse Data” , hasta visualizar el campo “id_marca”. Este campo tiene un número que identifica la marca del producto, verás que en algunsa filas el valor de “id_marca” se repite. Esto indica que esos productos pertenecen a una misma marca. En mi caso el “id_marca” que se repite varias veces en el listado de registros es el número 39.

Mostrando columna “id_marca”.

Para borrar todos los registros que tengan el valor 39 en la columna “id_marca” utilizaremos el siguiente comando SQL:

Borrando varios registros.

Ejecuta el comando y observa cuántas filas o registros fueron borradas. En mi caso fueron borradas 48 filas.

Total de filas borradas.

Revisa el contenido de la tabla y verás que ya no existen productos con valor 39 en la columna “id_marca”. Graba los cambios, tanto en la base de datos como en el archivo SQL.

En esta sección vimos el uso de la instrucción DELETE. En la sección siguiente veremos el uso de la instrucción SELECT para la consulta de registros de las tablas.

¡Hasta la próxima!

IR A LA PAGINA DEL CURSO.

Publicado el 4 comentarios

SQL básico. Actualizar datos en una tabla con SQL.

En esta sección vamos a ver cómo se actualizan o modifican los datos de una o varias columnas de uno o varios registros en una tabla mediante una sentencia SQL.

Ejecuta la aplicación DB4S y abre la base de datos SQLite que has usado anteriormente. También abre el archivo SQL que has creado como vimos en la sección anterior.

Para actualizar los de una columna de una tabla con SQL usamos la siguiente sintaxis básica del comando UPDATE:

UPDATE nombre-tabla SET nombre-columna = expresión-valida;

Aunque la expresión o sintaxis de UPDATE más usada es:

UPDATE nombre-tabla SET nombre-columna = expresión-valida WHERE condición;

¿Cuál es la diferencia entre la primera forma y la segunda? La primera forma actualizaría el valor de la columna dada de todas las filas o registros de la tabla, mientras que la segunda forma actualizaría sólo los registros que cumplan la condición dada. Veamos un ejemplo de ambas. Supongamos que queremos cambiar el valor de “fecha_nacimiento” por “01/01/1980”. Actualmente las filas de la tabla “persona” tienen los siguientes valores:

Valores d elas filas de la tabla “persona”.

Escribe y ejecuta la siguiente instrucción:

Actualiza un campo de todas la filas.

Revisa el contenido de la tabla, se debe ver así:

El campo fecha_nacimiento modificado.

Como puedes observar, el valor del campo o columna “fecha_nacimiento” de todas las filas (en este caso dos) fue modificado con el valor que le especificamos en la sentencia SQL: ’01/01/1980′. A veces es deseable este comportamiento cuando queremos cambiar el valor de una columna en toda la tabla, pero en el ejemplo de nuestra tabla “persona” no. Cada registro debe tener su fecha de nacimiento correspondiente. No olvides grabar tanto la base de datos como el archivo SQL.

Vamos ahora usar la segunda forma básica del comando UPDATE. Escribe y ejecuta la siguiente sentencia para regresar el valor correcto de la fecha de nacimiento al registro con valor 1 en la “clave” :

Actualiza sólo la fila que cumpla con la condición dada.

La sentencia anterior sólo actualizara el valor de la columna “fecha_nacimiento” del registro que cumpla la condición de que su valor en la columna “clave” sea igual a uno (clave = 1). Revisa nuevamente los datos de la tabla.

Sólo una fila actualizada.

En nuestra tabla sólo existe un registro o fila que cumple la condición y sólo a es registro se le modificó el valor de la columna “fecha_nacimiento”. Si hubieran habido más registros con “clave = 1” todos esos registros se hubieran actualizado. La instrucción UPDATE permite actualizar también el valor de varias columnas a la vez. Veamos la sintaxis.

UPDATE nombre-tabla SET campo-1 = expersión-1, campo-2 = expresión-2, compo-n = expresión-n WHERE condición;

También en esta forma la parte “WHERE condición” e la sentencia UPDATE es opcional, puede o no puede ir. Pero recuerde, si no se le agrega una condición, se actualizarán los campos especificados de todos los registros de la tabla con los valores indicados.

Escribe y ejecuta la siguiente sentencia:

Actualizando dos campos a la vez.

Revise nuevamente los valores de la tabla.

Datos actualizados de dos columnas.

Como puede observar, se han actualizado los valores de fecha de nacimiento y curp con una sola instrucción UPDATE y sólo del registro con la clave igual a dos. Guarde la base de datos y el archivo SQL. En esta sección vimos como la sentencia de SQL UPDATE sirve para actualizar los valores de una o varias columnas de una o varias filas en nuestra tabla. En la próxima sección veremos como borrar registros o filas de una tabla con SQL.

¡Hasta pronto!

IR A LA PAGINA DEL CURSO.