Vous êtes sur la page 1sur 12

CURSO SQL

El SQL es un lenguaje estándar de programación para el acceso a bases de datos.

El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base de datos del mercado,
como por ejemplo, para las bases de datos MySQL, Oracle, DB2, SQL Server, Access.

Este tutorial se divide en las siguientes partes:

 SQL Básico: Las instrucciones SQL básicas para la consulta de datos de cualquier base de
datos relacional.

 SQL Avanzado: Las instrucciones SQL avanzadas para un control completo sobre cualquier
base de datos relacional.

 Funciones SQL: SQL tiene multiples funciones predefinidas para realizar ciertos cálculos
sobre los datos.

 Comandos SQL: Listado de todos los comandos SQL disponibles en este curso, para una
referencia rápida de los mismos.

El SQL es un lenguaje estructurado y un estándar ANSI para el acceso y manipulación de los datos
de cualquier base de datos.

El SQL se compone de sentencias SQL, cada una con una utilidad diferente, como por ejemplo:

 Creación de una base de datos (CREATE DATABASE)

 Creación de una tabla (CREATE TABLE)

 Creación de una vista (CREATE VIEW)

 Creación de un índice de una tabla (CREATE INDEX)

 Creación de procedimientos almacenados (CREATE PROCEDURE)

 Creación de disparadores (CREATE TRIGGER)

 Consultar los datos almacenados en una tabla (SELECT)

 Insertar datos en una tabla (INSERT)

 Modificar datos ya existentes en una tabla (UPDATE)

 Borrar datos almacenados en una tabla (DELETE)

 Dar permiso de acceso a los datos de una tabla (GRANT)

 Eliminar permisos de acceso a datos de una tabla (REVOKE)

 Finalizar la transacción de una sentencia SQL (COMMIT)

 Retroceder la transacción de una sentencia SQL (ROLLBACK).


SQL Básico

Estas son las instrucciones SQL básicas para el acceso a cualquier base de datos relacional.

 SQL SELECT: SELECT se utiliza para consultar datos.

 SQL DISTINCT: DISTINCT sirve para eliminar los duplicados de las consultas de datos.

 SQL WHERE: WHERE se utiliza incluir las condiciones de los datos que queremos
consultar.

 AND OR: AND y OR se utilizan para incluir 2 o más condiciones a una consulta.

 SQL ORDER BY: ORDER BY se utiliza para ordenar los resultados de una consulta.

 SQL INSERT: INSERT se utiliza para insertar datos.

 SQL UPDATE: UPDATE se utiliza actualizar o modificar datos ya existentes.

 SQL DELETE: DELETE se utiliza borrar datos.

Select
Una de las sentencias SQL más importantes es SELECT, ya que permite realizar consultas sobre
los datos almacenados en la base de datos.

Sintaxis SQL SELECT

SELECT * FROM nombretabla

SELECT columna1, columna2 FROM nombretabla

Para los ejemplos, tendremos la siguiente tabla de personas denominada “personas”

Estos son los datos almacenados en la tabla “personas”

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

ANTONIO GARCIA BENITO

LUIS LOPEZ PEREZ


Si queremos consultar todos los datos de la tabla “personas”

SELECT * FROM personas

Este será el resultado:

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

ANTONIO GARCIA BENITO

LUIS LOPEZ PEREZ

Si queremos consulta todos los nombres y primer apellido de todas las personas

SELECT nombre, apellido1 FROM personas

Este será el resultado:

nombre apellido1

ANTONIO PEREZ

ANTONIO GARCIA

LUIS LOPEZ

DISTINCT
Al realizar una consulta puede ocurrir que existan valores repetidos para algunas columnas.
Por ejemplo

SELECT nombre FROM personas

nombre
ANTONIO
LUIS
ANTONIO

Esto no es un problema, pero a veces queremos que no se repitan, por ejemplo, si queremos
saber los nombre diferentes que hay en la tabla personas", entonces utilizaremos DISTINCT.
SELECT DISTINCT nombre FROM personas

nombre
ANTONIO
LUIS

WHERE
La cláusula WHERE se utiliza para hacer filtros en las consultas, es decir, seleccionar solamente
algunas filas de la tabla que cumplan una determinada condición.

El valor de la condición debe ir entre comillas simples ''.

Por ejemplo:

Seleccionar las personas cuyo nombre sea ANTONIO

SELECT * FROM personas


WHERE nombre = 'ANTONIO'

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

ANTONIO GARCIA BENITO

AND OR
Los operadores AND y OR se utilizan para filtrar resultados con 2 condiciones.

El operador AND mostrará los resultados cuando se cumplan las 2 condiciones.

Condición1 AND condición2

El operador OR mostrará los resultados cuando se cumpla alguna de las 2 condiciones.

Condicion1 OR condicion2

En la tabla personas

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

ANTONIO GARCIA BENITO


LUIS LOPEZ PEREZ

La siguiente sentencia (ejemplo AND) dará el siguiente resultado:

SELECT * FROM personas


