Select

Uso:

Obtener los datos de las columnas especificadas de la tabla especificada.

Sintaxis:

SELECT column_name(s) FROM table_name

Explicación:

Selecciona columnas especificadas de la base de datos y permite seleccionar una o más columnas o filas especificadas de una o más tablas especificadas. La sintaxis completa de la sentencia SELECT es bastante compleja, pero las cláusulas principales se pueden resumir como:

SELECT select_list 
[ INTO new_table ] 
FROM table_source 
[ WHERE search_condition ] 
[ GROUP BY group_by_expression ] 
[ HAVING search_condition ] 
[ ORDER BY order_expression [ ASC | DESC ] ] 

Ejemplo:

Los datos en la tabla "Persons" son:

LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger

Seleccionar los datos de los campos "LastName", "FirstName":

SELECT LastName,FirstName FROM Persons

Resultado devuelto:

LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari

Seleccionar los datos de todos los campos:

SELECT * FROM Persons

Resultado devuelto:

LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger

Where

Uso:

Se utiliza para especificar un criterio para una consulta de selección.

Sintaxis:

SELECT column FROM table WHERE column condition value

Los siguientes operadores se pueden usar en WHERE:

=,<>,>,<,>=,<=,BETWEEN,LIKE

Nota: en algunas versiones de SQL, el signo de desigualdad < > se puede escribir como != .

Explicación:

La sentencia SELECT devuelve los datos cuya condición en la cláusula WHERE es verdadera.

Ejemplo:

Seleccionar de la tabla "Persons" las personas que viven en "Sandnes":

SELECT * FROM Persons WHERE City='Sandnes'

Los datos en la tabla "Persons" son:

LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Stale Kaivn 18 Sandnes 1980
Pettersen Kari Storgt 20 Stavanger 1960

Resultado devuelto:

LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Stale Kaivn 18 Sandnes 1980

And & Or

Uso:

En la cláusula WHERE, AND y OR se usan para conectar dos o más condiciones.

Explicación:

AND, al combinar dos expresiones booleanas, solo devuelve TRUE si ambas expresiones son TRUE.

OR, al combinar dos expresiones booleanas, devuelve TRUE si al menos una de las condiciones es TRUE.

Ejemplo:

Datos originales en la tabla "Persons":

LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes

Usar el operador AND para buscar en la tabla "Persons" los datos donde FirstName sea "Tove" y LastName sea "Svendson":

SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'

Resultado devuelto:

LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes

Usar el operador OR para buscar en la tabla "Persons" los datos donde FirstName sea "Tove" o LastName sea "Svendson":

SELECT * FROM Persons
WHERE firstname='Tove'
OR lastname='Svendson'

Resultado devuelto:

LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes

También puedes combinar AND y OR (usando paréntesis para formar expresiones complejas), por ejemplo:

SELECT * FROM Persons WHERE
(FirstName='Tove' OR FirstName='Stephen')
AND LastName='Svendson'

Resultado devuelto:

LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes

Between…And

Uso:

Especifica el rango de los datos que se deben devolver.

Sintaxis:

SELECT column_name FROM table_name
WHERE column_name
BETWEEN value1 AND value2

Ejemplo:

Datos originales en la tabla "Persons":

LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Nordmann Anna Neset 18 Sandnes
Pettersen Kari Storgt 20 Stavanger
Svendson Tove Borgvn 23 Sandnes

Usar BETWEEN...AND para devolver los datos donde LastName esté desde "Hansen" hasta "Pettersen":

SELECT * FROM Persons WHERE LastName 
BETWEEN 'Hansen' AND 'Pettersen'

Resultado devuelto:

LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Nordmann Anna Neset 18 Sandnes
Pettersen Kari Storgt 20 Stavanger

Para mostrar los datos fuera del rango especificado, también se puede usar el operador NOT:

SELECT * FROM Persons WHERE LastName 
NOT BETWEEN 'Hansen' AND 'Pettersen'

Resultado devuelto:

LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes

Distinct

Uso:

La palabra clave DISTINCT se utiliza para devolver valores únicos.

Sintaxis:

SELECT DISTINCT column-name(s) FROM table-name

Explicación:

Cuando existen valores duplicados en column-name(s), el resultado devuelto solo conserva uno.

Ejemplo:

Datos originales en la tabla "Orders":

