Beruflich Dokumente
Kultur Dokumente
TEMA:
MANUAL DE SQL
1
NDICE
PG.
* Qu es SQL?
* Sintaxis de SQL
- Sentencia SELECT
- Clusula WHERE
- OPERADORES
Operadores AND y OR
Operador LIKE
Operador IN
Operador BETWEEN
- Sentencia UPDATE
- Sentencia DELETE
- Alias
10
- JOIN
10
10
10
LEFT JOIN
11
RIGHT JOIN
11
FULL JOIN
11
- Operador UNION
* Lenguaje de Definicin de Datos (DDL)
11
12
12
12
2
- Restricciones
12
12
Restriccin UNIQUE
12
13
13
- DROP
13
13
13
13
- ALTER
Sentencia ALTER TABLE
13
13
14
15
* Funciones de SQL
17
17
AVG ( )
17
COUNT ( )
17
FIRST ( )
17
LAST ( )
17
MAX ( )
17
MIN ( )
18
SUM ( )
18
Sentencia GROUP BY
18
Clusula HAVING
18
18
UCASE ( )
18
LCASE ( )
19
MID ( )
19
LEN ( )
19
ROUND ( )
19
NOW ( )
19
3
Qu es SQL?
SQL significa Structured Query Language, es un estndar ANSI (American National
Standard Institute). SQL es un lenguaje formal en el cual se escriben programas para
crear, modificar, y consultar bases de datos. Los sistemas de bases de datos ejecutan el
programa de SQL, efectan las tareas que se especifican y despliegan los resultados (o
mensajes de error).
A pesar de que es un estndar hay muchas versiones diferentes del lenguaje SQL.
Sin embargo, para cumplir con el estndar ANSI deben soportar al menos la mayora de
los comandos de manera muy similar.
La mayora de los programas de base de datos de SQL tambin tienen su propia
extensin adems del estndar SQL.
Un programa de SQL es una secuencia de sentencias de SQL ejecutadas en orden. Para
escribir un programa deben conocerse las reglas de sintaxis de SQL.
Apellido
Hansen
Svendson
Pettersen
Nombre
Ola
Tove
Kari
Direccion
Timoteivn 10
Borgvn 23
Storgt 20
Ciudad
Sandnes
Sandnes
Stavanger
La tabla anterior contiene tres filas (una por cada persona) y cinco columnas (P_Id,
Apellido, Nombre, Direccion y Ciudad).
4
Lenguajes Componentes de SQL
SQL puede dividirse en dos partes: el Lenguaje de Manipulacin de Datos (DML) y
el Lenguaje de Definicin de Datos (DDL).
Los comandos de consultas y actualizacin del DML en SQL son:
SELECT extrae datos de una base de datos.
UPDATE actualiza los datos de una base de datos.
DELETE borra datos de una base de datos.
INSERT INTO inserta nuevos datos en una base de datos.
El DDL permite crear o eliminar tablas de una base de datos. Tambin define los
ndices, especifica los vnculos entre tablas y define las restricciones entre tablas. Las
sentencias del DDL ms importantes son:
Sintaxis de SQL
La mayora de las acciones que deben realizarse en una base de datos se hacen con
sentencias de SQL.
y
SELECT *
FROM nombre_de_tabla
La clusula WHERE
La clusula WHERE se usa para extraer slo aquellas filas que cumplen con un criterio
especfico (filtrar filas).
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna operador valor
Descripcin
Igual
No igual o diferente
Mayor que
Menor que
Mayor o igual que
Menor o igual que
Entre un rango especfico
Para buscar un patrn especfico
Si conoces el valor exacto que quieres regresar para al
menos una de las columnas
Nota: En algunas versiones de SQL el operador <> puede ser escrito como !=.
7
OPERADORES
Los operadores AND y OR
Estos operadores se utilizan para filtrar filas basadas en una o ms condiciones.
El operador AND muestra una fila si las dos condiciones (o ms) son verdaderas.
El operador OR muestra una fila si cualquiera de las condiciones es verdadera.
Los operadores AND y OR tambin pueden usarse combinados en una clusula
WHERE, y se usan parntesis para formar expresiones complejas.
El operador LIKE
Este operador se usa para buscar un patrn especfico en una columna.
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna LIKE patrn
patrn 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
patrn que se busca con el operador LIKE.
_
[lista_de_caracteres]
[^lista_de_caracteres]
o
[!lista_de_caracteres]
Descripcin
Un sustituto para cero o ms caracteres. Puede ir al
inicio, al final, o en ambos extremos a la vez del patrn
que se busca
Un sustituto para exactamente un caracter. Puede ir en
cualquier lugar del patrn buscado
Cualquier caracter en la lista de caracteres
Cualquier caracter que no est en la lista de caracteres
8
El operador IN
Este operador permite especificar mltiples valores en una clusula WHERE
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
nmeros, textos o fechas.
Sintaxis:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
WHERE nombre_de_columna
BETWEEN valor1 AND valor2
9
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
sern insertados:
INSERT INTO nombre_de_tabla (columna1, columna2, columna3,...)
VALUES (valor1, valor2, valor3,...)
La posicin del valor debe corresponder con la posicin de la columna especificada.
No es necesario que se agreguen todos los valores para todas las columnas; al
especificarse las columnas que contendrn los valores dichos en la parte de VALUES,
slo 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 = algn_valor
Nota: La clusula WHERE aparece en la sintaxis de la sentencia UPDATE, y
especifica cul o cules filas deben ser modificadas. Si se omite la clusula WHERE
todas las filas sern modificadas, por lo que se debe ser cuidadoso en este aspecto; como
recomendacin siempre incluya la clusula WHERE.
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 = algn_valor
Nota: La clusula WHERE en la sintaxis de la sentencia DELETE, cul o cules filas
debern ser borradas. Si se omite la clusula WHERE todas las filas de la tabla sern
borradas, por lo que debe ser precavido al incluir o no incluir la clusula WHERE.
10
DELETE FROM nombre_de_tabla
o
DELETE * FROM nombre_de_tabla
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.
Un alias puede ser cualquier cosa, pero usualmente es un nombre corto.
Sintaxis de alias para tablas:
SELECT nombre_de_columna(s)
FROM nombre_de_tabla
AS nombre_alias
Sintaxis de alias para columnas:
SELECT nombre_de_columna AS nombre_alias
FROM nombre_de_tabla
JOIN
Esta palabra reservada se usa en una sentencia SQL para consultar datos de dos o ms
tablas, basado en una relacin 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 combinacin de columnas) con un valor nico
para cada fila. Cada valor de llave primaria debe ser nico en su tabla. El propsito es
juntar datos de varias tablas, sin repetir todos los datos en cada tabla.
11
LEFT JOIN: Regresa todos los renglones de la tabla izquierda
(nombre_de_tabla1), an si no hay coincidencias en la tabla derecha
(nombre_de_tabla2).
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
FULL JOIN: Regresa renglones cuando hay una coincidencia en una de las
tablas.
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 ms sentencias SELECT.
Cada sentencia SELECT con el UNION debe tener el mismo nmero de columnas. Las
columnas deben tener tipos de datos similares. Adems, 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 slo los valores distintos. Parta
permitir valores duplicados, puede usarse UNION ALL.
Sintaxis de UNION ALL:
SELECT nombre_de_columna(s) FROM nombre_de_tabla1
UNION ALL
SELECT nombre_de_columna(s) FROM nombre_de_tabla2
12
Lenguaje de Definicin de Datos (DDL)
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 despus de que la tabla es creada (con la sentencia ALTER TABLE).
La restriccin UNIQUE
Identifica como nica cada fila en una tabla de una base de datos.
Las restricciones UNIQUE y PRIMARY KEY garantizan que una columna o
conjunto de columnas sean nicos.
Una restriccin PRIMARY KEY automticamente define en ella una restriccin
UNIQUE.
13
Pueden contenerse muchas restricciones UNIQUE por tabla, pero slo tener una
restriccin PRIMARY KEY por tabla.
DROP
La sentencia DROP TABLE
Es usada para eliminar una tabla: DROP TABLE nombre_de_tabla
La sentencia DROP DATABASE
Es usada para eliminar una base de datos:
DROP DATABASE nombre_de_base_de_datos
ALTER
La sentencia ALTER TABLE
Esta sentencia sirve para agregar, borrar o modificar columnas en una tabla existente.
Sintaxis:
Para agregar una columna a una tabla:
ALTER TABLE nombre_de_tabla
ADD nombre_de_columna tipo_de_dato
14
Para borrar una columna de una tabla:
ALTER TABLE nombre_de_tabla
DROP COLUMN nombre_de_columna
Para cambiar el tipo de dato de una columna de una tabla:
ALTER TABLE nombre_de_tabla
ALTER COLUMN nombre_de_columna tipo_de_dato
Numricos
Booleanos
Fechas
Memos
15
Tipos de datos en SQL
Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios
sinnimos vlidos reconocidos por dichos tipos de datos. Los tipos de datos primarios
son:
Tipo de Datos
Longitud
Descripcin
BINARY
1 byte
BIT
1 byte
BYTE
1 byte
COUNTER
4 bytes
CURRENCY
8 bytes
DATETIME
8 bytes
SINGLE
4 bytes
Un valor en punto flotante de precisin simple con un rango de 3.402823*1038 a -1.401298*10-45 para valores negativos,
1.401298*10- 45 a 3.402823*1038 para valores positivos, y 0.
DOUBLE
8 bytes
Un valor en punto flotante de doble precisin con un rango de 1.79769313486232*10308 a -4.94065645841247*10-324 para
valores
negativos,
4.94065645841247*10 -324
a
308
1.79769313486232*10 para valores positivos, y 0.
SHORT
2 bytes
LONG
4 bytes
LONGTEXT
1 byte por
De cero a un mximo de 1.2 gigabytes.
carcter
LONGBINARY
Segn se
De cero 1 gigabyte. Utilizado para objetos OLE.
necesite
TEXT
1 byte por
De cero a 255 caracteres.
carcter
922.337.203.685.477,5808
16
La siguiente tabla recoge los sinnimos de los tipos de datos definidos:
Tipo de Dato
Sinnimos
BINARY
VARBINARY
BIT
BOOLEAN
LOGICAL
LOGICAL1
YESNO
BYTE
INTEGER1
COUNTER
AUTOINCREMENT
CURRENCY
MONEY
DATETIME
DATE
TIME
TIMESTAMP
SINGLE
FLOAT4
IEEESINGLE
REAL
DOUBLE
FLOAT
FLOAT8
IEEEDOUBLE
NUMBER
NUMERIC
SHORT
INTEGER2
SMALLINT
LONG
INT
INTEGER
INTEGER4
LONGBINARY
GENERAL
OLEOBJECT
LONGTEXT
LONGCHAR
MEMO
NOTE
TEXT
ALPHANUMERIC
CHAR - CHARACTER
STRING - VARCHAR
17
Funciones de SQL
SQL tiene muchas funciones que sirven para realizar clculos con datos.
18
La sentencia GROUP BY
Esta sentencia es usada en conjunto con las funciones de agregacin para agrupar
por una o ms columnas la tabla resultado.
Sintaxis:
SELECT nombre_de_columna, funcin_de_agregacin (nombre_de_columna)
FROM nombre_de_tabla
WHERE nombre_de_columna operador valor
GROUP BY nombre_de_columna
La clusula HAVING
Esta clusula fue agregada a SQL porque la palabra reservada WHERE no puede
usarse con funciones de agregacin.
Sintaxis:
SELECT nombre_de_columna, funcin_de_agregacin (nombre_de_columna)
FROM nombre_de_tabla
WHERE nombre_de_columna operador valor
GROUP BY nombre_de_columna
HAVING funcin_de_agregacin (nombre_de_columna) operador valor
19