WHERE nombre = 'ANTONIO'
AND apellido1 = 'GARCIA'

nombre apellido1 apellido2

ANTONIO GARCIA BENITO

La siguiente sentencia (ejemplo OR) dará el siguiente resultado:

SELECT * FROM personas


WHERE nombre = 'ANTONIO'
OR apellido1 = 'GARCIA'

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

ANTONIO GARCIA BENITO

ORDER BY
ORDER BY se utiliza para ordenar los resultados de una consulta, según el valor de la columna
especificada.

Por defecto, se ordena de forma ascendente (ASC) según los valores de la columna.

Si se quiere ordenar por orden descendente se utiliza la palabra DES

SELECT nombre_columna(s)
FROM nombre_tabla
ORDER BY nombre_columna(s) ASC|DESC

Por ejemplo, en la tabla personas :

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

LUIS LOPEZ PEREZ

ANTONIO GARCIA BENITO


SELECT nombre, apellido1
FROM personas
ORDER BY apellido1 ASC

Esta es la consulta resultante:

nombre apellido1

LUIS LOPEZ

ANTONIO GARCIA

ANTONIO PEREZ

Ejemplo de ordenación descendiente (DES)

SELECT nombre, apellido1


FROM personas
ORDER BY apellido1 DESC

Esta es la consulta resultante:

nombre apellido1

ANTONIO PEREZ

ANTONIO GARCIA

LUIS LOPEZ

INSERT

La sentencia INSERT INTO se utiliza para insertar nuevas filas en una tabla.

Es posible insertar una nueva fila en una tabla de dos formas distintas:

INSERT INTO nombre_tabla


VALUES (valor1, valor2, valor3, .)

INSERT INTO nombre_tabla (columna1, columna2, columna3,.)


VALUES (valor1, valor2, valor3, .)

Ejemplo:

Dada la siguiente tabla personas:

nombre apellido1 apellido2


ANTONIO PEREZ GOMEZ

LUIS LOPEZ PEREZ

ANTONIO GARCIA BENITO

Si queremos insertar una nueva fila en la tabla personas, lo podemos hacer con cualquiera de
las dos sentencias siguientes:

INSERT INTO personas


VALUES ('PEDRO', 'RUIZ', 'GONZALEZ')
INSERT INTO personas (nombre, apellido1, apellido2)
VALUES ('PEDRO', 'RUIZ', 'GONZALEZ')

Cualquiera de estas sentencias anteriores produce que se inserte una nueva fila en la tabla
personas, quedando así dicha tabla:

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

LUIS LOPEZ PEREZ

ANTONIO GARCIA BENITO

PEDRO RUIZ GONZALEZ

UPDATE

La sentencia UPDATE se utiliza para modificar valores en una tabla.

La sintaxis de SQL UPDATE es:

UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2
WHERE columna3 = valor3

La cláusula SET establece los nuevos valores para las columnas indicadas.

La cláusula WHERE sirve para seleccionar las filas que queremos modificar.

Ojo: Si omitimos la cláusula WHERE, por defecto, modificará los valores en todas las filas de
la tabla.
Ejemplo del uso de SQL UPDATE

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

LUIS LOPEZ PEREZ

ANTONIO GARCIA BENITO

PEDRO RUIZ GONZALEZ

Si queremos cambiar el apellido2 'BENITO' por 'RODRIGUEZ' ejecutaremos:

UPDATE personas
SET apellido2 = 'RODRIGUEZ'
WHERE nombre = 'ANTONIO'
AND apellido1 = 'GARCIA'
AND apellido2 = 'BENITO'

Ahora la tabla 'personas' quedará así:

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

LUIS LOPEZ PEREZ

ANTONIO GARCIA RODRIGUEZ

PEDRO RUIZ GONZALEZ

DELETE

La sentencia DELETE sirve para borrar filas de una tabla.

La sintaxis de SQL DELETE es:

DELETE FROM nombre_tabla


WHERE nombre_columna = valor

Si queremos borrar todos los registros o filas de una tabla, se utiliza la sentencia:

DELETE * FROM nombre_tabla;


Ejemplo de SQL DELETE para borrar una fila de la tabla personas

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

LUIS LOPEZ PEREZ

ANTONIO GARCIA RODRIGUEZ

PEDRO RUIZ GONZALEZ

Si queremos borrar a la persona LUIS LOPEZ PEREZ, podemos ejecutar el comando:

DELETE FROM personas


WHERE nombre = 'LUIS'
AND apellido1 = 'LOPEZ'
AND apellido2 = 'PEREZ'

La tabla 'personas' resultante será:

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

ANTONIO GARCIA RODRIGUEZ

PEDRO RUIZ GONZALEZ

QL Avanzado

Estas son las instrucciones SQL básicas para el acceso a cualquier base de datos relacional.

 SQL TOP: TOP se utiliza para especificar el número de filas a mostrar en el resultado.

 SQL LITE: LIKE se utiliza en la cláusula WHERE para buscar por un patrón.

 SQL WILDCARDS: Wildcards (comodines) son caracteres especiales que se utilizan para