Company OrderNumber
Sega 3412
EJEMPLO 2312
Trio 4678
EJEMPLO 6798

Usar la palabra clave DISTINCT para devolver valores únicos en el campo Company:

SELECT DISTINCT Company FROM Orders

Resultado devuelto:

Company
Sega
EJEMPLO
Trio

Order by

Uso:

Especifica el ordenamiento del conjunto de resultados.

Sintaxis:

SELECT column-name(s) FROM table-name ORDER BY  { order_by_expression [ ASC | DESC ] } 

Explicación:

Especifica el ordenamiento del conjunto de resultados, se puede ordenar usando ASC (orden ascendente, del valor más bajo al más alto) o DESC (orden descendente, del valor más alto al más bajo); el método predeterminado es ASC.

Ejemplo:

Datos originales en la tabla "Orders":

Company OrderNumber
Sega 3412
ABC Shop 5678
EJEMPLO 2312
EJEMPLO 6798

Devolver el conjunto de resultados en orden ascendente según el campo Company:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company

Resultado devuelto:

Company OrderNumber
ABC Shop 5678
Sega 3412
EJEMPLO 6798
EJEMPLO 2312

Devolver el conjunto de resultados en orden descendente según el campo Company:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC

Resultado devuelto:

Company OrderNumber
EJEMPLO 6798
EJEMPLO 2312
Sega 3412
ABC Shop 5678

Group by

Uso:

Agrupa el conjunto de resultados, a menudo se usa con funciones de agregación.

Sintaxis:

SELECT column,SUM(column) FROM table GROUP BY column

Ejemplo:

Datos originales en la tabla "Sales":

Company Amount
EJEMPLO 5500
IBM 4500
EJEMPLO 7100

Agrupar según el campo Company y calcular el total de Amount para cada Company:

SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company

Resultado devuelto:

Company SUM(Amount)
EJEMPLO 12600
IBM 4500

Having

Uso:

Especifica la condición de búsqueda para grupos o resúmenes.

Sintaxis:

SELECT column,SUM(column) FROM table
GROUP BY column
HAVING SUM(column) condition value

Explicación:

HAVING normalmente se usa junto con la cláusula GROUP BY. Cuando no se usa GROUP BY, HAVING funciona de manera similar a la cláusula WHERE.

Ejemplo:

Datos originales en la tabla "Sales":

Company Amount
EJEMPLO 5500
IBM 4500
EJEMPLO 7100

Agrupar según el campo Company y obtener los datos donde el total de Amount para cada Company sea superior a 10000:

SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company HAVING SUM(Amount)>10000

Resultado devuelto:

Company SUM(Amount)
EJEMPLO 12600

Join

Uso:

Cuando necesitas seleccionar un conjunto de resultados de dos o más tablas, usarás JOIN.

Ejemplo:

Los datos en la tabla "Employees" son los siguientes (donde ID es la clave principal):

ID Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari

Los datos en la tabla "Orders" son los siguientes:

ID Product
01 Printer
03 Table
03 Chair

Seleccionar datos relacionando el ID de Employees con el ID de Orders:

SELECT Employees.Name, Orders.Product
FROM Employees, Orders
WHERE Employees.ID = Orders.ID

Resultado devuelto:

Name Product
Hansen, Ola Printer
Svendson, Stephen Table
Svendson, Stephen Chair

O también puedes usar la palabra clave JOIN para realizar la operación anterior:

SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.ID = Orders.ID

INNER JOINSintaxis de:

SELECT field1, field2, field3
FROM first_table
INNER JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

Explicación:

El conjunto de resultados devuelto por INNER JOIN son todos los datos que coinciden en las dos tablas.

LEFT JOINSintaxis de:

SELECT field1, field2, field3
FROM first_table
LEFT JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

Usar la tabla "Employees" para hacer una unión externa izquierda con la tabla "Orders" y encontrar los datos relacionados:

SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders
ON Employees.ID = Orders.ID

Resultado devuelto:

Name Product
Hansen, Ola Printer
Svendson, Tove
Svendson, Stephen Table
Svendson, Stephen Chair
Pettersen, Kari

Explicación:

LEFT JOIN devuelve todas las filas de "first_table", incluso si no hay datos coincidentes en "second_table".

RIGHT JOINSintaxis de:

SELECT field1, field2, field3
FROM first_table
RIGHT JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

Usar la tabla "Employees" para hacer una unión externa derecha con la tabla "Orders" y encontrar los datos relacionados:

SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.ID = Orders.ID

Resultado devuelto:

Name Product
Hansen, Ola Printer
Svendson, Stephen Table
Svendson, Stephen Chair

Explicación:

RIGHT JOIN devuelve todas las filas de "second_table", incluso si no hay datos coincidentes en "first_table".

Alias

Uso:

Se puede usar en tablas, conjuntos de resultados o columnas para darles un nombre lógico.

Sintaxis:

Poner un alias a una columna:

SELECT column AS column_alias FROM table

Poner un alias a una tabla:

SELECT column FROM table AS table_alias

Ejemplo:

Datos originales en la tabla "Persons":

LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger

Ejecutar el siguiente SQL:

SELECT LastName AS Family, FirstName AS Name
FROM Persons

Resultado devuelto:

Family Name
Hansen Ola
Svendson Tove
Pettersen Kari

Ejecutar el siguiente SQL:

SELECT LastName, FirstName
FROM Persons AS Employees

Resultado devuelto:

Los datos en Employees son:

LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari

Insert Into

Uso:

Insertar nuevas filas en la tabla.

Sintaxis:

Insertar una fila de datos:

INSERT INTO table_name
VALUES (value1, value2,....)

Insertar una fila de datos en los campos especificados:

INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....)

Ejemplo:

Datos originales en la tabla "Persons":

LastName FirstName Address City
Pettersen Kari Storgt 20 Stavanger

Ejecutar el siguiente SQL para insertar una fila de datos:

INSERT INTO Persons 
VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')

Después de insertar, los datos en la tabla "Persons" son:

LastName FirstName Address City
Pettersen Kari Storgt 20 Stavanger
Hetland Camilla Hagabakka 24 Sandnes

Ejecutar el siguiente SQL para insertar una fila de datos en los campos especificados:

INSERT INTO Persons (LastName, Address)
VALUES ('Rasmussen', 'Storgt 67')

Después de insertar, los datos en la tabla "Persons" son:

LastName FirstName Address City
Pettersen Kari Storgt 20 Stavanger
Hetland Camilla Hagabakka 24 Sandnes
Rasmussen Storgt 67

Update

Uso:

Actualizar los datos existentes en la tabla.

Sintaxis:

UPDATE table_name SET column_name = new_value
WHERE column_name = some_value

Ejemplo:

Datos originales en la tabla "Person":

LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Storgt 67

Ejecutar el siguiente SQL para actualizar el campo FirstName a "Nina" en la tabla Person donde el campo LastName sea "Rasmussen":

UPDATE Person SET FirstName = 'Nina'
WHERE LastName = 'Rasmussen'

Después de actualizar, los datos en la tabla "Person" son:

LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Storgt 67

Del mismo modo, con la sentencia UPDATE también se pueden actualizar varios campos a la vez:

UPDATE Person
SET Address = 'Stien 12', City = 'Stavanger'
WHERE LastName = 'Rasmussen'

Después de actualizar, los datos en la tabla "Person" son:

LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Stien 12 Stavanger

Delete

Uso:

Eliminar los datos de la tabla.

Sintaxis:

DELETE FROM table_name WHERE column_name = some_value

Ejemplo:

Datos originales en la tabla "Person":

LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Stien 12 Stavanger

Eliminar los datos de la tabla Person donde LastName sea "Rasmussen":

DELETE FROM Person WHERE LastName = 'Rasmussen'

Después de ejecutar la sentencia de eliminación, los datos en la tabla "Person" son:

LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger

Crear tabla Create Table

Propósito:

Crear una nueva tabla.

Sintaxis:

CREATE TABLE table_name 
(
column_name1 data_type, 
column_name2 data_type, 
.......
)

Ejemplo:

Crear una tabla llamada "Person" que tiene 4 campos "LastName", "FirstName", "Address", "Age":

CREATE TABLE Person 
(
LastName varchar,
FirstName varchar,
Address varchar,
Age int
)

Si deseas especificar la longitud máxima de almacenamiento de un campo, puedes hacerlo así:

CREATE TABLE Person 
(
LastName varchar(30),
FirstName varchar(30),
Address varchar(120),
Age int(3) 
)

