15. Sentencia INSERT y SELECT

Para poder insertar un registro hacemos uso de la instrucción INSERT INTO, la cual tiene hasta 3 formas distintas de insertar registros.

Ejm

-- Mala práctica
INSERT INTO usuarios VALUES(0, "Francisco","Paredes","info@sutilweb.eu","Dirección",51);

-- Buena práctica
INSERT INTO usuarios (nombre, apellidos, edad) VALUES ("Francisco","Paredes",51);

-- Otra forma no muy utilizada
INSERT INTO usuarios SET nombre = "Francisco", apellidos = "Paredes", edad = 51;

-- Insertar varios registros
INSERT INTO usuarios (nombre, apellidos, edad) VALUES 
 ("Francisco","Paredes",51),
 ("Ines","Paredes",38),
 ("Eva","Paredes",24);

Leer datos

La instrucción para leer los datos es SELECT, que utiliza la siguiente sintaxis.

-- Leer todos los datos
SELECT * FROM usuarios;

-- Leer algunos datos
SELECT nombre, apellidos, edad FROM usuarios;

-- Número de registros
SELECT COUNT(*) FROM usuarios;

-- Claúsula WHERE
SELECT * FROM usuarios WHERE nombre="Francisco";
SELECT * FROM usuarios WHERE nombre IN("Francisco","Inés","Eva");

-- Uso del operador LIKE
-- Empiezan con la letra F
SELECT * FROM usuarios WHERE nombre LIKE "F%";
-- Terminan con la letra o
SELECT * FROM usuarios WHERE nombre LIKE "%o";
-- Empiezan con la letra F y terminan con la letra o
SELECT * FROM usuarios WHERE nombre LIKE "F%o";

-- Uso del operador NOT LIKE
-- Funciona al contrario que el operador LIKE
SELECT * FROM usuarios NOT LIKE "F%"

La claúsula WHERE se suele utilizar con el comando SELECT

Operadores relacionales

Veamos ahora ejms de uso de los operadores relacionales con el comando WHERE.

Ejm

-- Registros mayores que 18
SELECT * FROM usuarios WHERE edad > 18;
-- Registros mayores o iguales que 18
SELECT * FROM usuarios WHERE edad >= 18;

-- Registros iguales a 18
SELECT * FROM usuarios WHERE edad = 18;

-- Registros diferentes a 18
SELECT * FROM usuarios WHERE edad <> 18;
SELECT * FROM usuarios WHERE edad != 18;

Operadores lógicos

Los típicos operadores lógicos son:

  • OR
  • AND
  • NOT: Negar un valor diferente

Ejm

-- Operador de la negación
SELECT * FROM usuarios WHERE NOT nombre = "Francisco"; 

-- Comparar más de un campo con el operador AND 
-- (ambas condiciones se deben cumplir)
SELECT * FROM usuarios WHERE nombre = "Francisco" AND edad > 18;

-- Mostrar uno u otro valor con OR
-- (se debe cumplir una u otra condición)
SELECT * FROM usuarios WHERE nombre = "Francisco" OR edad > 18;
Scroll al inicio