Lenguaje de consulta estructurado
SQL : Structured Query Language
Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas.
SQL es un estándar
Es mentira que es un estándar
Pero todas las DB soportan los comandos principales de manera bastante similar.
SELECT * FROM Customers;
Probarlo aquí (usar Chrome, Opera o Safari)
Considerar que SQL no es sensible a las mayúsculas. Así que SELECT y select funcionarán igual.
Algunas bases de datos requieren el punto y coma y otras no
Extrae datos desde una base de datos
SELECT nombre_columna, nombre_columna
FROM nombre_tabla;
y
SELECT * FROM nombre_tabla;
Por ejemplo:
SELECT CustomerName,City FROM Customers;
Trae sólo las columnas "CustomerName" y "City" de la tabla "Customers"
Traer todos los datos de la tabla Employees
Traer los datos de los campos LastName y FirstName de la tabla Employees
Trae sólo los resultados diferentes de nuestra consulta
Ejemplo, notar la diferencia entre
SELECT City FROM Customers;
y
SELECT DISTINCT City FROM Customers;
Se utiliza para filtrar los registros
Sintaxis:
SELECT nombre_columna,nombre_columna
FROM nombre_tabla
WHERE nombre_columna operador valor;
Ejemplo
Para traer los clientes de méxico solamente:
SELECT * FROM Customers
WHERE Country='Mexico';
Los campos de texto van entre comillas y los numéricos sin comillas.
Utilizados en la cáusula Where para consultas más complejas
Ejemplo:
SELECT * FROM Customers
WHERE Country='Germany'
AND City='Berlin';
Sólo trae los clientes de Alemania que además sean de Berlín
SELECT * FROM Customers
WHERE City='Berlin'
OR City='München';
Trae a los clientes de Berín y además los de München
Se pueden combinar los operadores y agruparlos con paréntesis
Sirve para ordenar los resultados por una o varias columnas indicadas
Sintaxis
SELECT nombre_columna,nombre_columna
FROM nombre_tabla
ORDER BY nombre_columna,nombre_columna ASC|DESC;
Ejemplo
SELECT * FROM Customers
ORDER BY Country DESC;
Traer desde la tabla Products todos los productos cuyo precio (columna Price) sea mayor o igual a 20
Ordenarlos por Price
Hacer que el más caro aparezca primero
Sirve para insertar nuevos registros en una tabla
Sin especificar columnas:
INSERT INTO nombre_tabla
VALUES (valor1,valor2,valor3,...);
Especificando columnas:
INSERT INTO nombre_tabla (columna1,columna2,columna3,...)
VALUES (valor1,valor2,valor3,...);
Ejemplo:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cosme Fulanito','Lrrr','Calle Falsa 21','Omicron Persei 8','4006','Noruega');
Modificación de datos
UPDATE nombre_tabla
SET columna1=valor1,columna2=valor2,...
WHERE alguna_columna=algun_valor;
Borrando registros
DELETE FROM nombre_tabla
WHERE alguna_columna=algun_valor;
Crear un Empleado con tus datos personales
Modificar el nombre de Cosme Fulanito por el de Max Powers
Borrar a Max Powers
Utilizado para crear tablas
CREATE TABLE nombre_tabla
(
nombre_columna1 tipo_de_dato(tamaño),
nombre_columna2 tipo_de_dato(tamaño),
nombre_columna3 tipo_de_dato(tamaño),
....
);
Ejemplo
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
Sirve para borrar índices, tablas y hasta bases de datos
Para borrar tabla:
DROP TABLE nombre_tabla
Para borrar una base de datos
DROP DATABASE nombre_base_de_datos