Entendido.

Este sitio utiliza cookies para analizar la navegación. Si continúa navegando se entiende que acepta su uso. Ver más detalles.";

Logo

Aprende Web

Crea y diseña tus sitios en la Web.

Manual de SQL

SQL es el lenguaje para trabajar con bases de datos en la web.


Y ahora tambien aprende a programar en C++ con Aprende Web C++

logo rss RSS. Suscribir canal.

Buscar en Aprende Web

Traducir página

Visita nuestro blog:

bolg.aprende-web.net

y entérate de las novedades o deja un comentario.

Dudas y sugerencias:

aprendeweb@aprende-web.net





Sobre ésta página

Ültima modificación: 29-01-2016.

Visitas este mes: 685

Visitas el mes pasado: 775

logo
WEB-GRAFÍA

Mi agradecimiento a las siguientes páginas Web. en las cuales me he basado para la elaboración de este manual:


Bases de datos
monografías.com
Curso MySQL
Curso MySQL de AulaFácil
MySQL con clase
conclase.net
Introducción a MySQL
ProgramacionWeb.net
Manual práctico de SQL
www.cepeu.edu.py
MySQL 5.0 Reference Manual
dev.mysql.com
SQL Tutorial
w3schools.com
Tutorial de SQL
desarrolloweb.com
Tutorial de SQL: Curso de SQL
sql.1keydata.com

Donativos

Si este sitio te parece interesante puedes contribuir con una pequeña aportación.




SQL (X)

Modificar registros

imagen sql

Borrar registros.

Hasta ahora hemos visto cómo crear y consultar registros o filas de las tablas. Veremos ahora cómo borrarlos o modificarlos. Empezamos por el borrado.

Para eliminar un registro de una tabla utilizaremos la sentencia DELETE:

DELETE FROM nombre_tabla WHERE columna1='valor'

Con "DELETE FROM nombre_tabla" localizamos la tabla en la que queremos borrar un registro, y con la instrucción "WHERE columna1='valor' " localizamos el o los registros que queremos borrar.

Observa la importancia de la instrucción WHERE, en ella indicamos los registros que queremos borrar: todos los registros que cumplan con la condición indicada (es decir en cuya columna indicada esté el valor indicado) serán eliminados.

De no poner la instrucción WHERE se eliminarán todos los registros de la tabla. La tabla seguirá existiendo, pero será una tabla vacía, sin ningún registro (sólo se mantiene la estructura).

Hay que tener mucho cuidado con la instrucción DELETE, ya que la eliminación de un registro se hace de forma irreversible. Una vez eliminado ya no se pueden recuperar los datos.

Por ejemplo, tenemos una tabla "agenda" con las columnas "nombre", "telefono" y "email". Queremos eliminar un registro que tiene en "nombre" el valor 'Juan Ruiz', lo haremos con la siguiente sentencia:

DELETE FROM agenda WHERE nombre='Juan Ruiz'


Actualizar un registro

Supongamos ahora que en la tabla "agenda" anterior, tenemos un nombre, por ejemplo 'Alberto Sanchez' que ha cambiado su teléfono y su email. Para cambiar su teléfono y su email en la agenda podríamos borrar su registro y crear uno nuevo con el nuevo teléfono y email. Sin embargo esto no resulta práctico, ya que podemos modificar el registro mediante la sentencia UPDATE:

UPDATE agenda
  SET telefono='662142223' , email='albesanch@mimail.com'
  WHERE nombre='Alberto Sanchez'

Para cambiar los datos de un registro (actualizarlo) procedemos de la siguiente manera:

De forma general la instrucción UPDATE tendrá la siguiente sintaxis:

UPDATE nombre_tabla
  SET col_cambio1='valor1',co2_cambio2='valor2'
  WHERE col_ref='valor_ref'

Debemos tener cuidado de poner siempre la instrucción WHERE, ya que de no ponerla los valores indicados en la instrucción SET se cambiarían en todos los registros de la tabla.

Al cambiar un dato mediante UPDATE se sustituye el dato que teníamos anterioremente por el indicado en la instrucción SET. Los datos antiguos son borrados y sustituidos por los nuevos. Los datos antiguos ya no se pueden recuperar, ya que su eliminación es permanente.


El operador IN

En la instrucción WHERE (y otras como SET) hemos visto que utilizamos operadores para indicar qué tipo de relación hay entre las columnas y sus valores. Hasta ahora hemos visto los operadores = (igual) y "LIKE" (parecido), aparte de los operadores lógicos AND y OR. Veremos ahora otros operadores que permiten especificar la relación entre columnas y valores: Empezamos por el operador IN.