La siguiente tabla enumera algunos tipos de datos en SQL:

Tipo de datos Descripción
integer(size)
int(size)
smallint(size)
tinyint(size)
Solo almacena números enteros. El número máximo de dígitos se especifica mediante size entre paréntesis.
decimal(size,d)
numeric(size,d)
Almacena números con decimales. El número máximo de dígitos se especifica mediante "size". El número máximo de dígitos a la derecha del punto decimal se especifica mediante "d".
char(size) Almacena una cadena de longitud fija (puede contener letras, números y caracteres especiales). El tamaño de la cadena se especifica mediante size entre paréntesis.
varchar(size) Almacena una cadena de longitud variable (puede contener letras, números y caracteres especiales). La longitud máxima de la cadena se especifica mediante size entre paréntesis.
date(yyyymmdd) Almacena fechas.

Modificar tabla Alter Table

Propósito:

Agregar o eliminar campos en una tabla existente.

Sintaxis:

ALTER TABLE table_name 
ADD column_name datatype
ALTER TABLE table_name 
DROP COLUMN column_name

Nota: algunos sistemas de gestión de bases de datos no permiten eliminar campos de una tabla.

Ejemplo:

Datos originales en la tabla "Person":

LastName FirstName Address
Pettersen Kari Storgt 20

Agregar un campo llamado City en la tabla Person:

ALTER TABLE Person ADD City varchar(30)

Después de agregarlo, los datos en la tabla son los siguientes:

LastName FirstName Address City
Pettersen Kari Storgt 20

Eliminar el campo Address existente en la tabla Person:

ALTER TABLE Person DROP COLUMN Address

Después de eliminarlo, los datos en la tabla son los siguientes:

LastName FirstName City
Pettersen Kari

Eliminar tabla Drop Table

Propósito:

Elimina de la base de datos la definición de una tabla de datos y todos los datos, índices, disparadores, restricciones y especificaciones de permisos de dicha tabla.

Sintaxis:

DROP TABLE table_name

Crear base de datos Create Database

Propósito:

Crear una nueva base de datos.

Sintaxis:

CREATE DATABASE database_name

Eliminar base de datos Drop Database

Propósito:

Eliminar la base de datos existente.

Sintaxis:

DROP DATABASE database_name

Funciones de agregación

count

Propósito:

Devuelve el número de filas en el conjunto de resultados seleccionado.

Sintaxis:

SELECT COUNT(column_name) FROM table_name

Ejemplo:

Los datos originales en la tabla "Persons" son los siguientes:

Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19

Seleccionar el número total de registros:

SELECT COUNT(Name) FROM Persons

Resultado de la ejecución:

3

sum

Propósito:

Devuelve la suma de todos los valores de una expresión, o solo los valores DISTINCT. SUM solo se puede usar en filas numéricas. Se ignoran los valores Null.

Sintaxis:

SELECT SUM(column_name) FROM table_name

Ejemplo:

Los datos originales en la tabla "Persons" son los siguientes:

Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19

Seleccionar la suma de las edades de todas las personas en la tabla "Persons":

SELECT SUM(Age) FROM Persons

Resultado de la ejecución:

98

Seleccionar la suma de las edades de las personas mayores de 20 años en la tabla "Persons":

SELECT SUM(Age) FROM Persons WHERE Age>20

Resultado de la ejecución:

79

avg

Propósito:

Devuelve el valor promedio de los valores en el conjunto de resultados seleccionado. Se ignoran los valores Null.

Sintaxis:

SELECT AVG(column_name) FROM table_name

Ejemplo:

Los datos originales en la tabla "Persons" son los siguientes:

Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19

Seleccionar la edad promedio de todas las personas en la tabla "Persons":

SELECT AVG(Age) FROM Persons

Resultado de la ejecución:

32.67

Seleccionar la edad promedio de las personas mayores de 20 años en la tabla "Persons":

SELECT AVG(Age) FROM Persons WHERE Age>20

Resultado de la ejecución:

39.5

max

Propósito:

Devuelve el valor máximo de los valores en el conjunto de resultados seleccionado. Se ignoran los valores Null.

Sintaxis:

SELECT MAX(column_name) FROM table_name

Ejemplo:

Los datos originales en la tabla "Persons" son los siguientes:

Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19

Seleccionar la edad máxima en la tabla "Persons":

