Tecnología SQL - Tutorial
Tecnología SQL - Tutorial
TUTORIAL
SQL es un lenguaje estándar para acceder y manipular bases de datos
h
La tabla anterior contiene tres discos (uno para cada persona) y cinco columnas (p_id, Apellido, Nombre,
dirección, y la ciudad).
Sentencias SQL
La mayoría de las acciones que debe realizar en una base de datos se hace con las sentencias SQL.
La siguiente instrucción SQL selecciona todos los registros de las "Personas" tabla:
En este tutorial vamos a enseñarle todo acerca de las diferentes sentencias SQL.
1
Los comandos de consulta y actualización forma parte LMD de SQL:
SELECT - extractos de datos de una base de datos
ACTUALIZACIÓN - actualiza los datos en una base de datos
Eliminar - elimina los datos de una base de datos
INSERT INTO - inserta nuevos datos en una base de datos
La parte DDL de SQL permite que las tablas de base de datos que se creen o eliminen. También
se definen los índices (llaves), especificar relaciones entre tablas, e imponer restricciones entre las tablas. Las
instrucciones DDL más importantes en SQL son:
CREAR BASE DE DATOS - crea una nueva base de datos
ALTER DATABASE - modifica una base de datos
CREATE TABLE - Crea una nueva tabla
ALTER TABLE - modifica una tabla
DROP TABLE - Elimina una tabla
CREATE INDEX - crea un índice (clave de búsqueda)
DROP INDEX - Elimina un índice
SQL Instrucción SELECT
«Anterior
»Siguiente capítulo
________________________________________
En este capítulo se explicará el SELECT y las declaraciones SELECT *.
________________________________________
La instrucción SELECT de SQL
La instrucción SELECT se utiliza para seleccionar datos de una base de datos.
El resultado se almacena en una tabla de resultados, llamado el conjunto de resultados.
SELECT de SQL Sintaxis
SELECT columna_nombre(s)
FROM tabla_nombre
Nota: SQL no distingue entre mayúsculas y minúsculas. SELECT es el mismo que seleccionar.
2
Un ejemplo SELECT de SQL
Las "Personas" tabla:
h
Ahora queremos seleccionar el contenido de las columnas denominadas "Apellido " y "Nombre" por encima de
la mesa.
Sánchez Kevin
È
SELECT * Ejemplo
Ahora queremos seleccionar todas las columnas de las "Personas" de tabla.
Nosotros usamos la siguiente instrucción SELECT:
Consejo: El asterisco (*) es una forma rápida de seleccionar ¡todas las columnas!
h
________________________________________
En este capítulo se explicará la declaración SELECT DISTINCT.
________________________________________
La instrucción SQL SELECT DISTINCT
En una tabla, algunas de las columnas puede contener valores duplicados. Esto no es un problema, sin
embargo, a veces tendrá que lista sólo los diferentes (distintos) los valores de una tabla.
4
La palabra clave DISTINCT puede usarse para devolver sólodistintos (diferentes) los valores.
Sintaxis SQL SELECT DISTINCT
h
Ahora queremos seleccionar sólo los valores distintos de la columna denominada "Ciudad" de la
tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:
Bogotá
Barranquilla
________________________________________
5
La cláusula WHERE se utiliza para filtrar los registros.
________________________________________
La cláusula WHERE
La cláusula WHERE se utiliza para extraer sólo aquellos registros que cumplen el criterio especificado.
WHERE de SQL Sintaxis
SELECT columna_nombre(s)
FROM tabla_nombre
WHERE columna_nombre operator value
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
Ahora queremos seleccionar sólo las personas que viven en la ciudad "Bogotá" de la tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:
h
6
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
Este es correcto:
Este es incorrecto:
Este es correcto:
Este es incorrecto:
Y
SELECT * FROM Personas WHERE Año='1965'
= Igual
<> No es igual
< Menos de
IN Si conoce el valor exacto que desea a cambio de al menos una de las columnas
«Anterior
»Siguiente capítulo
8
________________________________________
Los operadores Y y O se usan para filtrar los registros basados en más de una condición.
________________________________________
La AND & OR Operadores
El operador AND muestra un registro si tanto la condición primera y la segunda condición es verdadera.
La muestra del operador o un registro, si bien la primera condición o la segunda condición son verdaderas.
________________________________________
Y Operador Ejemplo
Las "Personas" tabla:
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
Ahora queremos seleccionar sólo las personas con el nombre igual a "Gustavo" Y el apellido igual a "Salazar
Longas":
Nosotros usamos la siguiente instrucción SELECT:
h
2 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
O el ejemplo de operador
Ahora queremos seleccionar sólo las personas con el nombre igual a "Tove" O el nombre igual a "Ola":
Nosotros usamos la siguiente instrucción SELECT:
9
SELECT * FROM Personas
WHERE Nombres='Gustavo'
OR Nombres='Ramón Alfonso'
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
h
________________________________________
La palabra clave ORDER BY se utiliza para ordenar el conjunto de resultados.
________________________________________
La palabra clave ORDER BY
La palabra clave ORDER BY se utiliza para ordenar el conjunto de resultados de una columna especificada.
La palabra clave ORDER BY ordenar los registros en orden ascendente de forma predeterminada.
10
Si desea ordenar los registros en un orden descendente, puede utilizar la palabra clave DESC.
SQL ORDER BY Sintaxis
4Y,5,!216
SELECT columna_nombre(s)
FROM tabla_nombre
ORDER BY columna_nombre(s) ASC|DESC
ORDER BY Ejemplo
La Tabla "Personas":
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
Ahora queremos seleccionar todas las personas por encima de la mesa, sin embargo, queremos ordenar a las
personas por su apellido.
Nosotros usamos la siguiente instrucción SELECT:
h
11
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
«Anterior
»Siguiente capítulo
________________________________________
Su navegador no admite marcos en línea ni se configura actualmente para no exhibir marcos en línea.
________________________________________
12
SQL INSERT INTO
«Anterior
»Siguiente capítulo
________________________________________
La instrucción INSERT INTO se utiliza para insertar nuevos registros en una tabla.
________________________________________
INSERT INTO
La instrucción INSERT INTO se utiliza para insertar una nueva fila en una tabla.
SQL INSERT INTO Sintaxis
Es posible escribir la instrucción INSERT INTO en dos formas.
La primera forma no especifica los nombres de columna, donde los datos se insertan, sólo sus valores:
The second form specifies both the column names and the values to be inserted:
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
14
4 Sánchez Kevin Car 59B # 80-80 Barranquilla
5 Tjessem Jakob
47h.5
«Anterior
»Siguiente capítulo
________________________________________
La instrucción UPDATE se utiliza para actualizar los registros en una tabla.
________________________________________
La instrucción UPDATE
La instrucción UPDATE se utiliza para actualizar los registros existentes en una tabla.
47h.516
UPDATE tabla_nombre
SET column1=valor, column2=value2,...
WHERE algunas_columnas =algún_valor
La tabla "Personas":
h
15
1 Salazar Longas Gustavo Diag. 89B # 18-È6 Int 4 Apt È02 Bogotá
5 Tjessem Jakob
Ahora queremos poner al día la persona "Tjessem, Jakob" en las "Personas" de mesa.
Nosotros usamos la siguiente instrucción SQL:
UPDATE Personas
SET Dirección='Nissestien 6Y', Ciudad='Sandnes'
WHERE Apellidos='Tjessem' AND Nombres='Jakob'
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
16
Advertencia de actualización de SQL
Tenga cuidado al actualizar los registros. Si se había omitido la cláusula WHERE en el ejemplo anterior, así:
UPDATE Personas
SET Direcciones='Nissestien 6Y', Ciudad='Sandnes'
h
455.5
« Previos Next Captar »
55.5
55.5
-
455.516
1Y
WHERE algunas columnas = algún_valor
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
18
2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá
or
Nota: Tenga mucho cuidado al eliminar registros. No se puede deshacer esta declaración!
«Anterior
»Siguiente Capítulo
SQL ¡Inténtelo!...
«Anterior
»Siguiente capítulo
________________________________________
Pon a prueba tus habilidades de SQL
En esta página usted puede probar sus conocimientos de SQL.
Usaremos la tabla Clientes de la base de datos Northwind:
19
1
20
Simons bistro Jytte Petersen Vinbæltet È4 København
Para preservar el espacio, la tabla de arriba es un subconjunto de la tabla Clientes utilizado en el ejemplo
siguiente.
Cuando se utiliza SQL en datos de texto, "Alfredo" es mayor que la "a" (como en un diccionario).
21
*8-
9
4
:
$
$+(%%(
Ê
22
4.Yh)
«Anterior
»Siguiente capítulo
________________________________________
La cláusula TOP
La cláusula TOP se utiliza para especificar el número de registros para volver.
La cláusula TOP puede ser muy útil en tablas grandes con milesde registros. Devolución de
un gran número de registros pueden tener un impacto en el rendimiento.
Nota: No todos los sistemas de bases de apoyo a la cláusulaTOP.
Sintaxis SQL Servidor
*1416
SELECT columna_nombre(s)
FROM tabla_nombre
LIMIT número
59
SELECT *
FROM Personas
LIMIT 5
Y 16
SELECT columna_nombre(s)
2È
FROM tabla_nombre
WHERE ROWNUM <= número
56
SELECT *
FROM Personas
WHERE ROWNUM <=5
La tabla "Personas":
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
Ahora queremos seleccionar sólo los dos primeros registros en la tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:
24
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
La tabla "Personas":
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
25
405Y
«Anterior
»Siguiente capítulo
________________________________________
El operador LIKE se utiliza en una cláusula WHERE a labúsqueda de un patrón específico en una columna.
________________________________________
El operador LIKE
El operador LIKE se utiliza para buscar un patrón específico en una columna.
40516
SELECT columna_nombre(s)
FROM tabla_nombre
WHERE columna_nombre LIKE patrón
La tabla "Personas":
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
26
Ahora queremos seleccionar las personas que viven en una ciudad que empieza con "B" de la tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:
El signo "%" se puede utilizar para definir comodines (letras que faltan en el patrón), tanto antes
como después de que el patrón.
El conjunto de resultados se verá así:
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
A continuación, queremos seleccionar las personas que viven en una ciudad que termina con una "s" de las
"Personas" de mesa.
Nosotros usamos la siguiente instrucción SELECT:
2Y
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
A continuación, queremos seleccionar las personas que viven en una ciudad que contiene el
patrón "arr" de las "Personas" de mesa.
Nosotros usamos la siguiente instrucción SELECT:
h
También es posible seleccionar las personas que viven en una ciudad que no contiene el patrón "tav" de las
"Personas" de mesa, utilizando la palabra clave NO.
Nosotros usamos la siguiente instrucción SELECT:
28
WHERE Ciudad NOT LIKE '%arr%'
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
«Anterior
»Siguiente capítulo
SQL comodines
«Anterior
»Siguiente capítulo
________________________________________
Comodines SQL se puede utilizar en la búsqueda de datos en una base de datos.
________________________________________
SQL comodines
Comodines SQL puede sustituir a uno o más caracteres en la búsqueda de datos en una base de datos.
Comodines SQL debe ser utilizado con el operador LIKE de SQL.
Con SQL, los comodines pueden utilizar los siguientes:
29
o
[!charlist]
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
Usando el comodín%
Ahora queremos seleccionar las personas que viven en una ciudad que empieza con "sa" de las
"Personas" de mesa.
Nosotros usamos la siguiente instrucción SELECT:
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
È0
È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá
A continuación, queremos seleccionar las personas que viven en una ciudad que contiene el patrón
de "lla" de las "Personas ³de tabla.
Nosotros usamos la siguiente instrucción SELECT:
h
Usando el comodín _
Ahora queremos seleccionar a las personas con un nombre que comience con cualquier carácter, seguido por
"us" con las "Personas" de tabla.
Nosotros usamos la siguiente instrucción SELECT:
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
A continuación, queremos seleccionar las personas con un apellido que comienza con "S", seguida de
cualquier carácter, seguido de "final", seguida de cualquier carácter, seguido por ³a" de las "Personas" de la
È1
tabla.
Nosotros usamos la siguiente instrucción SELECT:
h
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá
h
A continuación, queremos seleccionar las personas con un apellido que no comienzan con "s " o "f
"o "z" de las "Personas ³de la tabla.
Nosotros usamos la siguiente instrucción SELECT:
È2
SELECT * FROM Personas
WHERE Apellido LIKE '[!sfz]%'
h
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
SQL IN Operador
«Anterior
»Siguiente capítulo
________________________________________
El operador IN
El operador IN le permite especificar varios valores en una cláusula WHERE.
ÈÈ
4
16
SELECT columna_nombre(s)
FROM tabla_nombre
WHERE columna_nombre IN (valor1, valor2,...)
IN Operator Ejemplo
La tabla "Personas":
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
La tabla "Personas":
È4
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
«Anterior
»Siguiente capítulo
SQL BETWEEN Operador
«Anterior
»Siguiente capítulo
________________________________________
El operador BETWEEN se utiliza en una cláusula WHERE para seleccionar un rango de datos entre dos
valores.
________________________________________
El operador ENTRE selecciona un rango de datos entre dos valores. Los valores pueden ser números,
texto o fechas.
4!5.;55
16
SELECT columna_nombre(s)
FROM tabla_nombre
WHERE columna_nombre
BETWEEN valor1 AND valor2
La tabla "Personas":
È5
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
Ahora queremos seleccionar a las personas con un apellido alfabéticamente entre "Alazar
Longas" y "Santacoloma" de la tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
«Anterior
»Siguiente capítulo
SQL Alias
«Anterior
»Siguiente capítulo
È6
________________________________________
Con SQL, un nombre de alias se puede dar a una tabla o una columna.
________________________________________
SQL Alias
Usted puede dar a una tabla o una columna de otro nombre utilizando un alias. Esto puede ser una buena
cosa a hacer si tiene los nombres de tablas muy largas o complejas, o nombres de columna.
Un nombre de alias puede ser cualquier cosa, pero por lo general es corta.
Alias sintaxis SQL para las tablas
SELECT columna_nombre(s)
FROM tabla_nombre
AS alias_nombre
416-
Ejemplo de alias
Supongamos que tenemos una tabla llamada "Personas" y otra tabla denominada "Producto_Orden".
Daremos la tabla alias de "p" y "po", respectivamente.
Ahora queremos una lista de todos los pedidos que "Gustavo Salazar Longas" es responsable.
Nosotros usamos la siguiente instrucción SELECT:
ÈY
La misma declaración SELECT sin alias:
Como podrá ver en las dos instrucciones SELECT anterior; alias pueden realizar consultas más fáciles tanto
para escribir y leer.
«Anterior
»Siguiente capítulo
SQL se une a
«Anterior
»Siguiente capítulo
________________________________________
SQL une se utilizan para consultar los datos de dos o más mesas, sobre la base de una relación entre ciertas
columnas en estas tablas.
________________________________________
SQL JOIN
La palabra clave JOIN se utiliza en una sentencia SQL para consultar datos de dos o más tablas, sobre la
base de una relación entre ciertas columnas en estas tablas.
Las tablas de una base de datos a menudo está relacionado el uno al otro con las teclas.
Una clave principal es una columna (o una combinación de columnas) con un valor único para cada fila. Cada
valor de clave principal debe ser único dentro de la tabla. El propósito es enlazar los datos en conjunto, a
través de tablas, sin repetir todos los datos en cada tabla. Miran las "Personas" tabla:
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
È8
È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá
Tenga en cuenta que el "p_id" columna es la clave principal de las "Personas" de mesa. Esto significa que no
hay dos filas pueden tener el mismo p_id. El p_id distingue dos personas aunque tengan el mismo nombre.
A continuación, tenemos el "Reglamento" tabla:
Y Y
h
1 YY895 È
2 446Y8 È
È 22456 1
4 24562 1
5 È4Y64 15
Tenga en cuenta que el "O_Id" columna es la clave principal en la tabla "orden" y que "p_id" columna se
refiere a las personasen las "Personas" tabla sin usar sus nombres.
Tenga en cuenta que la relación entre los dos cuadros anteriores es el "p_id" columna.
________________________________________
Diferentes SQL JOIN
Antes de continuar con ejemplos, vamos a enumerar los tipos de JOIN puede utilizar, y las
diferencias entre ellos.
Volver filas cuando hay al menos un partido en ambas tablas: UNIRSE
LEFT JOIN: Devolver todas las filas de la tabla de la izquierda, incluso si no hay coincidencias en la tabla de
la derecha
RIGHT JOIN: Devolver todas las filas de la tabla de la derecha, incluso si no hay coincidencias en la tabla de
la izquierda
FULL JOIN: Volver filas cuando hay un partido en una de las mesas
«Anterior
»Siguiente capítulo
È9
4
5,:Y
16
SELECT columna_nombre(s)
FROM tabla_nombre1
INNER JOIN tabla_nombre2
ON tabla_nombre1.columna_nombre=tabla_nombre2.columna_nombre
La tabla "Personas":
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
h
<
1
40
Y Y
h
1 YY895 È
2 446Y8 È
È 22456 1
4 24562 1
5 È4Y64 15
Ahora queremos una lista de todas las personas con todos los pedidos.
Nosotros usamos la siguiente instrucción SELECT:
Y
41
La palabra clave INNER JOIN devuelve filas cuando hay al menos un partido en
ambas tablas. Si hay filas de "personas ³que no tienen coincidencias en "Pedidos ", las filas no se mostrará.
«Anterior
»Siguiente capítulo
________________________________________
SQL LEFT JOIN palabra clave
El LEFT JOIN devuelve palabra clave todas las filas de la tabla de la
izquierda (tabla_nombre1), incluso si no hay coincidencias en la tabla a la derecha (tabla_nombre2).
45<.:Y
16
SELECT columna_nombre(s)
FROM tabla_nombre1
LEFT JOIN tabla_nombre2
ON tabla_nombre1.columna_nombre=tabla_nombre2.columna_nombre
PD: En algunas bases de datos LEFT JOIN se llama combinación externa izquierda.
La tabla "Personas":
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
42
2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá
La tabla "Orden":
Y Y
h
1 YY895 È
2 446Y8 È
È 22456 1
4 24562 1
5 È4Y64 15
Ahora queremos una lista de todas las personas y sus órdenes -si las hubiere, de los cuadros anteriores.
Nosotros usamos la siguiente instrucción SELECT:
4È
Y
The LEFT JOIN keyword returns all the rows from the left table (Persons), even if there are no matches in the
right table (Orders).
«Anterior
________________________________________
SQL RIGHT JOIN palabra clave
El RIGHT JOIN Volver palabra clave todas las filas de la tabla de la
derecha (table_name2), incluso si no hay coincidencias en la tabla a la izquierda (table_name1).
4,=.:Y
16
SELECT columna_nombre(s)
FROM tabla_nombre1
RIGHT JOIN tabla_nambre2
ON tabla_nombre1.columna_nombre=tabla_nombre2.columna_nombre
44
PD: En algunas bases de datos se llama RIGHT JOIN RIGHT OUTER JOIN.
________________________________________
SQL RIGHT JOIN Ejemplo
Las "Personas" tabla:
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
La tabla "Orden":
Y Y
h
1 YY895 È
2 446Y8 È
È 22456 1
4 24562 1
5 È4Y64 15
Ahora queremos una lista de todos los órdenes con que contengan personas - si los hubiere, de los cuadros
anteriores.
Nosotros usamos la siguiente instrucción SELECT:
45
El conjunto de resultados se verá así:
Y
È4Y64
La palabra clave FULL JOIN devuelve todas las filas de la tabla de la izquierda (personas), y todas las
filas de la tabla de la derecha (Reglamento). Si hay filas de "personas" que no tienen coincidencias
en "Pedidos ", o si hay filas de "órdenes" que no tienen coincidencias en "Personas", las filas se enumeran
también.
«Anterior
»Siguiente capítulo
________________________________________
SQL operador UNION
«Anterior
»Siguiente capítulo
________________________________________
El operador UNION SQL combina dos o más instrucciones SELECT.
________________________________________
El operador UNION SQL
El operador UNION se usa para combinar el conjunto de resultados de dos o más instrucciones SELECT.
Observe que cada instrucción SELECT dentro de la Unión debe tener el mismo
número de columnas. Las columnas también deben tener tipos de datos similares. Además, las
columnas encada instrucción SELECT debe estar en el mismo orden.
46
47
Y
16
Nota: El operador UNION sólo selecciona valores distintos de forma predeterminada. Para permitir que los
valores duplicados, utilice UNION ALL.
47
Y
16
PD: Los nombres de columna en el conjunto de resultados de una UNION son siempre iguales a los
nombres de columna en la primera instrucción SELECT de la UNION.
________________________________________
SQL Ejemplo UNIÓN
Busque en las siguientes tablas:
³Empleados_Noruega ":
"Employees_Norway":
5 5
0È Svendson, Stephen
4Y
"Empleados_USA":
5 5
01 Turner, Sally
02 Kent, Clark
0È Svendson, Stephen
04 Scott, Stephen
Ahora queremos una lista de todos los empleados diferentes en Noruega y EE.UU..
Nosotros usamos la siguiente instrucción SELECT:
5
Svendson, Stephen
48
Turner, Sally
Kent, Clark
Scott, Stephen
Nota: Este comando no se puede utilizar a la lista de todos los empleados en Noruega y EE.UU.. En el
ejemplo anteriortenemos dos empleados con nombres iguales, y sólo uno deellos en la
lista. El comando UNION sólo selecciona valores distintos.
Resultado
5
Svendson, Stephen
Turner, Sally
Kent, Clark
Svendson, Stephen
49
Scott, Stephen
«Anterior
»Siguiente capítulo
________________________________________
El SQL SELECT INTO se puede utilizar para crear copias de seguridad de las tablas.
________________________________________
El SQL SELECT INTO
La instrucción SELECT INTO selecciona datos de una tabla y lo inserta en una tabla diferente.
La instrucción SELECT INTO es más a menudo se utiliza para crear copias de seguridad de las tablas.
455.
.Y16
SELECT *
INTO nueva_tabla_nombre [IN externadatabase]
FROM Edad_tablanombre
SELECT columna_nombre(s)
INTO nueva_tabla_nombre [IN externadatabase]
FROM edad_tablanombre
50
Hacer una copia de seguridad Copia - Ahora queremos hacer una copia exacta de los datos en
nuestro "Personas" de mesa.
Nosotros usamos la siguiente instrucción SQL:
SELECT *
INTO Personas_Backup
FROM Personas
We can also use the IN clause to copy the table into another database:
SELECT *
INTO Personas_Backup IN 'Backup.mdb'
FROM Personas
We can also copy only a few fields into the new table:
SELECT Apellido,Nombre
INTO Personas_Backup
FROM Personas
SELECT Apellido,Nombre
INTO Personas_Backup
FROM Personas
WHERE Ciudad='Bogotá'
51
SQL SELECT INTO - tablas combinadas
Selección de los datos de más de una tabla también es posible.
En el ejemplo siguiente se crea un "Personas_Orden_Backup" tabla contiene los datos de las dos
tablas "Personas" y ³órdenes":
SELECT Personas.Apellido,Orden.OrdenNo
INTO Personas_Orden_Backup
FROM Personas
INNER JOIN Orden
ON Personas.P_Id=Orden.P_Id
«Anterior
»Siguiente capítulo
________________________________________
El CREATE BASE DE DATOS
La instrucción CREATE DATABASE se utiliza para crear una base de datos.
4,5.5.!516
52
CREATE DATABASE my_db
«Anterior
»Siguiente capítulo
________________________________________
El CREATE TABLE
La instrucción CREATE TABLE se utiliza para crear una tabla en una base de datos.
4,5.5.!516
El tipo de datos específica el tipo de datos de la columna puede contener. Para una referencia completa de
todos los tipos de datos disponibles en MS Access, MySQL y SQL Server, vaya a nuestra completa referencia
de tipos de datos.
5È
contiene cinco columnas: p_id, Apellido, Nombre, dirección, y la ciudad.
Nosotros usamos la siguiente instrucción CREATE TABLE:
La columna p_id es de tipo int y se mantendrá un número. El Apellido, las columnas Nombre, dirección, y
la ciudad son de tipo VARCHAR con una longitud máxima de 255 caracteres.
La tabla vacía "Personas" ahora se verá así:
h
La tabla vacía puede ser llenada con los datos con la instrucción INSERT INTO.
«Anterior
»Siguiente capítulo
SQL Limitaciones
«Anterior
»Siguiente capítulo
________________________________________
SQL Limitaciones
54
Las restricciones se utilizan para limitar el tipo de datos que pueden ir en una tabla.
Las restricciones se pueden especificar cuando se crea una tabla (con la instrucción CREATE
TABLE) o después se crea la tabla (con la instrucción ALTER TABLE).
Nos centraremos en las siguientes restricciones:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
VERIFIQUE
POR DEFECTO
Los capítulos siguientes se describen cada restricción en los detalles.
«Anterior
»Siguiente capítulo
________________________________________
De forma predeterminada, una columna de tabla puede contener valores NULL.
________________________________________
SQL NO restricción NULL
La restricción NOT NULL cumplir una columna para aceptar los valores no NULL.
La restricción NOT NULL aplica un campo para contener siempre un valor. Esto significa que no se
puede insertar un nuevo registro, o actualizar un registro sin necesidad de añadirun valor a este campo.
El siguiente SQL cumplir la "p_id" columna y el "Apellido" la columna para que no acepte valores NULL:
55
Ciudad varchar(255)
)
«Anterior
»Siguiente capítulo
________________________________________
SQL restricción UNIQUE
La restricción UNIQUE identifica de forma única cada registro de una tabla de base de datos.
El único y las restricciones PRIMARY KEY tanto una garantía para la unicidad de una columna o un
conjunto de columnas.
Una restricción PRIMARY KEY, automáticamente tiene una restricción UNIQUE definidas en él.
Tenga en cuenta que puede tener muchas restricciones UNIQUE por tabla, pero sólo una restricción
PRIMARY KEY por tabla.
________________________________________
SQL restricción UNIQUE en CREATE TABLE
El siguiente SQL crea una restricción UNIQUE en la "p_id"columna cuando las "Personas" tabla se crea:
*14>
56
4
?Y
?*>
Para permitir el nombramiento de una restricción UNIQUE, y para definir una restricción UNIQUE en varias
columnas, utilice la siguiente sintaxis SQL:
5Y
ALTER TABLE Personas
ADD UNIQUE (P_Id)
Para permitir el nombramiento de una restricción UNIQUE, y paradefinir una restricción UNIQUE en varias
columnas, utilice la siguiente sintaxis SQL:
*14>
________________________________________
SQL CLAVE restricción PRIMARY
La restricción PRIMARY KEY identifica de forma única cada registro de una tabla de base de datos.
Las claves principales deben contener valores únicos.
Una columna de clave principal no puede contener valores NULL.
58
Cada tabla debe tener una clave principal, y cada tabla sólo puede tener una clave principal.
________________________________________
SQL restricción PRIMARY KEY en CREATE TABLE
El siguiente SQL crea una clave principal en la "p_id" columna cuando las "Personas" tabla se crea:
*14>
Para permitir el nombramiento de una restricción PRIMARYKEY, y para definir una restricción PRIMARY KEY
en varias columnas, utilice la siguiente sintaxis SQL:
59
P_Id int NOT NULL,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
City varchar(255),
CONSTRAINT pk_PersonaID PRIMARY KEY (P_Id,Apellido)
)
Para permitir el nombramiento de una restricción PRIMARYKEY, y para definir una restricción PRIMARY KEY
en varias columnas, utilice la siguiente sintaxis SQL:
Nota: Si utiliza la instrucción ALTER TABLE para agregar una clave principal, la columna de clave
principal (s) ya deben habersido declarados no contienen valores NULL (cuando la tabla fue creada).
________________________________________
Para quitar una restricción de clave principal
Para eliminar una restricción PRIMARY KEY, use el siguiente código SQL:
60
*14>
«Anterior
»Siguiente capítulo
________________________________________
SQL CLAVE restricción FOREIGN
Una clave externa en una tabla de puntos a una clave principalde otra tabla.
Vamos a ilustrar la clave externa con un ejemplo. Mira a los dos cuadros siguientes:
La tabla "Personas´:
h
61
La tabla "Orden":
Y Y
h
1 YY895 È
2 446Y8 È
È 22456 2
4 24562 1
Tenga en cuenta que el "p_id" columna en los puntos "órdenes ³a la tabla "p_id" columna de las "Personas" de
la tabla.
El "p_id" columna de las "Personas" mesa es la clave principal de las "Personas" de mesa.
El "p_id" columna de la tabla "orden" es una clave externa en la tabla "orden".
La restricción FOREIGN KEY se utiliza para prevenir acciones que destruyen los vínculos entre las tablas.
La restricción FOREIGN KEY también impide que los datos no válidos formulario que se inserta en la columna
de clave externa, porque tiene que ser uno de los valores contenidos en la tabla al que apunta.
________________________________________
SQL restricción FOREIGN KEY en CREATE TABLE
El siguiente SQL crea una clave externa en la "p_id" columna cuando el "Reglamento" tabla se crea:
*14>
62
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
Para permitir el nombramiento de una restricción FOREIGNKEY y para la definición de una restricción
FOREIGN KEY en varias columnas, utilice la siguiente sintaxis SQL:
Para permitir el nombramiento de una restricción FOREIGNKEY y para la definición de una restricción
FOREIGN KEY en varias columnas, utilice la siguiente sintaxis SQL:
6È
*14?4
?Y
?*>
*14>
«Anterior
»Siguiente capítulo
________________________________________
SQL restricción CHECK
«Anterior
»Siguiente capítulo
________________________________________
SQL restricción CHECK
La restricción CHECK se utiliza para limitar el rango de valores que se pueden colocar en una columna.
Si se define una restricción CHECK en una columna que sólo permite ciertos valores de esta columna.
64
Si se define una restricción CHECK en una tabla que puede limitar los valores de ciertas
columnas basadas en los valores de otras columnas de la fila.
________________________________________
SQL restricción CHECK en CREATE TABLE
El siguiente SQL crea una restricción CHECK en el "p_id"columna cuando las "Personas" se crea la
tabla. La restricción CHECK especifica que la columna "p_id" sólo debe incluirenteros mayores que 0.
*14>
Para permitir el nombramiento de una restricción CHECK, y para definir una restricción CHECK en varias
columnas, utilice la siguiente sintaxis SQL:
65
*14?4
?Y
?*>
Para permitir el nombramiento de una restricción CHECK, y para definir una restricción CHECK en varias
columnas, utilice la siguiente sintaxis SQL:
66
ALTER TABLE Personas
DROP CONSTRAINT chk_Persona
«Anterior
»Siguiente capítulo
________________________________________
SQL restricción DEFAULT
La restricción DEFAULT se utiliza para insertar un valor predeterminado en una columna.
El valor por defecto será añadido a todos los nuevos registros, si no se especifica otro valor.
________________________________________
SQL restricción DEFAULT en CREATE TABLE
El siguiente SQL crea una restricción DEFAULT en la "City "columna cuando las "Personas" tabla se crea:
La restricción por defecto también puede ser utilizado para insertar los valores del sistema, mediante el uso
de funciones como GETDATE ():
6Y
(
O_Id int NOT NULL,
OrdenNo int NOT NULL,
P_Id int,
Fecha_pedido fecha DEFAULT GETDATE()
)
*14>
*14>
68
ALTER TABLE Personas
ALTER COLUMN Ciudad DROP DEFAULT
«Anterior
»Siguiente capítulo
________________________________________
La instrucción CREATE INDEX se utiliza para crear índices en tablas.
Los índices permiten la aplicación de base de datos para encontrar rápida de datos, sin necesidad de
leer toda la tabla.
________________________________________
Índices
Un índice se pueden crear en una tabla para encontrar datos más rápida y eficaz.
Los usuarios no pueden ver los índices, que son utilizados para acelerar las búsquedas o consultas.
Nota: Actualizando una tabla con los índices lleva más tiempo que la actualización de una
tabla sin (porque los índices también necesitan una actualización). Por lo que sólo debe crear índices
en columnas (y mesas) que serán buscados en contra.
4,5.5
5@16
Crea un índice en una tabla. Los valores duplicados están permitidos:
4,5.57
475
5@16
Crea un índice único en una tabla. Los valores duplicados no están permitidos:
69
ON tabla_nombre (columna_nombre)
Nota: La sintaxis para la creación de índices varía entre las diferentes bases de datos. Por lo
tanto: Compruebe la sintaxis para la creación de índices en la base de datos.
________________________________________
CREAR Ejemplo ÍNDICE
La sentencia de SQL siguiente crea un índice llamado"PIndex"en el "Apellido" columna de las
"Personas" tabla:
Si desea crear un índice en una combinación de columnas,puede enumerar los nombres de columna entre
paréntesis, separados por comas:
Y0
A
4,Yh
5@B,Yh.!51,Yh.!5
CA
DB1
-) ?E
,Yh
,Yh
5@
,Yh
5@
A
,Yh
5@16-
*>
,Yh
5@16-
*4
>
,Yh
5@16-
!(?Y
>
,Yh
5@16-
*14>
Y1
DROP TABLE tabla_nombre
«Anterior
»Siguiente capítulo
________________________________________
La Instrucción ALTER TABLE
La sentencia ALTER TABLE se utiliza para agregar, eliminar omodificar columnas de una tabla existente.
Sintaxis SQL ALTER TABLE
Para agregar una columna en una tabla, utilice la siguiente sintaxis:
ALTER TABLE nombre_tabla
Agregar tipo de datos columna_nombre
Para eliminar una columna de una tabla, utilice la siguiente sintaxis (nótese que algunos sistemas de base de
datos no permiten eliminar una columna):
Y2
ALTER TABLE tabla_nombre
DROP COLUMN columna_nombre
Para cambiar el tipo de datos de una columna de una tabla, utilice la siguiente sintaxis:
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
Ahora queremos añadir una columna denominada "Fecha Nacimiento" en las "Personas" de mesa.
Nosotros usamos la siguiente instrucción SQL:
Tenga en cuenta que la nueva columna, "Fecha Nacimiento", es de tipo fecha y se va a celebrar una fecha. El
tipo de datos específica el tipo de datos de la columna puede contener. Para una referencia completa de
todos los tipos de datos disponibles en MS Access, MySQL y SQL Server, vaya a nuestra completa referencia
de tipos de datos.
Las tabla ³Personas" ahora así:
YÈ
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
Observe que el "Fecha Nacimiento" columna es ahora del año el tipo y se va a celebrar un año en un formato
de dos o cuatro dígitos.
Fecha de Nacimiento
Traduciendo
Observe que el "FechaNacimiento" columna es ahora del año el tipo y se va a celebrar un año en un formato
de dos o cuatro dígitos.
Y4
GOTA Ejemplo COLUMNA
A continuación, queremos eliminar la columna denominada ³FechaNacimiento" en las "Personas" de mesa.
Nosotros usamos la siguiente instrucción SQL:
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
«Anterior
Siguiente capítulo
________________________________________
De incremento automático permite un número único que se genera cuando un nuevo registro se
inserta en una tabla.
________________________________________
Incremento automático de un campo
Muy a menudo nos gustaría que el valor del campo clave principal que se creará de forma automática cada
vez que un registro nuevo se inserta.
Nos gustaría crear un campo de incremento automático en una tabla.
________________________________________
Sintaxis para MySQL
La siguiente instrucción SQL define el "p_id" columna que se va un incremento automático de
campo clave principal en la sección "Personas" tabla:
Y5
CREATE TABLE Personas
(
P_Id int NOT NULL AUTO_INCREMENT,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255),
PRIMARY KEY (P_Id)
)
MySQL usa la palabra clave AUTO_INCREMENT para realizar una función de incremento automático.
De forma predeterminada, el valor inicial de AUTO_INCREMENT es 1, y se incrementan en 1 para cada
nuevo registro.
Para permitir que comience la secuencia de AUTO_INCREMENT con otro valor, utilice la siguiente instrucción
SQL:
La sentencia SQL anterior se inserta un nuevo registro en la tabla "Personas". El "p_id" la columna se le
asigna un valor único. El "Nombre", la columna se establece en "José" y el "Apellido" la columna se establece
en "Montes".
Y6
Sintaxis para SQL Server
La siguiente instrucción SQL define el "p_id" columna que se va un incremento automático de
campo clave principal en la sección "Personas" tabla:
El MS SQL Server utiliza la identidad de palabras clave para realizar una función de incremento automático.
De forma predeterminada, el valor inicial de la identidad es una, y se incrementan en 1 para cada nuevo
registro.
Para especificar que el "p_id" columna debe comenzar en valor10 y el incremento en un 5, cambiar
la identidad a la identidad (10,5).
Para insertar un nuevo registro en la "Personas" de
mesa, queno tendrá que especificar un valor para el "p_id" columna (un valor único se añadirá de forma
automática):
La sentencia SQL anterior se inserta un nuevo registro en la tabla "Personas". El "p_id" la columna se le
asigna un valor único. El "Nombre", la columna se establece en "José" y el "Apellido" la columna se establece
en "Montes".
Buenos días apreciado tutor Kevin Sánchez, necesito aclarar una duda al respecto del envió de las
actividades correspondientes a las unidades, dos y tres. Me inquieta el comentario del compañero JUAN
ALBERTO PITTOREN CRUZ en el Primer Foro Técnico, pues en el informe backup de mi servidor de internet,
se ha detectado el problema con la configuración SQL a través del sistema, quiero decir para que usted reciba
allá el archivo tal como fue realizado aquí; he determinado como objetivo de este mensaje, establecer si los
archivos o ficheros han llegado correctamente, si tengo el ánimo de promover el estado de todo mi
YY
aprendizaje en curso, por supuesto teniendo en cuenta la consideración, los recursos y la autonomía de la
tutoría virtual.
El MS Access utiliza el AUTOINCREMENT palabra clave para realizar una función de incremento automático.
De forma predeterminada, el valor de partida para AUTOINCREMENT es 1, y se incrementan en 1 para cada
nuevo registro.
Para especificar que el "p_id" columna debe comenzar en valor10 y el incremento en un 5, cambie el auto
incremento a AUTOINCREMENT (10,5).
Para insertar un nuevo registro en la "Personas" de
mesa, queno tendrá que especificar un valor para el "p_id" columna (un valor único se añadirá de forma
automática):
La sentencia SQL anterior se inserta un nuevo registro en la tabla "Personas". El "p_id" la columna se le
asigna un valor único. El "Nombre", la columna se establece en "José" y el "Apellido" la columna se establece
en "Montes".
________________________________________
Sintaxis para Oracle
En el código de Oracle es un poco más difícil.
Usted tendrá que crear un campo de incremento automático con el objeto de
Y8
secuencia (este objeto genera una secuencia de números).
Utilice la siguiente sintaxis CREAR LA SECUENCIA:
El código anterior crea un objeto llamado seq_persona secuencia, que comienza con 1 y se incrementan
en 1. Será también caché de hasta 10 valores para el rendimiento. La opción de caché especifica cuántos
valores de secuencia se almacena en la memoria para un acceso más rápido.
Para insertar un nuevo registro en la tabla "Personas", tendremos que utilizar
la función nextval (esta función recupera el valor siguiente de la secuencia seq_persona):
La sentencia SQL anterior se inserta un nuevo registro en la tabla "Personas". El "p_id" la columna se le
asigna el siguiente número de la secuencia seq_persona. El "Nombre", la columna se establece en "José"
y el "Apellido" la columna se establece en "Montes".
«Anterior
Siguiente capítulo
SQL Vistas
«Anterior
»Siguiente capítulo
________________________________________
Una vista es una tabla virtual.
En este capítulo se muestra cómo crear, actualizar y eliminar una vista.
________________________________________
SQL CREATE VISTA
Y9
En SQL, una vista es una tabla virtual basada en el conjunto de resultados de una instrucción SQL.
Una vista contiene filas y columnas, al igual que una tabla real. Los campos en una vista son campos de una
o más tablas reales en la base de datos.
Usted puede agregar funciones de SQL, EN, y JOIN declaraciones a un punto de vista y presentar
los datos como si los datos procedían de una sola tabla.
4,5.5F5;16
Nota: Una visión siempre se muestra a datos actualizados! El motor de base de datos vuelve a crear los
datos, utilizando la declaración SQL de la vista, cada vez que un usuario consulta una vista.
80
Otro punto de vista en la base de datos Neptuno selecciona cada producto en la sección
"Productos" mesa con un precio unitario más alto que el precio medio por unidad:
Otro punto de vista en la base de datos Northwind calcula el total de la venta para
cada categoría en 199Y. Tenga en cuenta que este punto de vista selecciona a sus datos desde otro punto de
vista llamado "Las ventas de productos para el año 199Y":
También podemos añadir una condición a la consulta. Ahora queremos ver el total de la venta sólo para
la categoría "Bebidas":
81
Actualizar una vista de SQL
Puede actualizar una vista utilizando la siguiente sintaxis:
4,5.5Y,,5h5F5;16
Ahora queremos añadir la "categoría" columna de la "lista actual de productos" punto de vista. Vamos
a actualizar la vista con el siguiente SQL:
4,YhF5;16
«Anterior
»Siguiente capítulo
82
________________________________________
SQL Fechas
La parte más difícil cuando se trabaja con las fechas es para estar seguro de que el formato de la fecha en la
que están tratando de insertar, coincide con el formato de la columna de la fecha en la base de datos.
Siempre y cuando los datos contienen sólo la parte de la fecha, las consultas funcionarán como se espera. Sin
embargo, si una porción de tiempo se trata, se hace complicado.
Antes de hablar de las complicaciones de la consulta para las fechas, vamos a ver las más
importantes funciones integradas para trabajar con fechas.
________________________________________
MySQL Funciones de fecha
En la tabla siguiente se enumeran las funciones incorporadas en la fecha más importante en MySQL:
8È
DATEDIFF() Devuelve el tiempo transcurrido entre dos fechas
Y
h
Y
<3
1 Geitost 2008-11-11
84
Ahora queremos seleccionar los registros con un OrdenFecha de"11/11/2008" en el cuadro anterior.
Nosotros usamos la siguiente instrucción SELECT:
Y
h
Y
<3
1 Geitost 2008-11-11
Y
h
Y
<3
¡Obtendremos ningún resultado!... Esto se debe a que la consultase busca sólo para las fechas con ninguna
parte del tiempo.
Consejo: Si desea mantener sus preguntas simples y fáciles de mantener, no permita que los componentes
de tiempo en las fechas!
«Anterior
»Siguiente capítulo
85
SQL valores NULL
«Anterior
»Siguiente capítulo
________________________________________
Valores NULL representan faltan datos desconocidos.
De forma predeterminada, una columna de tabla puede contener valores NULL.
En este capítulo se explicará la IS NULL e IS NOT NULL.
________________________________________
SQL valores NULL
Si una columna de una tabla es opcional, se puede insertar un nuevo registro o actualizar un
registro existente sin necesidad de añadir un
valor a esta columna. Esto significa que el campose guarda con un valor NULL.
Los valores NULL son tratados de manera diferente a otros valores.
NULL se utiliza como un marcador de posición para los valores desconocidos o inaplicables.
Nota: No es posible comparar NULL y 0, que no son equivalentes.
________________________________________
SQL Trabajar con valores NULL
Mira en el siguiente "Personas" tabla:
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
Supongamos que la columna "Dirección" en las tablas "Personas" es opcional. Esto significa que si insertar un
registro sin valor para la columna "Dirección", la columna "Dirección" se guardará con un valor NULL.
¿Cómo podemos comprobar valores NULL?
No es posible poner a prueba los valores NULL con operadores de comparación, como por ejemplo =, <, o <>.
Tendremos que usar el IS NULL e IS NOT NULL en lugar.
________________________________________
SQL IS NULL
86
¿Cómo seleccionar sólo los registros con valores NULL en la columna "Dirección"?
Tendremos que utilizar el operador IS NULL:
SQL no es NULL
¿Cómo seleccionar sólo los registros sin valores NULL en la columna "Dirección"?
En el próximo capítulo veremos el ISNULL (), NVL (), IFNULL () y COALESCE () funciones.
«Anterior
»Siguiente capítulo
8Y
«Anterior
»Siguiente capítulo
________________________________________
ISNULL () de SQL, NVL (), IFNULL () y COALESCE () Funciones
Mira los siguientes "Productos" tabla:
h h
h
7
756 75h
1 Jarlsberg 10.45 16 15
2 Mascarpone È2.56 2È
È Gorgonzola 15.6Y 9 20
En el ejemplo anterior, si alguno de los "UnidadesEnPedido" los valores son NULL, el resultado es NULL.
ISNULL de Microsoft () se utiliza para especificar cómo queremos tratar a los valores NULL.
El NVL (), IFNULL () y COALESCE () también se puede utilizar para obtener el mismo resultado.
En este caso queremos que los valores NULL a ser cero.
A continuación, si "UnidadesEnPedido" es NULL no perjudicará el
cálculo, porque ISNULL () devuelve un cero si el valor es NULL:
4 ?*
Y
Oracle no tiene una función ISNULL (). Sin embargo, podemos usar la función NVL () para lograr el mismo
resultado:
88
SELECT ProductoNombre,PrecioUnitario*(UnidadesEnexistencias+NVL(UnidadesEnPedido,0))
FROM Productos
*14
MySQL tiene una función ISNULL (). Sin embargo, funciona un poco diferente de Microsoft ISNULL ()
de función.
En MySQL podemos usar el IFNULL () función, de esta manera:
SELECT ProductoNombre,PrecioUnitario*(UnidadesEnExistencias+IFNULL(UnidadesEnPedido,0))
FROM Productos
SELECT ProductoNombre,PrecioUnitario*(UniadeaEnExistencias+COALESCE(UnidadesEnPedido,0))
FROM Productos
«Anterior
Siguiente capítulo
________________________________________
Tipos de datos y gamas de Microsoft Access, MySQL y SQL Server.
________________________________________
Microsoft Tipos de datos de Access
89
caracteres como máximo
Yes/No Un campo lógico se puede mostrar como Sí / No, Verdadero /Falso o 1 bit
Activado / Desactivado. En el código, utilice el Verdadero y
Falso constantes (equivalente a -1 y 0). Nota: Los valores nulos no
se permiten en campos Sí / No
Ole Object Puede almacenar imágenes, audio, vídeo, o BLOB otros(grandes objetos up to 1GB
binarios)
Lookup Wizard Vamos a escribir una lista de opciones, que pueden seres 4 bytes
cogidos de una lista desplegable
90
Tipos de datos de MySQL
En MySQL existen tres tipos principales: número, texto y fecha /hora tipos.
Los tipos de texto:
TINYTEXT Contiene una cadena con una longitud máxima de 255 caracteres
TEXT Contiene una cadena con una longitud máxima de 65.5È5 caracteres
BLOB Para BLOB (Binary Large Objects). Almacena hasta 65.5È5bytes de datos
MEDIUMBLOB Para BLOB (Binary Large Objects). Almacena hasta 16.YYY.215bytes de datos
LONGTEXT Contiene una cadena con una longitud máxima de 4,294,96Y,295 caracteres
LONGBLOB Para BLOB (Binary Large Objects). Almacena hasta4,294,96Y,295 bytes de datos
ENUM(x,y,z,et Le permite acceder a una lista de valores posibles. Puede crear una lista de
c.) hasta 65.5È5 valores en una lista ENUM. Si se inserta un valor que no está en la lista, un
valor en blanco se inserta.
Nota: Los valores se ordenan en el orden en que se introduzca.
Usted entra a los valores posibles en este formato: ENUM ('X','Y', 'Z')
SET Similar a ENUM, salvo que SET puede contener hasta 64 elementos de la lista y
puede almacenar más de una opción
8 >
91
.
SMALLINT(size) -È2Y68 A È2Y6Y normal. 0 a 65.5È5 UNSIGNED *. El número máximo de dígitos que se
indique entre paréntesis
FLOAT(size,d) Un pequeño número con un punto decimal flotante. El número máximo de dígitos que
se especifique en el parámetro de tamaño. El número máximo de dígitos
a la derecha del punto decimal se especifica en el parámetro d
DOUBLE(size,d) Un gran número con un punto decimal flotante. El número máximo de dígitos que se
especifique en el parámetro de tamaño. El número máximo de dígitos
a la derecha del punto decimal se especifica en el parámetro d
DECIMAL(size,d) DOBLE almacena como una cadena, lo que permite un punto decimal fijo. El
número máximo de dígitos que se especifique en el parámetro de tamaño. El
número máximo de dígitos a la derecha del punto decimal se especifica en
el parámetro d
* Los tipos enteros tienen una opción adicional llamada UNSIGNED. Normalmente, el entero va desde un
valor positivo a negativo. Agregar el atributo UNSIGNED se moverá hasta que van por lo que comienza a las
cero en lugar de un número negativo.
92
TIMESTAMP() * Una marca de tiempo. Los valores TIMESTAMP se almacenan como el
número de segundos desde la época Unix ('19Y0-01-01 00:00:00 'UTC). HH AAAA-MM-
DD:: Formato MM: SS
Nota: El rango soportado es de '19Y0-01-01 00:00:01 'UTC al'20È8-01-09 0È:14:0Y' UTC
* Incluso si DATETIME y TIMESTAMP devolver el mismo formato, que trabajan de manera muy
diferente. En una consulta INSERT o UPDATE, la marca de forma automática se establece en la fecha y hora
actuales. TIMES TAMP también acepta varios formatos, como YYYY MM DD HH MM SS, YY MM DD HH MM
SS, AAAA MM DD, o AA MM DD.
7 >
nvarchar(max) Datos de longitud variable Unicode. Máximo 5È6 8Y0 912 caracteres
9È
ntext Datos de longitud variable Unicode. Máxima de 2 GB de datos de texto
! 11>
1>
94
El parámetro s indica el número máximo de dígitos almacenados a la derecha
del punto decimal. S debe ser un valor entre 0 y p. El valor por defecto es 0
1>
datetime2 Del 1 de enero de 0001 al È1 de diciembre de 9999 con una 6-8 bytes
precisión de 100 nanosegundos
smalldatetime Desde enero 1, 1900 hasta junio 6, 20Y9, con una precisión de 1 minuto 4 bytes
Time Almacenar una única vez, con una precisión de 100nanosegundos È-5 bytes
datetimeoffset Al igual que datetime2 con la adición de una zona horaria 8-10 bytes
timestamp Almacena un número único que se actualiza cada vez que secrea una
fila o modificados. El valor de marca de tiempo se basa en un
reloj interno y no corresponde al tiempo real. Cadatabla puede tener sólo
una variable de fecha y hora
sql_variant Almacena hasta 8.000 bytes de datos de distintos tipos de datos, excepto
text, ntext e indicación de la hora
95
Uniqueidentifier Almacena un identificador único global (GUID)
cursor Almacena una referencia a un cursor utilizado para las operaciones de base de datos
4<
«Anterior
»Siguiente capítulo
________________________________________
SQL tiene muchas funciones integradas para realizar cálculos en los datos.
________________________________________
Funciones de agregado de SQL
Funciones agregadas de SQL devuelven un solo valor, calculado a partir de valores de una columna.
Útil total de las funciones:
AVG () - Devuelve el valor medio
CUENTA () - Devuelve el número de filas
PRIMERA () - Devuelve el primer valor
ÚLTIMO () - Devuelve el último valor
MAX () - Devuelve el valor más grande
MIN () - Devuelve el valor más pequeño
SUM () - Devuelve la suma
________________________________________
SQL Funciones escalares
Funciones SQL escalares devuelven un solo valor, basado en el valor de la entrada.
Útiles funciones escalares:
UCASE () - Convierte un campo a mayúsculas
LCASE () - Convierte un campo a minúsculas
El MID () - Extraer caracteres de un campo de texto
LEN () - Devuelve la longitud de un campo de texto
ROUND () - Redondea un campo numérico con el número de decimales especificado
NOW () - Devuelve la fecha actual del sistema y el tiempo
FORMATO () - Formatos de cómo un campo se va a mostrar
96
Sugerencia: Las funciones de agregado y las funciones escalares se explicará en detalle en los
capítulos siguientes.
«Anterior
»Siguiente capítulo
4FGH<
«Anterior
»Siguiente capítulo
«Anterior
»Siguiente capítulo
________________________________________
El AVG () Función
El AVG () devuelve el valor medio de una columna numérica.
4FGH16
9Y
6 2008/10/04 100 Nilsen
FROM Orden
Y h
950
Ahora queremos encontrar a los clientes que tienen un valor OrdenPrecios más alto que el promedio del valor
OrdenPrecios.
Nosotros usamos la siguiente instrucción SQL:
Salazar Longas
Nilsen
Jensen
98
«Anterior
»Siguiente capítulo
________________________________________
La función COUNT () devuelve el número de filas que coincide con el criterio especificado.
4Y7
.G
H16
4Y7
.GIH16
4Y7
.G.
.
H16
Nota: COUNT (DISTINCT) trabaja con Oracle y Microsoft SQL Server, pero no con Microsoft Access
99
SQL COUNT (columna_nombre) Ejemplo
El resultado de la instrucción SQL anterior será de 2, porque el cliente Nilsen ha hecho 2 pedidos en total:
100
SELECT COUNT(*) AS NúmeroDeOrden FROM Orden
8 Y
8
«Anterior
»Siguiente capítulo
101
»Siguiente capítulo
________________________________________
La primera función ()
La primera () devuelve el primer valor de la columna seleccionada.
4<,.GH16
102
SELECT OrdenPrecio FROM Orden ORDER BY O_Id LIMIT 1
h Y h
1000
4.GH<
La LAST () Función
4.GH16
10È
5 2008/08/È0 2000 Jensen
h Y h
100
4*@GH<
La MAX () Función
4*@GH16
104
Tenemos los siguientes "órdenes" de la tabla:
2000
4*
GH<
El MIN () Función
El MIN () devuelve el menor valor de la columna seleccionada.
105
4*
GH16
100
106
47*GH<
La función SUMA ()
El SUM () devuelve la suma total de una columna numérica.
47*GH16
Ahora queremos encontrar la suma de todos "de precios para los "campos ".
Nosotros usamos la siguiente instrucción SQL:
10Y
Y
.
5Y00
4,Y7h!2
Las funciones de agregado a menudo se necesita una declaración POR GRUPO agregó.
El GRUPO DE Declaración
La instrucción GROUP BY se utiliza en combinación con las funciones de agregado al grupo de conjunto de
resultados por una o más columnas.
4,Y7h!216
108
4 2008/09/0È È00 Salazar Longas
El conjunto de resultados se verá así:
7*GY
h
H
Nilsen 1Y00
Jensen 2000
Nilsen 5Y00
109
Salazar Longas 5Y00
Jensen 5Y00
Nilsen 5Y00
4=F
)
La cláusula HAVING
La cláusula HAVING se ha añadido a SQL porque la palabra clave WHERE no se podía utilizar con las
funciones de agregado.
4=F
16
110
SQL HAVING Ejemplo
Ahora queremos saber si alguno de los clientes tienen un orden total de menos de 2000.
Nosotros usamos la siguiente instrucción SQL:
Nilsen 1Y00
111
Ahora queremos saber si los clientes "Salazar Longas" o "Jensen" tiene una orden total de más de 1500.
Añadimos una simple cláusula WHERE a la instrucción SQL:
Jensen 2000
475GH<
El UCASE () Función
El UCASE () convierte el valor de un campo a mayúsculas.
475GH16
16- 4
112
SQL UCASE () Ejemplo
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
Ahora queremos seleccionar el contenido de la "Apellido " y "Nombre" por encima de las columnas, y convertir
el "Apellido" columna a mayúsculas.
Nosotros usamos la siguiente instrucción SELECT:
45GH<
El LCASE () Función
El LCASE () convierte el valor de un campo a minúsculas
11È
45GH16
16- 4
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
Ahora queremos seleccionar el contenido de la "Apellido " y "Nombre" por encima de las columnas, y
convertir el "Apellido" la columna en minúsculas.
Nosotros usamos la siguiente instrucción SELECT:
114
Santacoloma Kelly Yaneth
4*GH<
La MID () Función
4*GH16
h )
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
115
È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá
Ahora queremos extraer los cuatro primeros caracteres de encima de la "Ciudad " de la columna.
Nosotros usamos la siguiente instrucción SELECT:
hE+
Bogo
Bogo
Bogo
45
GH<
La Función LEN ()
45
GH16
116
Tenemos los siguientes "Personas" tabla:
h
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá
3Y-
12
4,Y7
GH<
La Función ROUND ()
La función ROUND () se utiliza para redondear un campo numérico con el número de decimales especificado.
11Y
4,Y7
GH16
h )
h
h
7 h
7
Ahora queremos mostrar el nombre del producto y el precio redondeado al entero más cercano.
Nosotros usamos la siguiente instrucción SELECT:
h
h
7
Jarlsberg 10
118
Mascarpone ÈÈ
Gorgonzola 16
4
Y;GH<
La Función NOW ()
4
Y;GH16
h
h
7 h
7
Ahora queremos mostrar los productos y precios por día de hoy.
Nosotros usamos la siguiente instrucción SELECT:
119
h
h
7
h
<3
4<Y,*.GH<
La Función FORMAT ()
4<Y,*.GH16
h )
h
h
7 h
7
120
2 Mascarpone 1000 g È2.56
Ahora queremos mostrar los productos y precios por día de hoy (con fecha de hoy se muestra en el siguiente
formato"AAAA-MM-DD").
Nosotros usamos la siguiente instrucción SELECT:
h
h
7
h
<3
121
ALTER TABLE ALTER TABLE tabla_nombre
ADD columna_nombre TipoDeDato
SELECT columna_nombre
FROM tabla_nombre AS tabla_alias
122
WHERE condición
IN SELECT columna_nombre(s)
FROM tabla_nombre
WHERE columna_nombre
IN (valor1, valor2, )
12È
SELECT * SELECT *
FROM tabla_nombre
124
SELECT INTO SELECT *
INTO new_tabla_nombre [IN BaseDatosExterna]
FROM old_tabla_nombre
SELECT columna_nombre(s)
INTO new_tabla_nombre [IN BaseDatosExterna]
FROM old_tabla_nombre
>
SQL Hosting
SQL Hosting
125
Tenemos los siguientes "órdenes" de tabla:
Si quieres que tu sitio web para ser capaz de almacenar y mostrar datos de una base de datos, el servidor
web debe tener acceso a un sistema de base de datos que utiliza el lenguaje SQL.
Si su servidor web, será presentado por un proveedor de servicios Internet (ISP), que tendrá que buscar para
SQL planes de alojamiento.
El SQL más comunes de alojamiento de bases de datos son MySQL, MS SQL Server y MS Access.
Usted puede tener bases de datos SQL Server en Windows y Linux / sistemas operativos UNIX.
A continuación se muestra una visión general de qué base de datos del sistema que se ejecuta en el SO.
MS SQL Server
Sólo se ejecuta en el sistema operativo Windows.
MySQL
Funciona tanto en Windows y Linux / sistemas operativos UNIX.
MS Access (recomendado sólo para los pequeños sitios web)
Sólo se ejecuta en el sistema operativo Windows.
Para obtener más información acerca de alojamiento web, por favor visite nuestro Hosting tutorial.
SQL Quiz
126
________________________________________
Usted puede probar sus habilidades con SQL WÈSchools Quiz¶.
________________________________________
La prueba
La prueba contiene 20 preguntas y no hay límite de tiempo.
La prueba no es oficial, es sólo una buena manera de ver lo mucho que sabe, o no sabe, acerca de SQL.
________________________________________
Su puntuación se contabilizará
Usted recibirá 1 punto por cada respuesta correcta. Al final del concurso, su puntuación total en la pantalla. La
puntuación máxima es de 20 puntos.
¡Buena suerte! Inicio del Concurso de SQL
12Y