El operador IN permite incluir varios valores en una instrucción WHERE:

WHERE nombre_columna IN ('valor1','valor2', ... )

Veamos un ejemplo con la tabla "discos" de la base "mi_musica", ya utilizada en páginas anteriores. Incluimos la siguiente sentencia SQL en el código PHP ya usado en la página anterior para búsquedas:

SELECT * FROM discos
   WHERE titulo IN ('Brothers in arms','Tubular Bells')

Y el resultado será el siguiente:

id_disco = 2 ... titulo = Brothers in arms ... ref_artista = 2 ... num_pistas = 9 ... info = Quinto disco de la banda ...

id_disco = 4 ... titulo = Tubular Bells ... ref_artista = 3 ... num_pistas = 2 ... info = Primer disco de estudio del compositor ...


El operador IN requiere que los datos que pasemos sean exactos, es decir no admite aproximaciones mediante comodines.


El operador BETWEEN

El operador BETWEEN muestra un rango comprendido entre dos valores. Es decir se seleccionas aquellos registros cuyo valor en la columna indicada esté comprendido entre los dos que señalamos (ambos incluidos). Su sintaxis con WHERE será la siguiente:

WHERE nombre_columna BETWEEN 'valor1' AND 'valor2'

Cuando la columna indicada (nombre_columna) tiene valores numéricos, se seleccionarán los registros que en dicha columna tengan los valores comprendidos entre 'valor1' y 'valor2'. El primer valor debe ser siempre un número más pequeño que el segundo, en caso contrario no se seleccionará ningún registro.

Cuando los valores son cadenas de texto, se seleccionarán los registros alfabéticamente desde 'valor1' a 'valor2'. La selección se basa en el número de caracter según la norma ASCII. con lo que el alfabeto español no está completo, ya que faltaría la 'ñ' y las vocales con acentos, que se pondrían después del resto del alfabeto. Por supuesto también aquí 'valor1' debe estar antes en el alfabeto que 'valor2'.

Veamos un ejemplo con la tabla "discos" de la base "mi_musica". Seleccionaremos aquí por su "id_disco" (columna con autoincremento) los valores del 2 al 4: En el código PHP incluimos la siguiente sentencia SQL:

SELECT * FROM discos
   WHERE id_disco BETWEEN '2' AND '4'

El resultado nos dará la lista de discos comprendidos entre el "id_disco=2" y el "id_disco=4" tal como lo vemos a continuación:


id_disco = 2 ... titulo = Brothers in arms ... ref_artista = 2 ... num_pistas = 9 ... info = Quinto disco de la banda ...

id_disco = 3 ... titulo = Money for Nothng ... ref_artista = 2 ... num_pistas = 12 ... info = Primer disco recopilación de la banda tras sus 5 discos anteriores. ...

id_disco = 4 ... titulo = Tubular Bells ... ref_artista = 3 ... num_pistas = 2 ... info = Primer disco de estudio del compositor ...


El operador BETWEEN admite que los 'valores' de cadena puedan tener comodines por la derecha (final de palabra), Esto permite hacer una selección alfabética con varias letras, por ejemplo:

WHERE nombres BETWEEN 'a%' AND 'd%'

Este ejemplo permite seleccionar todos los registros en los que el valor de la columna "nombre" empiece por las letras de la 'a' a la 'd'.


La instrucción LIMIT

Supongamos que ya hemos introducido un número considerable de discos y artistas en nuestra base "mi_musica". (por ejemplo 70 artistas y 200 discos). Si queremos ver las tablas enteras, la página puede que resulte demasiado larga. Podemos limitar el número de registros de cada tabla que se verán en cada consulta, pudiendo así mostrar la tabla en varias páginas, o mostrar sólo una parte de la tabla. Esto lo haremos mediante la instrucción LIMIT.

La instrucción LIMIT tiene la siguiente sintaxis:

SELECT * FROM nombre_tabla LIMIT num1,num2

Donde num2 es el número de registros que se seleccionarán a partir del registro indicado en num1. Por ejemplo LIMIT 20,10 indica que veremos desde el registro número 21 de la tabla al número 30 (veremos 10 registros a partir del número 20, empezando a contar en el siguiente registro al indicado).

Si indicamos sólo un número LIMIT 10 éste indica los registros que se verán empezando a contar desde el primero de la tabla.

Veamos un ejemplo con la tabla "discos" de la base "mi_musica". En el código PHP incluimos la siguiente sentencia SQL:

SELECT * FROM discos LIMIT 1,3

