Para hacer consultas a una base de datos lo primero que tenemos que hacer es escribir la palabra reservada SELECT seguido del nombre de los campos que queremos consultar.
Ejm
SELECT nombre, apellidos
Después utilizamos la palabra reservada FROM para elegir la tabla sobre la que queremos consultar.
Ejm
SELECT nombre, apellidos FROM ejemplo.contactos;
Por último, como podemos ver, ponemos el punto y coma.
Extraer toda la información
Para ello utilizamos el signo de asterisco, el cual trae todos los campos que tenemos en nuestra tabla.
Ejm
SELECT * FROM ejemplo.contactos;
Cuantos registros hay en una tabla
Para ello se utiliza la palabra reservada COUNT.
Ejm
SELECT COUNT(*) FROM ejemplo.contactos;
Registros únicos con DISTINCT
Imaginemos que dos direcciones son iguales y sólo queremos que devuelvan las direcciones únicas, para ello ponemos la palabra reservada DISTINCT delante del campo sobre el que realizamos la consulta, de la siguiente manera.
Ejm
SELECT DISTINCT direccion FROM ejemplo.contactos;
Esto devolverá valores únicos. Las direcciones duplicadas sólo se devolverán una vez.
Registro en particular
Lo que queremos es encontrar un registro en particular, para ello usamos un filtro utilizando la palabra reservada WHERE seguida del nombre del campo que queremos filtrar, de la siguiente manera.
Ejm
SELECT * FROM ejemplo.contactos WHERE nombre="Francisco";
Esto devolverá todos los registros pero cuyo nombre coincide con Francisco. Cuando usamos el signo igual, estamos diciendo que extraiga todos los registros cuyo nombre sea exactamente Francisco en nuestro caso. Para extraer todos los registros cuyo nombre sea Francisco y pueda estar en cualquier parte del texto hemos de utilizar el caracter de porcentaje (%) antes del valor, después del valor, o antes y después del valor, de la siguiente manera.
Ejm
SELECT * FROM ejemplo.contactos WHERE nombre LIKE "%Francisco"; // ANTES DE Francisco
SELECT * FROM ejemplo.contactos WHERE nombre LIKE "Francisco%"; // DESPUÉS DE Francisco
SELECT * FROM ejemplo.contactos WHERE nombre LIKE "%Francisco%"; ANTES O DESPUÉS DE Francisco
Para utilizar los porcentajes, el símbolo igual lo vamos a sustituir por la palabra reservada LIKE, como se muestra en el ejm de arriba.
Limitar la cantidad de registros
Para ello utilizamos la palabra reservada LIMIT de la siguiente manera.
Ejm
SELECT * FROM ejemplo.contactos LIMIT 2;
Va a devolver únicamente los dos primeros registros.
En el caso de que queramos que traiga los dos últimos creamos la siguiente sintaxis
Ejm
SELECT * FROM ejemplo.contactos LIMIT 1, 2;
El 1 indica a partir de que registro queremos que traiga los resultados, y el 2 indica el número de registros que queremos que nos traiga.
La sentencia WHERE no sirve sólo para poder recuperar registros de nuestra base de datos, sino también lo vamos utilizar para actualizar y eliminar registros.
Actualizar registros
Podemos usar la siguiente sintaxis.
Ejm
UPDATE TABLE ejemplo.contactos SET telefono = '123456789' WHERE nombre LIKE '%Francisco%';
Esto modificará todos los registros cuyo nombre sea Francisco.
Workbench, por defecto no nos va a permitir modificar grandes cantidades de datos, debemos desactivar el modo seguro, que es una protección para nosotros mismos por si eliminamos sin querer.
Desactivar modo seguro
La ruta para ello es:
Edit > Preferences > SQL Editor > Safe Updates (rejects UPDATEs and DELETEs with no restrictions)
Por defecto la casilla viene activada, hemos de desactivarla y ejecutaremos nuestro Workbench en modo no seguro. Después tenemos que reiniciar nuestro XAMPP para que se desactive el modo seguro.