Está en la página 1de 15

SQL SERVER

Comandos SQL más importantes


 SELECT - extrae datos de una base de datos
 UPDATE - actualiza datos en una base de datos
 DELETE - elimina datos de una base de datos
 INSERT INTO - inserta nuevos datos en una base de datos
 CREATE DATABASE - crea una nueva base de datos
 ALTER DATABASE - modifica una base de datos
 CREATE TABLE - crea una nueva tabla
 ALTER TABLE - modifica una tabla
 DROP TABLE - elimina una tabla
 CREATE INDEX - crea un índice (clave de búsqueda)
 DROP INDEX - elimina un índice

SELECT
SELECT * FROM table_name;

SELECT column1, column2, ...
FROM table_name;

SELECT DISTINCT column1, column2, ...
FROM table_name;

SELECT COUNT(DISTINCT column1) FROM table_name;

SELECT column1, column2, ...
FROM table_name
WHERE condition;

Nota: La cláusula WHERE no sólo se utiliza en las declaraciones SELECT,


sino que también se utiliza en UPDATE, DELETE, etc!

Los siguientes operadores se pueden utilizar en la cláusula WHERE:


Operator Description

= Equal

> Greater than

< Less than

>= Greater than or equal

<= Less than or equal

La cláusula <> Not equal. Note: In some WHERE se


puede versions of SQL this operator combinar
con los may be written as != operadores
AND, OR y NOT.
BETWEEN Between a certain range
Los operad ores AND
y OR se LIKE Search for a pattern utilizan
para filtrar registros en
función de IN To specify multiple possible más de una
condición: values for a column

 El operador AND muestra un registro si todas las condiciones


separadas por AND son VERDADERAS.

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

 El operador OR muestra un registro si alguna de las condiciones


separadas por OR es VERDADERA.

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

 El operador NOT muestra un registro si la (s) condición (es) NO ES


VERDADERA.

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

También puede combinar los operadores AND, OR y NOT (use paréntesis


para formar expresiones complejas).
La palabra clave ORDER BY se utiliza para ordenar el conjunto de
resultados en orden ascendente o descendente.

La palabra clave ORDER BY ordena los registros en orden ascendente de


forma predeterminada. Para ordenar los registros en orden descendente,
use la palabra clave DESC.

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

SELECT * FROM table_name
ORDER BY column1;

SELECT * FROM table_name
ORDER BY column1 DESC;

SELECT * FROM table_name
ORDER BY column1, column2;

SELECT * FROM table_name
ORDER BY column1 ASC, column2 DESC;

Un campo con un valor NULL es un campo sin valor.

Si un campo en una tabla es opcional, es posible insertar un nuevo


registro o actualizar un registro sin agregar un valor a este campo. Luego,
el campo se guardará con un valor NULL.

Nota: Un valor NULO es diferente de un valor cero o un campo que


contiene espacios. Un campo con un valor NULO es uno que se ha dejado
en blanco durante la creación del registro.

No es posible probar valores NULL con operadores de comparación, como


=, <o <>.

Tendremos que usar los operadores IS NULL y en su  lugar IS NOT NULL.

IS NULL

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

IS NOT NULL
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

La cláusula SELECT TOP se utiliza para especificar el número de registros


que se devolverán.

La cláusula SELECT TOP es útil en tablas grandes con miles de


registros. Devolver una gran cantidad de registros puede afectar el
rendimiento.

Nota: No todos los sistemas de bases de datos admiten la cláusula SELECT


TOP. MySQL admite la cláusula LIMIT para seleccionar un número limitado
de registros, mientras que Oracle usa y . FETCH FIRST n ROWS
ONLYROWNUM

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

La función MIN() devuelve el valor más pequeño de la columna


seleccionada.

SELECT MIN(column_name)
FROM table_name
WHERE condition;

La función MAX() devuelve el valor más grande de la columna


seleccionada.

SELECT MAX(column_name)
FROM table_name
WHERE condition;

La función COUNT() devuelve el número de filas que coincide con un


criterio específico.

