Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
El SQL es un lenguaje estructurado y un estndar ANSI para el acceso y manipulacin de los datos
de cualquier base de datos.
El SQL se compone de sentencias SQL, cada una con una utilidad diferente, como por ejemplo:
Las sentencias SQL no son sensibles a maysculas y minsculas, es decir, 'SELECT' y 'select' son
dos palabras iguales para SQL.
Algunos sistemas de bases de datos necesitan un punto y coma despus de cada sentencia SQL
para ejecutarse correctamente
tablas (TABLE)
vistas (VIEW)
ndices (INDEX)
disparadores (TRIGGER).
consultar (SELECT)
insertar (INSERT)
modificar (UPDATE)
borrar (DELETE)
SELECT
Una de las sentencias SQL ms importantes es SELECT, ya que permite realizar consultas sobre
los datos almacenados en la base de datos.
Sintaxis SQL SELECT
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
BENITO
LUIS
LOPEZ
PEREZ
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
nombre
apellido1
ANTONIO
PEREZ
ANTONIO
GARCIA
LUIS
LOPEZ
AND OR
Condicion1 OR condicion2
En la tabla personas
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
BENITO
LUIS
LOPEZ
PEREZ
nombre
apellido1
apellido2
ANTONIO
GARCIA
BENITO
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
BENITO
nombre
apellido1
apellido2
ANTONIO
GARCIA
BENITO
ORDER BY
ORDER BY se utiliza para ordenar los resultados de una consulta, segn el valor de la columna
especificada.
Por defecto, se ordena de forma ascendente (ASC) segn 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
nombre
apellido1
LUIS
LOPEZ
ANTONIO
GARCIA
ANTONIO
PEREZ
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:
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:
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 clusula SET establece los nuevos valores para las columnas indicadas.
La clusula WHERE sirve para seleccionar las filas que queremos modificar.
Ojo: Si omitimos la clusula 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
UPDATE personas
SET apellido2 = 'RODRIGUEZ'
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
LUIS
LOPEZ
PEREZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
LUIS
LOPEZ
PEREZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
AVANZADO
TOP
La sentencia SQL TOP se utiliza para especificar el nmero de filas a mostrar en el resultado.
Esta clusula SQL TOP es til en tablas con muchos registros, para limitar el nmero de filas a
mostrar en la consulta, y as sea ms rpida la consulta, consumiendo tambin menos recursos en
el sistema.
Esta clusula se especifica de forma diferente segn el sistema de bases de datos utilizado.
Clusula SQL TOP para SQL SERVER
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
LITE
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
Si quiero seleccionar los nombres que empiezan por 'AN' en la tabla 'personas', ejecutara el
comando siguiente:
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
PEDRO
RUIZ
GONZALEZ
WILDCARDS
Los caracteres Wildcards (comodines) son caracteres especiales que se utilizan para realizar
bsquedas especiales, como por ejemplo, buscar palabras que empiecen por una letra
determinada (letra%) o que contengan la letra a (%a%), o que contengan alguna vocal ([aeiou]),
etc.
Los caracteres Wildcards se utilizan con el operador SQL LIKE en una sentencia SELECT.Los
caracteres Wildcards son :
[lista]
[^lista] o [!
lista]
Ejemplos:
Dada la siguiente tabla 'personas'
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
Ejemplos Wildcards
Seleccionar las personas cuyo nombre contenga una 'R'
Resultado:
nombre
apellido1
apellido2
PEDRO
RUIZ
GONZALEZ
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
IN
El operador IN permite seleccionar mltiples valores en una clusula WHERE
Sintaxis SQL IN
SELECT columna
FROM tabla
WHERE columna
IN (valor1, valor2, valor3, .)
Ejemplo SQL IN
Dada la siguiente tabla 'personas'
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
PEDRO
RUIZ
GONZALEZ
BETWEEN
El operador BETWEEN se utiliza en la clusula WHERE para seleccionar valores entre un rango
de datos.
Sintaxis de SQL BETWEEN
SELECT columna
FROM tabla WHERE columna
BETWEEN valor1 AND valor2
Ejemplo de SQL BETWEEN
Dada la siguiente tabla 'personas'
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
SELECT *
FROM personas
WHERE apellido1
BETWEEN 'FERNANDEZ' AND 'HUERTAS'
nombre
apellido1
apellido2
ANTONIO
GARCIA
RODRIGUEZ
SELECT *
FROM personas
WHERE apellido1
NOT BETWEEN 'FERNANDEZ' AND 'HUERTAS'
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
PEDRO
RUIZ
GONZALEZ
ALIAS
Un alias, es otra forma de llamar a una tabla o a una columna, y se utiliza para simplificar las
sentencias SQL cuando los nombre de tablas o columnas son largos o complicados.
Sintaxis SQL ALIAS para una tabla:
SELECT columna
FROM nombretabla
AS aliastabla
Sintaxis SQL ALIAS para una columna
SELECT nombrecolumna
AS aliascolumna
FROM tabla
Ejemplos SQL ALIAS
Dada la siguiente tabla 'personas'
nombre
apellido1
apellido2
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
Utilizamos el alias 'p' para la tabla 'personas', para simplificar la sentencia SELECT
apellido1
apellido2
PEREZ
GOMEZ
GARCIA
RODRIGUEZ
apellido1
apellido2
PEREZ
GOMEZ
GARCIA
RODRIGUEZ
JOINS
La sentencia SQL JOIN permite consultar datos de 2 o ms tablas.
Dichas tablas estarn relacionadas entre ellas de alguna forma, a travs de alguna de sus
columnas.
Existen 3 tipos de JOINS: JOIN interno, JOIN externo y JOIN cruzado.
Una clave primaria es una columna con un valor nico para cada registro de una tabla.
El propsito del JOIN es unir informacin de diferentes tablas, para no tener que repetir datos en
diferentes tablas.
Ejemplo:
Si tenemos las siguientes tablas
Tabla personas, con la clave primaria "per "
per
nombre
apellido1
apellido2
dep
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
dep
Departamento
ADMINISTRACION
INFORMATICA
COMERCIAL
Si queremos saber los nombres de las personas que trabajan en INFORMATICA, tendramos que
hacer un JOIN de las 2 tablas "personas" y "departamentos", que se relacionaran por la columna
"dep".
Es decir, que desde la tabla "personas" y mediante la columna "dep", podemos acceder a la
informacin de la tabla "departamentos".
INNER JOIN
La sentencia INNER JOIN es el sentencia JOIN por defecto, y consiste en combinar cada fila de
una tabla con cada fila de la otra tabla, seleccionado aquellas filas que cumplan una determinada
condicin.
per
nombre
apellido1
apellido2
dep
ANTONIO
PEREZ
GOMEZ
ANTONIO
GARCIA
RODRIGUEZ
PEDRO
RUIZ
GONZALEZ
dep
departamento
ADMINISTRACION
INFORMATICA
COMERCIAL
nombre
apellido1
departamento
ANTONIO
PEREZ
ADMINISTRACION
ANTONIO
GARCIA
INFORMATICA
PEDRO
RUIZ
INFORMATICA