El resultado es una lista en la que veremos 3 registros a partir del número 1 (sin incluirlo):

id_disco = 2 ... titulo = Brothers in arms ... ref_artista = 2 ... num_pistas = 9 ... info = Quinto disco de la banda ...

id_disco = 3 ... titulo = Money for Nothng ... ref_artista = 2 ... num_pistas = 12 ... info = Primer disco recopilación de la banda tras sus 5 discos anteriores. ...

id_disco = 4 ... titulo = Tubular Bells ... ref_artista = 3 ... num_pistas = 2 ... info = Primer disco de estudio del compositor ...


La instrucción LIMIT también puede utilizarse después de una instrucción de tipo WHERE en la cual el resultado nos da más de un registro.

La instrucción LIMIT sólo funciona con MySQL, en otro tipo de bases de datos se utilizan otras expresiones, por ejemplo en Oracle se utiliza:

SELECT * FROM nombre_tabla WHERE ROWNUM >1 AND <5


Ordenar la tabla con ORDER BY

Podemos ordenar los elementos de la tabla mediante la instrucción ORDER BY, la cual tiene la siguiente sintaxis:

SELECT * FROM nombre_tabla ORDER BY columna(s) ASC/DESC

Después de la palabra clave ORDER BY pondremos el nombre de la columna o columnas a partir de las cuales se hará el ordenamiento. Después podemos poner opcionalmente la palabra clave ASC, que indica orden ascendente (o normal) o DESC, que indica orden descendente (o inverso). Si no indicamos ninguna palabra clave se toma el valor por defecto que es ASC (ascendente).

Cuando indicamos más de un nombre de columna, éstos se separarán por comas. Se ordena en primer lugar por la primera columna, y en caso de que coincidan los valores, se ordenará por la segunda, y así sucesivamente.

El orden de ordenación será el numérico para valores numéricos, y el alfabético para valores de cadena.

Veamos un ejemplo: vamos a ordenar la tabla "discos" de la base "mi_musica" en orden alfabético según la columna "titulo". Para ello utilizamos la siguiente sentencia SQL:

SELECT * FROM discos
   ORDER BY titulo ASC

id_disco = 2 ... titulo = Brothers in arms ... ref_artista = 2 ... num_pistas = 9 ... info = Quinto disco de la banda ...

id_disco = 3 ... titulo = Money for Nothng ... ref_artista = 2 ... num_pistas = 12 ... info = Primer disco recopilación de la banda tras sus 5 discos anteriores. ...

id_disco = 1 ... titulo = Pájaros en la cabeza ... ref_artista = 1 ... num_pistas = 14 ... info = Cuarto disco de este artista, año 2005 ...

id_disco = 5 ... titulo = Tr3s lunas ... ref_artista = 3 ... num_pistas = 14 ... info = instrumental, Año 2002 ...

id_disco = 4 ... titulo = Tubular Bells ... ref_artista = 3 ... num_pistas = 2 ... info = Primer disco de estudio del compositor ...


La instrucción ORDER BY puede ponerse también después de una instrucción WHERE en la que el resultado tiene más de un registro.


Cambiar nombre de la tabla

Podemos cambiar el nombre de una tabla mediante la sentencia RENAME TABLE, la cual la usaremos de la siguiente manera:

RENAME TABLE antiguo_nombre_tabla 
TO nuevo_nombre_tabla

Tras RENAME TABLE escribimos el nombre de la tabla, después la palabra clave TO y luego el nuevo nombre.


Mover una tabla a otra base

La misma instrucción RENAME TABLE puede utilizarse para mover (cortar y pegar) una tabla de una base a otra, basta con indicar los nombres de las bases delante del nombre de las tablas, separadas por un punto:

RENAME TABLE base1.tabla1 
TO base2.tabla_uno

En este ejemplo hemos movido la tabla llamada "tabla1", que estaba en la "base1", a la "base2", además le hemos cambiado el nombre a la tabla, la cual se llamará "tabla_uno".

Observa cómo para referirnos a una tabla que está en una base utilizamos el operador "punto" (base.tabla). el uso de este operador es común cuando en una misma sentencia hay elementos de dos bases o tablas distintas.





En la siguiente página veremos cómo incluir en las consultas relaciones

Relaciones



Manual de SQL

Anterior siguiente ... Siguiente siguiente


imprimir esta página

Página creada por ANYELGUTI.

Sugerencias: aprendeweb@aprende-web.net. Envia un manda un correo

Visita nuestro blog par saber en qué estamos trabajando: Aprende Web Blog

Más sobre anyelguti en http://anyelguti.16mb.com