SELECT COUNT(column_name)
FROM table_name
WHERE condition;
La función AVG() devuelve el valor medio de una columna numérica. 

SELECT AVG(column_name)
FROM table_name
WHERE condition;

La función SUM() devuelve la suma total de una columna numérica.

SELECT SUM(column_name)
FROM table_name
WHERE condition;

El operador LIKE se usa en una cláusula WHERE para buscar un patrón


específico en una columna.

Hay dos comodines que se utilizan a menudo junto con el operador LIKE:

  El signo de porcentaje (%) representa cero, uno o varios


caracteres.
  El signo de subrayado (_) representa un solo carácter.

Nota: MS Access usa un asterisco (*) en lugar del signo de porcentaje


(%) y un signo de interrogación (?) En lugar del guión bajo (_).

¡El signo de porcentaje y el subrayado también se pueden usar en


combinaciones!

SELECT column1, column2, ...


FROM table_name
WHERE columnN LIKE pattern;

Sugerencia: también puede combinar cualquier número de condiciones

mediante los operador

es AND o OR.

Ejemplos que muestran diferentes operadores LIKE con comodines '%' y


'_':
LIKE
LIKE Operator
Operator Description
Description
WHERE
WHERE CustomerName
CustomerName LIKE
LIKE 'a%'
'_r%' Busca cualquier
Encuentra cualquiervalor
valorque
quecomience
tenga "r" con "a".
en la segunda
posición.
WHERE CustomerName LIKE '%a' Encuentra cualquier valor que termine con "a".
WHERE CustomerName LIKE 'a_%' Busca cualquier valor que comience con "a" y tenga al
WHERE CustomerName LIKE '%or%' menos 2 caracteres
Busca de longitud.
cualquier valor que tenga "o" en cualquier
posición.
WHERE CustomerName LIKE 'a__%' Busca cualquier valor que comience con "a" y tenga al
menos 3 caracteres de longitud.

WHERE ContactName LIKE 'a%o' Busca cualquier valor que comience con "a" y termine
con "o".

Se utiliza un carácter comodín(wildcard) para sustituir uno o más


caracteres en una cadena.

Los caracteres comodín se utilizan con el operador LIKE. El operador LIKE


se usa en una cláusula WHERE para buscar un patrón específico en una
columna.  

Caracteres comodín en SQL Server

Symbol Description Example

% Representa cero o más caracteres. bl% finds bl, black, blue, and blob

_ Representa un solo carácter. h_t finds hot, hat, and hit

[] Representa cualquier carácter h[oa]t finds hot and hat, but not hit
individual entre corchetes.

^ Representa cualquier carácter que h[^oa]t finds hit, but not hot and hat
no esté entre corchetes.

- Representa una variedad de c[a-b]t finds cat and cbt


caracteres

¡Todos los comodines también se pueden usar en combinaciones!


Ejemplos que muestran diferentes operadores LIKE con comodines '%' y
'_':

LIKE Operator Description

WHERE CustomerName LIKE 'a%' Busca cualquier valor que comience con "a".
WHERE CustomerName LIKE '_r%' Encuentra cualquier valor que tenga "r" en la segunda
posición.
WHERE CustomerName LIKE '%a' Encuentra cualquier valor que termine con "a".

WHERE
WHERE CustomerName
CustomerName LIKE
LIKE 'a_%'
'%or%' Busca
Busca cualquier
cualquier valor
valor que
que comience
tenga "o" con "a" y tenga al
en cualquier
menos 2 caracteres de longitud.
posición.

WHERE CustomerName LIKE 'a__%' Busca cualquier valor que comience con "a" y tenga al
menos 3 caracteres de longitud.

WHERE ContactName LIKE 'a%o' Busca cualquier valor que comience con "a" y termine
con "o".

El operador IN le permite especificar varios valores en una cláusula WHERE.

El operador IN es una abreviatura de múltiples OR condiciones .

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

SELECT column_name(s)
FROM table_name
WHERE column_name  NOT IN (value1, value2, ...);

SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT STATEMENT);

