Tutorial CGI I II III
Introducción a SQL
Tutorial VBScript

Fao.gif (4164 bytes)

Introducción a Structured Query Language (SQL)

version 3.31

Está pagina es un tutorial del Structured Query Language (conocido como SQL) y es de los pioneros en el Worl Wide Web, siendo este el primer tutorial de SQL disponible en Internet. El SQL es usado para accesar datos en bases relacionadas en manipulacion de sistemas, como son Oracle, Sybase, Informix, Microsoft SQL server, Access, y otros, permitiendo a los  usuarios describir los datos que ellos desean ver. SQL ademas permite a los usuarios definir los datos en una base de datos, y manipular estos datos. Está pagina describira como usar SQL, y obtener ejemplos. El SQL usado en este documento es "ANSI", o SQL estandar y no caracteristicas de SQL de bases de datos especificas de administración de sistemas seran discutidas bajo la seccion "No estandar SQL". Es recomendado imprimir esta pagina, para que puedas facilmente hacer referencia a los Ejemplos.


Tabla de Contenido

Basicos de la declaración SELECT
Selección de Condicionales
Operadores Relacionales
Condiciones de Peso
IN & BETWEEN
Usando LIKE

Uniones
Keys
Creando Uniones
Eliminando Duplicados
Alias & IN/Subquerys

Agregar Funciones
Ver
Creando nuevas Tablas
Alterando Tablas
Adicionando Datos
Borrando Datos
Actualizando Datos

Indexando
Agrupando por y Teniendo
Más Subquerys
EXISTS & ALL
UNION y otras uniones
Fijando SQL
Preguntas comunes SQL
SQL no estandard
Syntaxis y Sumario


Basicos de la declaración SELECT

En una base de datos relacional, los datos están puestos en tablas. Un ejemplo de una tabla puede crearse con el Numero del Seguro Social, Nombre y Dirección.

EmployeeAddressTable

SSN FirstName LastName Address City State
512687458 Joe Smith 83 First Street Howard Ohio
758420012 Mary Scott 842 Vine Ave. Losantiville Ohio
102254896 Sam Jones 33 Elm St. Paris New York
876512563 Sarah Ackerman 440 U.S. 110 Upton Michigan

Ahora, supongamos que quieres ver la dirección de cada empleado usa la declaración SELECT como sigue:

SELECT FirstName, LastName, Address, City, State
FROM EmployeeAddressTable;

Este será el resultado de tu query:

First Name Last Name Address City State
Joe Smith 83 First Street Howard Ohio
Mary Scott 842 Vine Ave. Losantiville Ohio
Sam Jones 33 Elm St. Paris New York
Sarah Ackerman 440 U.S. 110 Upton Michigan

Para explicar que es lo que hicimos, preguntamos para todos los datos de la tabla EmployeeAddress, y especificamente, preguntamos para las columnas llamadas First Name, Last Name, Address, City y State. Notese que los nombres de las tablas y las columnas no tienen espacios...estos deben de ser escritos como una sola palabra y las declaraciones siempre terminan con un punto y coma (;). La forma general para la declaracion SELECT, recibiendo todas las columnas en la tabla es:

SELECT NombredeColumna, NombredeColumna2, NombredeColumna3,......
FROM NombredelaTabla;

Para obtener todas las columnas de la tabla sin teclear todos los nombres de las columnas es:

SELECT * From NombredelaTabla;

Cada administracion de sistemas de bases de datos (DBMS) y cada software de bases de datos contiene diferentes metodos para administrar su base de datos y manejar comandos SQL; localiza el "guru" de tu computadora local para obtener ayuda dentro de tu sistema, y como usar SQL.


Selección de Condicionales

Ahora discutiremos la condicion SELECT, ve la siguiente tabla de ejemplo (esta solo es una suposición)

EmployeeStatisticsTable

