Vamos a revisar algunas instrucciones muy básicas de sql; para mayor comodidad, podemos utilizar las hojas que nos proporciona Eclipse segun definimos aqui, o podeis instalar MySql en linux; tenéis este artículo que os puede ayudar:
Tu máquina de desarrollo. Instalando LAMP
si vais a realizar la instalación de MySQL en Windows, podéis leer este otro:
Tu maquina de desarrollo – Instalando XAMPP (en Windows)
Si optáis por utilizar la versión gratuita de la famosa base de datos de Oracle, encontrareis una guía de instalación en.
Instalando Oracle Database express Edition
El formato de las instrucciones es totalmente libre, sin importar mayúsculas y minúsculas, y pudiendo escribir la orden en varias líneas; solo es obligatorio respetar el orden de las palabras claves
Todos los valores numéricos, se indican sin comillas; todos los valores alfanuméricos, o para campos que lo son, se deben indicar entre comillas simples
En muchos editores, las ordenes SQL se han de terminar en “;” (punto y coma). En java, o en PHP, no lo escribiremos.
INSERT
La hemos visto trabajar, y es la que nos permite insertar datos nuevos en una tabla; su estructura es:
INSERT INTO <nombre tabla> (<lista de campos separados por comas>) VALUES (<lista de valores separados por comas>)
Si en el INSERT vamos a aportar todos los campos de la tabla, y en su mismo orden, se puede omitir la lista de nombres de campo
En los ejemplos anteriores es lo mismo escribir
-
Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) values ('1','Barcelona','1');
Que
-
Insert into PROVINCIA values ('1','Barcelona','1');
SELECT
Nos permite conseguir un conjunto de filas y columnas con los que poder trabajar. En las pantallas gráficas, aparecen como una tabla, luego veremos que en Java o PHP los tendremos en un objeto.
Este comando, espera que le indiquemos las condiciones de búsqueda que han de cumplir los registros, y a partir de las mismas nos construye una vista con las columnas pedidas.
SELECT <lista campos FROM [ WHERE ] [ ORDER BY ]
La orden SELECT nos permite indicar una lista de campos a recuperar, o un * si queremos recuperarlos todos, y espera que le indiquemos de que tabla o tablas son esos campos.
Como vemos en la imagen, nos permite especificar la lista de las columnas que queremos devolver, la tabla que deseamos leer, la condición que queremos que cumplan las columnas que queremos seleccionar, y podemos también, indicar el orden en que queremos que se seleccionen las filas, indicando los campos y si ha de ser ascendente o descendente.
Veamos sus posibilidades en detalle:
En la lista de campos, podemos especificar:
Cualquier/todos los campos de las tablas que figuren en FROM. Si un nombre de columna aparece repetido en más de una tabla, indicaremos el nombre de la tabla, punto (.) y el nombre del campo.
-
SELECT cliente.id, pedido.id, nombrecliente, .....
Podemos especificar funciones aritméticas (suma como +, resta como -, multiplicación como *, división como /)
-
SELECT id, nombre, sueldo * 12, ....
Podemos definir alias para los nombres de columna, tanto para que sirvan de identificador en nuestros programas, como para que aparezcan como cabecera de columna en las presentaciones
-
SELECT id, nombre, sueldo*12 AS Salario_Anual, .....
Tras la cláusula FROM podemos especificar:
- las tablas que intervienen en la consulta
-
SELECT id, nombre, direccion FROM clientes,....
-
- Les podemos asignar alias, y utilizar dichos alias en vez del nombre de las tablas
-
SELECT c.id, c.nombre, d.nombre,....FROM cliente c, departamento d, .........
-
Si utilizamos más de una tabla, deberemos especificar las condiciones de relación, que veremos más adelante.
En la cláusula WHERE, deberemos indicar la(s) condición(es) que deberá cumplir una fila, para aparecer en la consulta;
-
SELECT * FROM clientes WHERE id>10
Por ejemplo, seleccionar todos los clientes que tengan un ID mayor que 10.
Las distintas condiciones, las podemos enlazar con relaciones AND y OR, así como utilizar paréntesis para controlar el orden de ejecución.
En la última parte del SELECT podemos indicar si queremos realizar la selección ordenada por alguna columna, y en qué orden (ascendente/descendente. Para ello, podemos especificar:
-
SELECT ... FROM ... WHERE ... ORDER BY id DESC
Para una selección clasificada por “id”, de forma descendente, o
-
SELECT ... FROM ... WHERE ... ORDER BY nombre
Para una selección clasificada por nombre de forma ascendente.
Ejercicio
1-Listar las columnas id, usuario, nombre y población de la tabla de clientes
Solución
2-Presentar nombre de cliente, población y provincia
Indicamos los campos que queremos de las dos tablas, las tablas implicada y como se relacionan, que en este caso se hacen con dos columnas con mismo nombre, por lo que deberemos utilizar alias para las tablas.
Solución
UPDATE
Utilizaremos esta orden para actualizar la información de uno o varias filas de la tabla
UPDATE <nombre tabla> SET <nombre_columna> = <valor>, <nombre_columna> = <valor>, …….. WHERE <condición que han de cumplir las filas a modificar>
Ejemplo:
Actualizar el valor de la columna USUARIO de la tabla de clientes para el cliente con ID = 3, dejando el valor del campo a ‘jose’
DELETE
Con este comando, podemos borrar filas de una tabla ( incluso todas las filas de una tabla)
DELETE FROM <nombretabla> WHERE <condicion que cumplen>
Ejemplo
Si queremos borrar todos los clientes con id mayor que 10 (tranquilos, no hay ninguno), escribiremos