El operador BETWEEN selecciona valores dentro de un rango


determinado. Los valores pueden ser números, texto o fechas.

El operador BETWEEN es inclusivo: se incluyen los valores inicial y final. 


SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

SELECT column_name(s)
FROM table_name
WHERE column_name NOT BETWEEN value1 AND value2;

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
AND column_name IN (value1, value2, ...);

La palabra clave AS crea un alias.

Los alias de SQL se utilizan para dar un nombre temporal a una tabla, o
una columna de una tabla.

Los alias se utilizan a menudo para hacer que los nombres de las
columnas sean más legibles.

Un alias solo existe mientras dura esa consulta.

Sintaxis de alias de columna

SELECT column_name AS alias_name
FROM table_name;

La siguiente instrucción SQL crea dos alias, uno para la columna1 y otro
para la columna2. 

Nota: Requiere comillas dobles o corchetes si el nombre de alias contiene


espacios:

SELECT column_name1 AS alias_name1, column_name2 AS [alias_name2]
FROM table_name;

La siguiente instrucción SQL crea un alias llamado "alias_name" que


combina cuatro columnas (column_name2, column_name3, column_name4 y
column_name5):

SELECT column_name1, column_name2 + ', ' + column_name3 + ' ' +


column_name4 + ', ' + column_name5 AS alias_name
FROM table_name;
Nota: Para que la declaración SQL anterior funcione en MySQL, use lo
siguiente:

SELECT column_name1, CONCAT(column_name2,', ',column_name3,',


',column_name4,', ',column_name5) AS alias_name
FROM table_name;

Sintaxis de alias de la tabla

SELECT column_name(s)
FROM table_name AS alias_name;

La siguiente instrucción SQL selecciona todos los registros con columna =


valor. Usamos las tablas "tabla1" y "tabla2", y les damos los alias de
tabla de "c" y "o" respectivamente (aquí usamos alias para hacer el SQL
más corto):

SELECT o.columna1, o.columna2, c.columna3


FROM tabla1 AS c, tabla2 AS o
WHERE c.columna3=valor AND c.columna=o.columna;

Los alias pueden resultar útiles cuando:

 Hay más de una tabla involucrada en una consulta.


 Las funciones se utilizan en la consulta
 Los nombres de las columnas son grandes o poco legibles
 Dos o más columnas se combinan juntas

Una cláusula JOIN se utiliza para combinar filas de dos o más tablas,


según una columna relacionada entre ellas.

Estos son los diferentes tipos de JOIN en SQL:

 (INNER) JOIN: Devuelve registros que tienen valores coincidentes


en ambas tablas.

La INNER JOIN palabra clave selecciona registros que tienen


valores coincidentes en ambas tablas.
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

JOIN a tres tablas


La siguiente declaración SQL selecciona todos los pedidos con
información del valor1 y del valor2:

SELECT tabla1.columna1, tabla2.columna2, tabla3.columna3


FROM ((tabla1
INNER JOIN tabla2 
ON tabla1.Columna1ID = tabla2.Columna1ID)
INNER JOIN tabla3 
ON tabla1.Columna2ID = tabla3.Columna2ID);

 LEFT (OUTER) JOIN: Devuelve todos los registros de la tabla de la


izquierda y los registros coincidentes de la tabla de la derecha.

La LEFT JOIN palabra clave devuelve todos los registros de la tabla


izquierda (tabla1) y los registros coincidentes de la tabla derecha
(tabla2). El resultado es 0 registros del lado derecho, si no hay
coincidencia.

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

Nota: En algunas bases de datos, LEFT JOIN se llama LEFT OUTER


JOIN.

Nota: La palabra clave LEFT JOIN devuelve todos los registros de


la tabla de la izquierda (table1), incluso si no hay coincidencias en
la tabla de la derecha (table2).

 RIGHT (OUTER) JOIN: Devuelve todos los registros de la tabla de la


derecha y los registros coincidentes de la tabla de la izquierda.
La palabra clave RIGHT JOIN devuelve todos los registros de la
tabla derecha (tabla2) y los registros coincidentes de la tabla
izquierda (tabla1). El resultado es 0 registros del lado izquierdo, si
no hay coincidencia.

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

Nota: En algunas bases de datos RIGHT JOIN se llama RIGHT


OUTER JOIN.

Nota: La RIGHT JOINpalabra clave devuelve todos los registros de


la tabla de la derecha (Empleados), incluso si no hay coincidencias
en la tabla de la izquierda (Pedidos).

 FULL (OUTER) JOIN: Devuelve todos los registros cuando hay una
coincidencia en la tabla izquierda o derecha

La palabra clave FULL OUTER JOIN devuelve todos los registros


cuando hay una coincidencia en los registros de la tabla izquierda
(tabla1) o derecha (tabla2).

Consejo: FULL OUTER JOIN y FULL JOIN son lo mismo.

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;

Nota: ¡ FULL OUTER JOIN potencialmente puede devolver conjuntos


de resultados muy grandes!

Nota: La palabra clave FULL OUTER JOIN devuelve todos los


registros coincidentes de ambas tablas, independientemente de que
la otra tabla coincida o no. Por lo tanto, si hay filas en "Clientes"
que no tienen coincidencias en "Pedidos", o si hay filas en "Pedidos"
que no tienen coincidencias en "Clientes", esas filas también se
enumerarán.

Autounión SQL

Una autocombinación es una combinación normal, pero la tabla se


une a sí misma.

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;

T1 y T2 son alias de tabla diferentes para la misma tabla.

El operador UNION se utiliza para combinar el conjunto de resultados


de dos o más SELECT declaraciones.

 Cada SELECTdeclaración dentro UNIONdebe tener el mismo


número de columnas
 Las columnas también deben tener tipos de datos similares
 Las columnas de cada SELECTdeclaración también deben
estar en el mismo orden

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

El operador UNION selecciona solo valores distintos de forma


predeterminada. Para permitir valores duplicados, use UNION ALL:

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

Nota: Los nombres de las columnas en el conjunto de resultados


suelen ser iguales a los nombres de las columnas en la
primera declaración SELECT.
La declaración GROUP BY agrupa las filas que tienen los mismos
valores en filas de resumen, como "encontrar el número de clientes
en cada país".

La instrucción GROUP BY se utiliza a menudo con funciones de


agregado ( COUNT(), MAX(), MIN(), SUM(), AVG()) a grupo el
conjunto de resultados de una o más columnas.

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

La cláusula HAVING se agregó a SQL porque la palabra clave WHERE


no se puede usar con funciones agregadas.

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

El operador EXISTS se utiliza para probar la existencia de cualquier


registro en una subconsulta.

El operador EXISTS devuelve VERDADERO si la subconsulta


devuelve uno o más registros.

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

INSERT INTO

La declaración INSERT INTO se utiliza para insertar nuevos registros en


una tabla.

Es posible escribir la INSERT INTO declaración de dos formas:


1. Especifique los nombres de las columnas y los valores que se
insertarán:

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

2. Si agrega valores para todas las columnas de la tabla, no es necesario


que especifique los nombres de las columnas en la consulta SQL. Sin
embargo, asegúrese de que el orden de los valores esté en el mismo
orden que las columnas de la tabla.

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

UPDATE

La declaración UPDATE se utiliza para modificar los registros existentes en


una tabla.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Nota: ¡ Tenga cuidado al actualizar registros en una tabla! Note


la cláusula WHERE en la declaración UPDATE. La cláusula WHERE especifica
qué registros deben actualizarse. Si omite la cláusula WHERE, se
actualizarán todos los registros de la tabla.

DELETE

La declaración DELETE se utiliza para eliminar registros existentes en una


tabla.

DELETE FROM table_name WHERE condition;

Nota: ¡ Tenga cuidado al eliminar registros en una tabla! Note la cláusula


WHERE en la declaración DELETE. La cláusula WHERE especifica qué registros
deben eliminarse. Si omite la cláusula WHERE, se eliminarán todos los
registros de la tabla.

También podría gustarte