EmployeeIDNo Salary Benefits Position
010 75000 15000 Manager
105 65000 15000 Manager
152 60000 15000 Manager
215 60000 12500 Manager
244 50000 12000 Staff
300 45000 10000 Staff
335 40000 10000 Staff
400 32000 7500 Entry-Level
441 28000 7500 Entry-Level

Operadores Relacionales

Estos son los seis Operadores Relacionales de SQL, despues de una introducción veremos como utilizarlos:

= Igual
<> or != (see manual) Diferente
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que

La clausula WHERE es usada para especificar que solo ciertas lineas de la tabla son desplegadas, basadas en el criterio descrito en esta orden esto se entiende más facilmente en el siguiente ejemplo:

Si quieres ver el numero de los empleados que ganan arriba de $50,000, usa la siguiente sentencia:

SELECT EMPLOYEEIDNO
FROM EMPLOYEESTATISTICSTABLE
WHERE SALARY >= 50000;

Nota que el simbolo >= (Mayor o igual que) es usado, si buscamos quien gana $50,000 o mas esta secuencia nos mostrara los datos siguientes:

EMPLOYEEIDNO
------------
010
105
152
215

244

La descripción SALARY >= 50000, es conocida como una condición, esta condicion puede funcionar para columnas de texto:

SELECT EMPLOYEEIDNO
FROM EMPLOYEESTATISTICSTABLE
WHERE POSITION = 'Manager';

Esta desplegara los numeros ID de los MAnagers, generalmente con el texto se ocupa los signos igual que o diferente que, y nos aseguramos que el texto vaya entre los simbolos ''.


Condiciones Complejas, Condiciones de Peso

El operador AND puede contener una o mas condiciones, y despliega una linea solo si los datos de la linea satisface todas las condiciones enlistada, por ejemplo para desplegar todo el staff creado arrina de $40,000. usamos:

SELECT EMPLOYEEIDNO
FROM EMPLOYEESTATISTICSTABLE
WHERE SALARY > 40000 AND POSITION = 'Staff';

El operador OR puede contener una o más condiciones, pero regresa una linea si cualquiera de las condiciones se cumple para ver quien tiene menos de $40,000 ó tiene menos de $10,000 en benefits, listado, usar el siguiente query:

SELECT EMPLOYEEIDNO
FROM EMPLOYEESTATISTICSTABLE
WHERE SALARY < 40000 OR BENEFITS < 10000;

AND y OR pueden ser combinados, por ejemplo:

SELECT EMPLOYEEIDNO
FROM EMPLOYEESTATISTICSTABLE
WHERE POSITION = 'Manager' AND SALARY > 60000 OR BENEFITS > 12000:

Primero, SQL encuentra las lineas en donde el salario es mayor a $60,000 y la columna posicion es igual a Manager, entonces toma esta nueva lista de lineas,SQL entonces ve si cualquiera de estas lineas satisface la condicion preva AND o la condicion que la columna Benefits es mayor que $12,000. Subsecuentemente, SQL solo desplegara la segunda lista nueva de lineas, manteniendo en mente que cualquiera con Benefits sobre $12,000 sera incluido como el operador OR incluyendo una linea si cada resultado de la condicion es verdadero. Ademas nota que el operador AND esta listo primero.

Para Generalizar este proceso, SQL performa las operaciones AND para determinar las lineas donde las operaciones AND son verdaderas (recuerda que todas las condiciones deben ser verdaderas), entonces estos resultados son usados para comparar con las condiciones OR y solo desplegara los resultados de las lineas donde las condiciones encontradas por el operador OR sean verdaderas.

Para utilizar OR antes de AND como si tu quieres para ver una lista de empleados creando un gran salario (>$50,000)o tiene un paquete de Benefits mayor (>$10,000) y debe ser manager usar la siguiente sentencia:

SELECT EMPLOYEEIDNO
FROM EMPLOYEESTATISTICSTABLE
WHERE POSITION = 'Manager' AND (SALARY > 50000 OR BENEFIT > 10000);