Manual de SQL
Manual de SQL
MATERIA:
Bases de Datos
TEMA:
MANUAL DE SQL
ALUMNO:
Cañedo Encinas Fernando Onorat
CARRERA:
Ingeniería en Sistemas Computacionales
4° Semestre
ÍNDICE PÁG.
* ¿Qué es SQL? 3
* Sintaxis de SQL 4
- Sentencia SELECT 5
- Cláusula WHERE 6
- OPERADORES 7
Operadores AND y OR 7
Operador LIKE 7
Operador IN 8
Operador BETWEEN 8
- Sentencia UPDATE 9
- Sentencia DELETE 9
- Alias 10
- JOIN 10
LEFT JOIN 11
RIGHT JOIN 11
FULL JOIN 11
- Operador UNION 11
- Restricciones 12
Restricción UNIQUE 12
- DROP 13
- ALTER 13
* Funciones de SQL 17
AVG ( ) 17
COUNT ( ) 17
FIRST ( ) 17
LAST ( ) 17
MAX ( ) 17
MIN ( ) 18
SUM ( ) 18
Sentencia GROUP BY 18
Cláusula HAVING 18
UCASE ( ) 18
LCASE ( ) 19
MID ( ) 19
LEN ( ) 19
ROUND ( ) 19
NOW ( ) 19
3
4
¿Qué es SQL?
A pesar de que es un estándar hay muchas versiones diferentes del lenguaje SQL.
Sin embargo, para cumplir con el estándar ANSI deben soportar al menos la mayoría de
los comandos de manera muy similar.
Ejecutar consultas a una base de datos, recuperar datos, insertar, actualizar y borrar
registros, crear nuevas bases de datos, nuevas tablas de una base de datos, crear
procedimientos almacenados, crear vistas, y establecer los permisos en tablas,
procedimientos y vistas de una base de datos.
Los sistemas manejadores de bases de datos relacionales (RDBMS) son la base para
SQL. Los datos en los RDBMS son guardados en objetos de base de datos llamados
“Tablas”. Una tabla es una colección de datos relacionados compuesta de columnas y
renglones.
Una base de datos por lo general contiene una o más tablas. Cada tabla se identifica con
un nombre. La tabla contiene filas (renglones) con datos.
La tabla anterior contiene tres filas (una por cada persona) y cinco columnas (P_Id,
Apellido, Nombre, Direccion y Ciudad).
5
El DDL permite crear o eliminar tablas de una base de datos. También define los
índices, especifica los vínculos entre tablas y define las restricciones entre tablas. Las
sentencias del DDL más importantes son:
Sintaxis de SQL
La mayoría de las acciones que deben realizarse en una base de datos se hacen con
sentencias de SQL.
3. Cláusulas. Una sentencia de SQL tiene una o más cláusulas. Una cláusula es un
fragmento de una sentencia de SQL que empieza por una palabra reservada,
puede ser opcional, y deben escribirse en un orden en particular.
4. Palabras reservadas (Keywords). Son palabras que SQL se reserva por que
tienen un significado especial en el lenguaje. Usar palabras reservadas fuera de
su contexto específico (como identificador, por ejemplo) causa un error. Cada
DBMS usa una mezcla de palabras reservadas estándar y no estándar.
La sentencia SELECT
La sentencia SELECT se usa para seleccionar datos de una base de datos. El resultado
es guardado en una tabla resultante.
Sintaxis:
SELECT nombre_de_columna(s) → El nombre de las columnas separadas por
FROM nombre_de_tabla comas ( , ).
FROM nombre_de_tabla
La palabra reservada DISTINCT puede usarse para regresar sólo valores distintos o
diferentes.
Sintaxis:
SELECT DISTINCT nombre_de_columna(s)
FROM nombre_de_tabla
La cláusula WHERE
La cláusula WHERE se usa para extraer sólo aquellas filas que cumplen con un criterio
específico (filtrar filas).
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna operador valor
SQL usa comillas simples al inicio y fin de valores de texto (la mayoría de los
sistemas de bases de datos también aceptan comillas dobles). Sin embargo, valores
numéricos no deben entrecomillarse. En casos contrarios para cada uno resultará un
error.
Operador Descripción
= Igual
<> No igual o diferente
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
BETWEEN Entre un rango específico
LIKE Para buscar un patrón específico
IN Si conoces el valor exacto que quieres regresar para al
menos una de las columnas
8
Nota: En algunas versiones de SQL el operador <> puede ser escrito como !=.
9
OPERADORES
Estos operadores se utilizan para filtrar filas basadas en una o más condiciones.
El operador AND muestra una fila si las dos condiciones (o más) son verdaderas.
El operador LIKE
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna LIKE patrón
patrón es una parte de un texto que se busca en el valor de una columna de una tabla, y
es escrito entrecomillado (comillas simples). Por lo general se usan comodines en el
patrón que se busca con el operador LIKE.
Los comodines son caracteres especiales en el lenguaje que pueden sustituir uno o
más caracteres cuando se buscan datos en una base de datos.
Comodín Descripción
% Un sustituto para cero o más caracteres. Puede ir al
inicio, al final, o en ambos extremos a la vez del patrón
que se busca
_ Un sustituto para exactamente un caracter. Puede ir en
cualquier lugar del patrón buscado
[lista_de_caracteres] Cualquier caracter en la lista de caracteres
[^lista_de_caracteres] Cualquier caracter que no está en la lista de caracteres
o
[!lista_de_caracteres]
10
El operador IN
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna IN (valor1, valor2,...)
El operador BETWEEN
Este operador selecciona un rango de datos entre dos valores. Los valores pueden ser
números, textos o fechas.
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna
BETWEEN valor1 AND valor2
Esta ordenación se hace por default en orden ascendente; de manera explícita se puede
utilizar la palabra reservada ASC. Si se desea ordenar las filas en orden descendente, se
utiliza la palabra reservada DESC.
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
ORDER BY nombre_de_columna ASC | DESC
Sintaxis:
Se puede escribir la sentencia INSERT TO de dos formas.
La primera forma no especifica los nombres de las columnas en las que se insertarán los
datos, sólo sus valores:
En esta forma al no especificarse la columna en que será insertado cada valor, se está
obligado a ingresar los valores para todas las columnas de la nueva fila de esa tabla.
La segunda forma especifica tanto los nombres de las columnas como los valores que
serán insertados:
No es necesario que se agreguen todos los valores para todas las columnas; al
especificarse las columnas que contendrán los valores dichos en la parte de VALUES,
sólo se insertan esos valores en la nueva fila de la tabla.
La sentencia UPDATE
Esta sentencia se usa para actualizar o modificar filas ya existentes de una tabla.
Sintaxis:
UPDATE nombre_de_tabla
SET columna1 = valor, columna2 = valor2,...
WHERE alguna_columna = algún_valor
La sentencia DELETE
Esta sentencia se usa para borrar o eliminar filas (renglones) de una tabla.
Sintaxis:
DELETE FROM nombre_de_tabla
WHERE alguna_columna = algún_valor
Es posible eliminar todas las filas de una tabla sin eliminar la tabla. Esto significa
que la estructura, atributos e índices de la tabla estarán intactos:
12
Se debe ser muy cuidadoso al borrar o eliminar filas, ya que no puede deshacerse
esta sentencia.
Alias
Puede darse otro nombre a una tabla o a columna usando un alias. Esto puede ser útil si
se tienen nombres de tablas o de columnas muy largos o complejos.
JOIN
Esta palabra reservada se usa en una sentencia SQL para consultar datos de dos o más
tablas, basado en una relación entre ciertas columnas en estas tablas.
Las tablas en una base de datos a menudo se relacionan unas con otras usando llaves.
Una llave primaria es una columna (o combinación de columnas) con un valor único
para cada fila. Cada valor de llave primaria debe ser único en su tabla. El propósito es
juntar datos de varias tablas, sin repetir todos los datos en cada tabla.
Hay varios tipos de JOIN que pueden usarse, cada uno con sus diferencias.
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla1
INNER JOIN nombre_de_tabla2
ON nombre_de_tabla1.nombre_de_columna = nombre_de_tabla2.nombre_de_columna
13
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla1
LEFT JOIN nombre_de_tabla2
ON nombre_de_tabla1.nombre_de_columna = nombre_de_tabla2.nombre_de_columna
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla1
RIGHT JOIN nombre_de_tabla2
ON nombre_de_tabla1.nombre_de_columna = nombre_de_tabla2.nombre_de_columna
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla1
FULL JOIN nombre_de_tabla2
ON nombre_de_tabla1.nombre_de_columna = nombre_de_tabla2.nombre_de_columna
El operador UNION
Se usa para combinar las tablas resultado de dos o más sentencias SELECT.
Cada sentencia SELECT con el UNION debe tener el mismo número de columnas. Las
columnas deben tener tipos de datos similares. Además, las columnas en cada sentencia
SELECT deben estar en el mismo orden.
Sintaxis de UNION:
SELECT nombre_de_columna(s) FROM nombre_de_tabla1
UNION
SELECT nombre_de_columna(s) FROM nombre_de_tabla2
Nota: El operador UNION selecciona por default sólo los valores distintos. Parta
permitir valores duplicados, puede usarse UNION ALL.
Sintaxis:
CREATE DATABASE nombre_de_base_de_datos
Esta sentencia se usa para crear una tabla en una base de datos.
Sintaxis:
CREATE TABLE nombre_de_tabla
(
nombre_de_columna1 tipo_de_dato,
nombre_de_columna2 tipo_de_dato,
nombre_de_columna3 tipo_de_dato,
....
)
Restricciones
Las Restricciones son usadas para limitar los tipos de datos que pueden ir dentro de una
tabla. Pueden ser especificadas cuando se crea una tabla (con la sentencia CREATE
TABLE) o después de que la tabla es creada (con la sentencia ALTER TABLE).
Esta restricción fuerza a una columna para no aceptar valores nulos (NULL),
siempre forzando al campo a contener un valor. Esto significa que un puede insertar
una nueva fila, o actualizar una fila sin agregar un valor a este campo.
La restricción UNIQUE
Identifica como única cada fila en una tabla de una base de datos.
Pueden contenerse muchas restricciones UNIQUE por tabla, pero sólo tener una
restricción PRIMARY KEY por tabla.
Identifica unívocamente una fila de una tabla de una base de datos. Las llaves
primarias (primary keys) deben contener valores únicos.
Cada tabla debe tener una llave primaria y sólo una llave primaria.
DROP
Para borrar los datos dentro de una tabla sin borrar la tabla en sí, se puede usar esta
sentencia: TRUNCATE TABLE nombre_de_tabla
ALTER
Esta sentencia sirve para agregar, borrar o modificar columnas en una tabla existente.
Sintaxis:
Como sabemos una base de datos esta compuesta de tablas donde almacenamos
registros catalogados en función de distintos campos (características).
Cada base de datos introduce tipos de valores de campo que no necesariamente están
presentes en otras. Sin embargo, existe un conjunto de tipos que están representados en
la totalidad de estas bases. Estos tipos comunes son los siguientes:
Funciones de SQL
SQL tiene muchas funciones que sirven para realizar cálculos con datos.
Estas funciones agregan un valor calculado con valores en una columna. Entre este tipo
de funciones se encuentran:
Sintaxis:
SELECT AVG (nombre_de_columna) FROM nombre_de_tabla
Sintaxis:
SELECT FIRST (nombre_de_columna) FROM nombre_de_tabla
Sintaxis:
SELECT LAST (nombre_de_columna) FROM nombre_de_tabla
Sintaxis:
SELECT MAX (nombre_de_columna) FROM nombre_de_tabla
20
Sintaxis:
SELECT MIN (nombre_de_columna) FROM nombre_de_tabla
Sintaxis:
SELECT SUM (nombre_de_columna) FROM nombre_de_tabla
La sentencia GROUP BY
Esta sentencia es usada en conjunto con las funciones de agregación para agrupar
por una o más columnas la tabla resultado.
Sintaxis:
SELECT nombre_de_columna, función_de_agregación (nombre_de_columna)
FROM nombre_de_tabla
WHERE nombre_de_columna operador valor
GROUP BY nombre_de_columna
La cláusula HAVING
Esta cláusula fue agregada a SQL porque la palabra reservada WHERE no puede
usarse con funciones de agregación.
Sintaxis:
SELECT nombre_de_columna, función_de_agregación (nombre_de_columna)
FROM nombre_de_tabla
WHERE nombre_de_columna operador valor
GROUP BY nombre_de_columna
HAVING función_de_agregación (nombre_de_columna) operador valor
Sintaxis:
SELECT UCASE (nombre_de_columna) FROM nombre_de_tabla
21
Sintaxis:
SELECT LCASE (nombre_de_columna) FROM nombre_de_tabla
Sintaxis:
SELECT MID (nombre_de_columna, inicia [, longitud]) FROM nombre_de_tabla
Sintaxis:
SELECT LEN (nombre_de_columna) FROM nombre_de_tabla
Sintaxis:
SELECT ROUND (nombre_de_columna, decimales) FROM nombre_de_tabla
Sintaxis:
SELECT NOW( ) FROM nombre_de_tabla