SELECT MAX(Age) FROM Persons

Resultado de la ejecución:

45

min

Propósito:

Devuelve el valor mínimo de los valores en el conjunto de resultados seleccionado. Se ignoran los valores Null.

Sintaxis:

SELECT MIN(column_name) FROM table_name

Ejemplo:

Los datos originales en la tabla "Persons" son los siguientes:

Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19

Seleccionar la edad mínima en la tabla "Persons":

SELECT MIN(Age) FROM Persons

Resultado de la ejecución:

19

Funciones aritméticas

abs

Propósito:

Devuelve el valor absoluto positivo de la expresión numérica especificada (Numeric Expression).

Sintaxis:

ABS(numeric_expression )

Ejemplo:

ABS(-1.0) ABS(0.0) ABS(1.0)

Resultado de la ejecución:

1.0         0.0        1.0

ceil

Propósito:

Devuelve el entero más pequeño mayor o igual que la expresión numérica dada.

Sintaxis:

CEIL(numeric_expression )

Ejemplo:

CEIL(123.45)   CEIL(-123.45)

Resultado de la ejecución:

124.00            -123.00

floor

Propósito:

Devuelve el entero más grande menor o igual que la expresión numérica dada.

Sintaxis:

FLOOR(numeric_expression )

Ejemplo:

FLOOR(123.45)   FLOOR(-123.45)

Resultado de la ejecución:

123.00             -124.00

cos

Propósito:

Función matemática que devuelve el coseno trigonométrico del ángulo especificado (en radianes) en la expresión especificada.

Sintaxis:

COS(numeric_expression )

Ejemplo:

COS(14.78)

Resultado de la ejecución:

-0.599465

cosh

Propósito:

Devuelve el ángulo en radianes cuyo coseno es la expresión float especificada, también conocido como arcocoseno.

Sintaxis:

COSH(numeric_expression )

Ejemplo:

COSH(-1)

Resultado de la ejecución:

3.14159

sin

Propósito:

Devuelve la función seno trigonométrica del ángulo dado (en radianes) como una expresión numérica aproximada (float).

Sintaxis:

SIN(numeric_expression )

Ejemplo:

SIN(45.175643)

Resultado de la ejecución:

0.929607

sinh

Propósito:

Devuelve el ángulo en radianes cuyo seno es la expresión float especificada, también conocido como arcoseno.

Sintaxis:

SINH(numeric_expression )

Ejemplo:

SINH(-1.00)

Resultado de la ejecución:

-1.5708

tan

Propósito:

Devuelve la tangente de la expresión de entrada.

Sintaxis:

TAN(numeric_expression )

Ejemplo:

TAN(3.14159265358979/2)

Resultado de la ejecución:

1.6331778728383844E+16

tanh

Propósito:

Devuelve el ángulo en radianes cuya tangente es la expresión float especificada, también conocido como arcotangente.

Sintaxis:

TANH(numeric_expression )

Ejemplo:

TANH(-45.01)

Resultado de la ejecución:

-1.54858

exp

Propósito:

Devuelve el valor exponencial (Exponential) de la expresión float dada.

Sintaxis:

EXP(numeric_expression )

Ejemplo:

EXP(378.615345498)

Resultado de la ejecución:

2.69498e+164 

log

Propósito:

Devuelve el logaritmo natural de la expresión float dada.

Sintaxis:

LOG(numeric_expression )

Ejemplo:

LOG(5.175643)

Resultado de la ejecución:

1.64396 

power

Propósito:

Devuelve el valor de la expresión dada elevada a la potencia especificada.

Sintaxis:

POWER(numeric_expression,v )

Ejemplo:

POWER(2,6)

Resultado de la ejecución:

64

sign

Propósito:

Devuelve el signo positivo (+1), cero (0) o negativo (-1) de la expresión dada.

Sintaxis:

SIGN(numeric_expression )

Ejemplo:

SIGN(123)    SIGN(0)    SIGN(-456)

Resultado de la ejecución:

1             0          -1

sqrt

Propósito:

Devuelve el cuadrado de la expresión dada.

Sintaxis:

SQRT(numeric_expression )

Ejemplo:

SQRT(10)

Resultado de la ejecución:

100

Más tutoriales

Puedes consultar tutoriales más detallados en:Tutorial de SQL