realizar búsquedas especiales.

 SQL IN: IN permite seleccionar múltiples valores en una cláusula WHERE.

 SQL BETWEEN: BETWEEN se utiliza en la cláusula WHERE para seleccionar valores


entre un rango de datos.
 SQL ALIAS: ALIAS se utiliza para renombrar una tabla o una columna

 SQL JOINS: JOIN permite consultar datos de 2 o más tablas.

 SQL INNER JOIN:INNER JOIN sirve para combinar cada fila de una tabla con cada fila de
otra tabla.

 SQL LEFT JOIN: LEFT JOIN sirve para combinar los valores de la primera tabla con los
valores de la segunda tabla. Siempre devolverá las filas de la primera tabla.

 SQL RIGHT JOIN: RIGHT JOIN sirve para combinar los valores de la primera tabla con
los valores de la segunda tabla. Siempre devolverá las filas de la segunda tabla.

 SQL FULL JOIN: FULL JOIN sirve para combinar los valores de la primera tabla con los
valores de la segunda tabla. Siempre devolverá las filas de las dos tablas.

 SQL UNION: UNION es utilizada para acumular los resultados de dos sentencias
SELECT.

 SQL UNION ALL: SQL UNION ALL es utilizada para acumular los resultados de dos
sentencias SELECT, incluso aparecerán las filas que estén repetidas.

 SQL SELECT INTO: SELECT INTO se utiliza para copiar datos de una tabla en otra tabla
diferente.

 SQL CREATE DATABASE: CREATE DATABASE se utiliza para crear bases de datos.

 SQL RESTRICCIONES: RESTRICCIONES se utilizan para limitar el tipo de dato de una


columna.

 SQL NOT NULL: NOT NULL se utiliza para especificar que una columna no acepta el
valor NULL.

 SQL UNIQUE: UNIQUE sirve para identificar de manera única a cada fila de una tabla

 SQL UNIQUE ALTER TABLE: UNIQUE ALTER TABLE permite añadir UNIQUE a una
columna de una tabla, después de ser creada.

 SQL PRIMARY KEY: PRIMARY KEY se utiliza para identificar de manera única cada fila
de una tabla.

 SQL FOREIGN KEY: FOREIGN KEY se utiliza para identificar una columna que es
PRIMARY KEY en otra tabla.

 SQL CHECK: CHECK para limitar el rango de valores de una columna.

 SQL DEFAULT: DEFAULT valor por defecto para una columna

 SQL CREATE INDEX: CREATE INDEX para crear un índice en una tabla.

 SQL DROP: DROP sirve para borrar cualquier elemento (índice, tabla o base de datos).
 SQL TRUNCATE: TRUNCATE sirve para borrar los datos (no la estructura) de una tabla

 SQL ALTER: ALTER se utiliza para modificar la definición de alguna columna de una
tabla.

 SQL AUTO INCREMENT: AUTO INCREMENT genera numero autoincremental para


alguna columna de una tabla.

 SQL VIEWS: VIEWS sirve para crear una tabla virtual (no una tabla real) con los
resultados de una consulta.

 SQL DATES: DATE define diferentes tipos de datos para fechas y horas.

 SQL VALORES NULL: NULL representa a un valor indefinido.

 SQL FUNCIONES NULL: FUNCIONES NULL sirven para utilizar los valores NULL.

 SQL DATOS TEXTO MySQL: DATOS TEXTO MySQL define los diferentes formatos de
campos de texto para MySQL.

 SQL NUMERICOS MySQL: DATOS NUMERICOS MySQL define los diferentes formatos
de campos numéricos para MySQL.

 SQL DATOS FECHA MySQL: DATOS FECHA MySQL define los diferentes formatos de
campos de fecha para MySQL.

TOP

La sentencia SQL TOP se utiliza para especificar el número de filas a mostrar en el resultado.

Esta cláusula SQL TOP es útil en tablas con muchos registros, para limitar el número de filas a
mostrar en la consulta, y así sea más rápida la consulta, consumiendo también menos recursos
en el sistema.

Esta cláusula se especifica de forma diferente según el sistema de bases de datos utilizado.

Cláusula SQL TOP para SQL SERVER

SELECT TOP número


PERCENT nombre_columna
FROM nombre_tabla

Cláusula SQL TOP para MySQL

SELECT columna(s) FROM tabla


LIMIT númerofilas

Cláusula SQL TOP para ORACLE


SELECT columna(s) FROM tabla
WHERE ROWNUM <= númerofilas

Ejemplo SQL TOP para MySQL:

Dada la siguiente tabla 'personas', quiero obtener los 2 primeros valores.

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

ANTONIO GARCIA RODRIGUEZ

PEDRO RUIZ GONZALEZ

SELECT * FROM personas LIMIT 2

Obtendríamos el siguiente resultado:

nombre apellido1 apellido2

ANTONIO PEREZ GOMEZ

ANTONIO GARCIA RODRIGUEZ

Vous aimerez peut-être aussi