Anda di halaman 1dari 127

TECNOLOGIA_SQL.

TUTORIAL
SQL es un lenguaje estándar para acceder y manipular bases de datos

Base de datos Tablas


Una base de datos más a menudo contiene una o más tablas. Cada tabla se identifica por un nombre (por
ejemplo, "clientes" o ³pedidos"). Las tablas contienen registros (filas) con los datos.
A continuación se muestra un ejemplo de una tabla denominada ³Personas":

h   
   

       !"#$%&'&%( !  )

( *+  , -   .  &%"%$'/ !  )

&    0123 #"$&/ !  )

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:

SELECT * FROM Clientes

En este tutorial vamos a enseñarle todo acerca de las diferentes sentencias SQL.

Tenga en cuenta que...


‡ SQL no es sensible a mayúsculas
________________________________________
¿Punto y coma después de sentencias SQL?
Algunos sistemas de bases de datos requieren un punto y coma al final de cada sentencia SQL.
Punto y coma es la manera estándar para separar cada sentencia SQL en los sistemas de base de
datos que permiten más de una sentencia SQL que se ejecutan en la misma llamada al servidor.
Estamos usando MS Access y SQL Server 2000 y no tiene que poner un punto y coma después de
cada sentencia SQL, pero algunos programas de base de datos que obligan a usarlo.
________________________________________
SQL DML y DDL
SQL se pueden dividir en dos partes: El lenguaje de manipulación de datos (LMD) y el Data Definition
Language (DDL).

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

SELECT * 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   
   

1 Salazar Longas Gustavo Diag. 89 B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

Ahora queremos seleccionar el contenido de las columnas denominadas "Apellido " y "Nombre" por encima de
la mesa.

Nosotros usamos la siguiente instrucción SELECT:

SELECT Apellidos, Nombre FROM Personas

El conjunto de resultados se verá así:

 


Salazar Longas Gustavo

Muñoz Ramón Alfonso

Santacoloma Kelly Yaneth

Sánchez Kevin

È
SELECT * Ejemplo
Ahora queremos seleccionar todas las columnas de las "Personas" de tabla.
Nosotros usamos la siguiente instrucción SELECT:

SELECT * FROM Personas

Consejo: El asterisco (*) es una forma rápida de seleccionar ¡todas las columnas!

El conjunto de resultados se verá así:

h   
   

1 Salazar Longas Gustavo Diag. 89 B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

Navegación en un conjunto de resultados


La mayoría de los sistemas de software de bases de datos permiten la navegación en el conjunto de
resultados con las funciones de programación, tales como: Mudanza hasta el primer registro, Get-registro-de
contenido, movimiento al siguiente-Record, etc
Funciones de programación como estos no son parte de este tutorial. Para obtener información sobre cómo
acceder a los datos con llamadas a funciones, por favor visite nuestro ADO tutorial o nuestro tutorial de PHP.

SQL Instrucción SELECT DISTINCT


«Anterior
»Siguiente capítulo

________________________________________
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

SELECT DISTINCT columna_nombre(s)


FROM tabla_nombre

SELECT DISTINCT Ejemplo


La tabla "Personas´:

h   
   

1 Salazar Longas Gustavo Diag. 89 B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

Ahora queremos seleccionar sólo los valores distintos de la columna denominada "Ciudad" de la
tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:

SELECT DISTINCT Ciudad FROM Personas

El conjunto de resultados se verá así:



Bogotá

Barranquilla

SQL Cláusula WHERE


«Anterior
»Siguiente capítulo

________________________________________
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

DONDE Ejemplo Cláusula


Las "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 #18-È6 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

Ahora queremos seleccionar sólo las personas que viven en la ciudad "Bogotá" de la tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:

SELECT * FROM Personas


WHERE Ciudad='Bogotá'

El conjunto de resultados se verá así:

h   
   

6
1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 16-È6 Bogotá

Cotizaciones alrededor de los campos de texto


SQL utiliza comillas simples alrededor de los valores de texto (la mayoría de los sistemas de base de
datos también se aceptan comillas dobles).
Aunque, los valores numéricos no deben ir entre comillas.
Para valores de texto:

Este es correcto:

SELECT * FROM Personas WHERE Nombre='Gustavo'

Este es incorrecto:

SELECT * FROM Personas WHERE Nombre=Gustavo

Para los valores numéricos:

Este es correcto:

SELECT * FROM Persons WHERE Year=1965

Este es incorrecto:

Y
SELECT * FROM Personas WHERE Año='1965'

Las empresas están autorizadas en la cláusula WHERE


Con la cláusula WHERE, los operadores pueden utilizar los siguientes

Y    

= Igual

<> No es igual

> Mayor que

< Menos de

>= Mayor o igual

<= Menor o igual

BETWEEN Entre un rango inclusivo

LIKE Buscar un patrón

IN Si conoce el valor exacto que desea a cambio de al menos una de las columnas

Nota: En algunas versiones de SQL el operador> <se puede escribir como =!

«Anterior
»Siguiente capítulo

SQL AND & OR Operadores


«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á

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT * FROM Personas


WHERE Nombre='Gustavo'
AND Apellido='Salazar Longas'

El conjunto de resultados se verá así:

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'

El conjunto de resultados se verá así:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

La combinación de AND & OR


También se pueden combinar (entre paréntesis el uso para formar expresiones complejas) AND y OR.
Ahora queremos seleccionar sólo las personas con el apellido igual a "Muñoz" Y el primer nombre igual
a "Ramón Alfonso" o "Gustavo":
Nosotros usamos la siguiente instrucción SELECT:

SELECT * FROM Persons WHERE


Apellido='Muñoz'
AND (Nombre='Ramón Alfonso' OR Nombre='Gustavo')

El conjunto de resultados se verá así:

h   
    

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá


SQL ORDER BY palabra clave
«Anterior
»Siguiente capítulo

________________________________________
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á

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B#80-80 Barranquilla

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:

SELECT * FROM Personas


ORDER BY Nombres

El conjunto de resultados se verá así:

h   
   

11
1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

È Santacoloma Kelly Yaneth Calle 85 # 18È6 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

Nosotros usamos la siguiente instrucción SELECT:

Ejemplo ORDER BY DESC


Ahora queremos seleccionar todas las personas por encima de la mesa, sin embargo, queremos ordenar a las
personas descendentes por su apellido.

SELECT * FROM Personas


ORDER BY Apellido DESC

El conjunto de resultados se verá así:

h   
   

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B#80-80 Barranquilla

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:

INSERT INTO tabla_nombre


VALUES (valor1, valor2, valorÈ,...)

The second form specifies both the column names and the values to be inserted:

INSERT INTO tabla_nombre (column1, column2, columnÈ,...)


VALUES (valor1, valor2, valorÈ,...)

SQL INSERT INTO Ejemplo


Tenemos los siguientes "Personas" tabla:

h   
    

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

Ahora queremos insertar una nueva fila en la sección tabla de "Personas".


Nosotros usamos la siguiente instrucción SQL:

INSERT INTO Personas
VALUES (4,'Sánchez', 'Kevin', ' Car 59B # 80-80', 'Barranquilla')

La Tabla "Personas" ahora se verá así:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 102-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B#80-80 Barranquilla

Insertar datos sólo en las columnas especificadas


También es posible añadir sólo los datos en columnas específicas.
La siguiente instrucción SQL se añade una nueva fila, pero sólo agregar datos en el "p_id", "Apellido" y las
columnas "Nombre":

INSERT INTO Personas (P_Id, Apellido, Nombre)


VALUES (5, 'Tjessem', 'Jakob')

La Tabla "Personas" ahora se verán así:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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

Nota: Observe la cláusula WHERE en la sintaxis UPDATE. La cláusula WHERE especifica


el registro o registros que deben actualizarse. Si se omite la cláusula WHERE, todos los registros
serán actualizados!

SQL UPDATE Ejemplo

La tabla "Personas":

h   
   

15
1 Salazar Longas Gustavo Diag. 89B # 18-È6 Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

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'

The "Personas" la Tabla ahora se verá así:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

5 Tjessem Jakob Nissestien 6Y Sandnes

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'

The "Persons" table would have looked like this:

h   
   

1 Hansen Ola Nissestien 6Y Sandnes

2 Svendson Tove Nissestien 6Y Sandnes

È Pettersen Kari Nissestien 6Y Sandnes

4 Nilsen Johan Nissestien 6Y Sandnes

5 Tjessem Jakob Nissestien 6Y Sandnes

« Anterior Next Captar »

455.5 
« Previos Next Captar »

La sentencia DELETE se utiliza para eliminar registros en una tabla.

 55.5
55.5   - 

455.516

DELETE FROM tabla_nombre

1Y
WHERE algunas columnas = algún_valor

Nota: Observe la cláusula WHERE en la sintaxis de DELETE. La cláusula WHERE especifica


el registro o registros que se deben eliminar. Si se omite la cláusula WHERE, todos los registros serán
borrados!

SQL DELETE Ejemplo


Las "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 102-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

5 Tjessem Jakob Nissestien 6Y Sandnes

Ahora queremos eliminar la persona "Sánchez, Kevin" en las "Personas" de mesa.


Nosotros usamos la siguiente instrucción SQL:

DELETE FROM Personas


WHERE Apellidos='Kevin' y Nombres='Kevin'

La Tabla "Personas´ Ahora se verá así:

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á

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sánchez Kevin Car 59B # 80-80 Barranquilla

Eliminar todas las filas


Es posible eliminar todas las filas de una tabla sin borrar la tabla. Esto significa que la estructura de la
tabla, los atributos, y los índices se intacta:

DELETE FROM tabla_nombre

or

DELETE * FROM tabla_nombre

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
     

Alfredo Futterkiste María Anders Obere Str. 5Y Berlín Alemania

Gustavo Salazar Longas email.9XNQEL.92È5@smbcolombia.dell.com Carrera Y #115-ÈÈ Bogotá,


Oficina 60È Colombia

Ramón Alfonso Muñoz email.EELFR8.È0182@smbcolombia.dell.com Carrera Y #115-ÈÈ Bogotá,


Oficina 60È Colombia

Kelly Yaneth email.EELFR8.È0182@smbcolombia.dell.com Carrera Y #115-ÈÈ Bogotá,


Santacoloma Oficina 60È Colombia

Kevin Sánchez email.EELFR8.È0182@smbcolombia.dell.com Carrera Y #115-ÈÈ Bogotá,


Oficina 60È Colombia

Centro comercial Francisco Chang Sierras de Granada México D.F.


Moctezuma 999È

Roland Mendel Kirchgasse 6 Graz

FISSA Fabrica Inter. Diego Roel C/ Moralzarzal, 86 Madrid


Salchichas S.A.

Galería del gastrónomo Eduardo Saavedra Rambla de Barcelona


Cataluña, 2È

Island Trading Helen Bennett Garden House Cowes


Crowther Way

Königlich Essen Philip Cramer Maubelstr. 90 Brandenburg

Laughing Bacchus Wine Yoshi Tannamuri 1900 Oak St. Vancouver


Cellars

Magazzini Alimentari Giovanni Rovelli Via Ludovico il Bergamo


Riuniti Moro 22

North/South Simon Crowther South House È00 London


Queensbridge

Paris spécialités Marie Bertrand 265, boulevard Paris


Charonne

Rattlesnake Canyon Paula Wilson 281Y Milton Dr. Albuquerque


Grocery

20
Simons bistro Jytte Petersen Vinbæltet È4 København

The Big Cheese Liz Nixon 89 Jefferson Way Portland


Suite 2

Vaffeljernet Palle Ibsen Smagsløget 45 Århus

Wolski Zajazd Zbyszek Piestrzeniewicz ul. Filtrowa 68 Warszawa

Para preservar el espacio, la tabla de arriba es un subconjunto de la tabla Clientes utilizado en el ejemplo
siguiente.

Inténtelo usted mismo


Para ver cómo funciona SQL, puede copiar las instrucciones SQL a continuación y pegarlo en el área de
texto, o usted puede hacer sus propias declaraciones SQL.

SELECT * FROM clientes

SELECT colombianSystens, NombreContacto FROM clientes

SELECT * FROM clientes WHERE colombianSystens LIKE 'a%'

SELECT ColombianSystens, NombreContacto


FROM clientes
WHERE NombreContacto > 'a'

Cuando se utiliza SQL en datos de texto, "Alfredo" es mayor que la "a" (como en un diccionario).

SELECT ColombianSystens, NombreContacto


FROM clientes
WHERE ColombianSystens > 'g'
AND NombreContacto > 'g'

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

SELECT TOP número|porcentaje columna_nombre(s)


FROM tabla_nombre

SQL SELECT TOP equivalente en MySQL y Oracle

*1416

SELECT columna_nombre(s)
FROM tabla_nombre
LIMIT número

59  

SELECT *
FROM Personas
LIMIT 5

Y 16

SELECT columna_nombre(s)


FROM tabla_nombre
WHERE ROWNUM <= número

56 

SELECT *
FROM Personas
WHERE ROWNUM <=5

SQL TOP Ejemplo

La tabla "Personas":

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sanchez Kevin Car 59B # 80-80 Barranquilla

Ahora queremos seleccionar sólo los dos primeros registros en la tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:

SELECT TOP 2 * FROM Personas

El conjunto de resultados se verá así:

24
h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

SQL TOP PERCENT Ejemplo

La tabla "Personas":

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sanchez Kevin Car 59B # 80-80 Barranquilla

Ahora queremos seleccionar sólo el 50% de los registros en la tabla anterior.


Nosotros usamos la siguiente instrucción SELECT:

SELECT TOP 50 PERCENT * FROM Personas

El conjunto de resultados quedará así:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 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

LIKE Operador Ejemplo

La tabla "Personas":

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT * FROM Personas


WHERE Ciudad LIKE 'B%'

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á

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sanchez Kevin Car 59B # 80-80 Barranquilla

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:

SELECT * FROM Personas


WHERE Ciudad LIKE '%a'

El conjunto de resultados se verá así:

2Y
h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

4 Sanchez Kevin Car 59B # 80-80 Barranquilla

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:

SELECT * FROM Personas


WHERE Ciudad LIKE '%arr%'

El conjunto de resultados se verá así:

h   
   

4 Sanchez Kevin Car 59B # 80-80 Barranquilla

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:

SELECT * FROM Personas

28
WHERE Ciudad NOT LIKE '%arr%'

El conjunto de resultados se verá así:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

Comodín  

% Un sustituto de cero o más caracteres

_ Un sustituto para exactamente un carácter

[charlist] Cualquier carácter individual en charlist

[^charlist] Cualquier carácter no solo en charlist

29
o

[!charlist]

SQL Ejemplos comodín


Tenemos los siguientes "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT * FROM Personas


WHERE Ciudad LIKE 'bo%'

El conjunto de resultados se verá así:

Tenemos los siguientes "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 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:

SELECT * FROM Personas


WHERE Ciudad LIKE '%lla%'

El conjunto de resultados se verá así:

h   
   

4 Sanchez Kevin Car 59B # 80-80 Barranquilla

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:

SELECT * FROM Personas


WHERE Apellido LIKE '_us'

El conjunto de resultados se verá así:

Tenemos los siguientes "Personas" tabla:

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:

SELECT * FROM Personas


WHERE Apellido LIKE 'S_ final _ar'

El conjunto de resultados se verá así:

Tenemos los siguientes "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115A-0È Int 4 Apt È02 Bogotá

Uso de la [charlist] comodín


Ahora queremos seleccionar a las personas con un apellido que comienza con "b " o "s "o "p" de las
"Personas" de la tabla.
Nosotros usamos la siguiente instrucción SELECT:

SELECT * FROM Personas


WHERE Apellido LIKE '[muñ]%'

El conjunto de resultados se verá así:

Tenemos los siguientes "Personas" tabla:

h   
   

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

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]%'

El conjunto de resultados se verá así:

El conjunto de resultados se verá así:

Tenemos los siguientes "Personas" tabla:

h   
   

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

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á

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

Ahora queremos seleccionar a las personas con un apellido igual a "Salazar


Longas" o "Santacoloma" de la tabla anterior.
Nosotros usamos la siguiente instrucción SELECT:

SELECT * FROM Personas


WHERE Apellido IN ('Salazar Longas','Santacoloma')

El conjunto de resultados se verá así:

La tabla "Personas":
È4
h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Santacoloma Kelly Yaneth Calle 85 # 18-È6 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.
________________________________________

The BETWEEN Operador

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

BETWEEN Operador Ejemplo

La tabla "Personas":
È5
h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT * FROM Personas


WHERE Apellido
BETWEEN 'Salazar Longas' AND 'Santacoloma'

El resultado quedará así:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

Nota: El operador BETWEEN es tratado de manera diferente en diferentes bases de datos.


En algunas bases de datos, las personas con el apellido de ³Salazar
Longas" o "Santacoloma" no aparecerán, porque el operador ENTRE sólo selecciona los campos que
se encuentran entre los valores y la exclusión de la prueba).

«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-   

SELECT columna_nombre AS alias_nombre


FROM tabla_nombre

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:

SELECT po.OrdenID, p.Apellido, p.Nombre


FROM Personas AS p,
Producto_Orden AS po
WHERE p.Apellido='Hansen' AND p.Nombre='Gustavo'

ÈY
La misma declaración SELECT sin alias:

SELECT Producto_Orden.OrdenID, Personas.Apellido, Personas.Nombre


FROM Personas,
Producto_Orden
WHERE Personas.Apellido='Salazar Longas' AND Personas.Nombre='Gustavo'

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á

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 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

SQL INNER JOIN palabra clave

È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

PD: INNER JOIN es la misma que JOIN.

SQL INNER JOIN Ejemplo

La tabla "Personas":

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

h  
  < 
    1

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 2È Sandnes

È Pettersen Kari Storgt 20 Stavanger

The "Orders" table:

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:

SELECT Personas.Apellido, Personas.Nombre, Orden.OrdenNo


FROM Personas
INNER JOIN Orden
ON Personas.P_Id=Orden.P_Id
ORDER BY Personas.Apellido

El conjunto de resultados se verá así:

 
 Y 


Salazar Longas Gustavo 22456

Salazar Longas Gustavo 24562

Santacoloma Kelly Yaneth YY895

Santacoloma Kelly Yaneth 446Y8

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


«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.

SQL LEFT JOIN Ejemplo

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á

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT Personas.Apellido, Personas.Nombre, Orden.OrdenNo


FROM Personas
LEFT JOIN Orden
ON Personas.P_Id=Orden.P_Id
ORDER BY Personas.Apellido

El conjunto de resultados se verá así:


 
 Y 


Salazar Longas Gustavo 22456

Salazar Longas Gustavo 24562

Santacoloma Kelly Yaneth YY895

Santacoloma Kelly Yaneth 446Y8

Muñoz Ramón Alfonso

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


«Anterior
»Siguiente capítulo

________________________________________
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á

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT Personas.Apellido, Personas.Nombre, Orden.OrdenNo


FROM Personas
RIGHT JOIN Orden
ON Personas.P_Id=Orden.P_Id
ORDER BY Personas.Apellido

45
El conjunto de resultados se verá así:

 
 Y 


Salazar Longas Gustavo 22456

Salazar Longas Gustavo 24562

Santacoloma Kelly Yaneth YY895

Santacoloma Kelly Yaneth 446Y8

Muñoz Ramón Alfonso

È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

SELECT columna_nombre(s) FROM tabla_nombre1


UNION
SELECT columna_nambre(s) FROM tabla_nombre2

Nota: El operador UNION sólo selecciona valores distintos de forma predeterminada. Para permitir que los
valores duplicados, utilice UNION ALL.

47
Y
16

SELECT columna_nombre(s) FROM tabla_nombre1


UNION ALL
SELECT columna_nombre(s) FROM tabla_nombre2

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


01 Salazar Longas, Gustavo

02 Muñoz, Ramón Alfonso

0È Svendson, Stephen

04 Santacoloma, Kelly Yaneth

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:

SELECT E_Nombre FROM Empleados_Noruega


UNION
SELECT E_Nombre FROM Empleados_USA

El conjunto de resultados se verá así:

5


Salazar Longas, Gustavo

Muñoz, Ramón Alfonso

Svendson, Stephen

Santacoloma, Kelly Yaneth

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.

SQL UNION ALL Ejemplo


Ahora queremos una lista de todos los empleados en Noruega y EE.UU.:

SELECT E_Nombre FROM Empleados_Noruega


UNION ALL
SELECT E_Nombre FROM Empleados_USA

Resultado

5


Salazar Longas, Gustavo

Muñoz, Ramón Alfonso

Svendson, Stephen

Santacoloma, Kelly Yaneth

Turner, Sally

Kent, Clark

Svendson, Stephen

49
Scott, Stephen

«Anterior
»Siguiente capítulo

SQL SELECT INTO


«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

Podemos seleccionar todas las columnas en la nueva tabla:

SELECT *
INTO nueva_tabla_nombre [IN externadatabase]
FROM Edad_tablanombre

O podemos seleccionar sólo las columnas que desea en la nueva tabla:

SELECT columna_nombre(s)
INTO nueva_tabla_nombre [IN externadatabase]
FROM edad_tablanombre

SQL SELECT INTO Ejemplo

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

SQL SELECT INTO - Con una cláusula WHERE


También puede agregar una cláusula WHERE.
La siguiente sentencia SQL crea un "Personas_Backup" tabla con sólo las
personas que vive en la ciudad "Bogotá":

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

BASE DE DATOS SQL CREATE


«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

CREATE DATABASE database_nombre

CREAR BASE DE DATOS Ejemplo


Ahora queremos crear una base de datos llamada "my_db".
Usamos la siguiente instrucción CREATE DATABASE:

52
CREATE DATABASE my_db

Tablas de base de datos se pueden añadir a la declaración CREATE TABLE.

«Anterior
»Siguiente capítulo

SQL CREATE TABLE


«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

CREATE TABLE tabla_nombre


(
columna_nombre1 tipo_datos,
columna_nombre2 tipo_datos,
columna_nombreÈ tipo_datos,
...
)

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.

Ejemplo CREAR MESA


Ahora queremos crear una tabla denominada "Personas", que


contiene cinco columnas: p_id, Apellido, Nombre, dirección, y la ciudad.
Nosotros usamos la siguiente instrucción CREATE TABLE:

CREATE TABLE Personas


(
P_Id int,
Apellido varchar(255),
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255)
)

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

SQL NO restricción NULL


«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:

CREATE TABLE Personas


(
P_Id int NOT NULL,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),

55
Ciudad varchar(255)
)

«Anterior
»Siguiente capítulo

SQL restricción UNIQUE


«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>

CREATE TABLE Persons


(
P_Id int NOT NULL,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255),
UNIQUE (P_Id)
)

56
4  ?Y ?*>

CREATE TABLE Persons


(
P_Id int NOT NULL UNIQUE,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255)
)

Para permitir el nombramiento de una restricción UNIQUE, y para definir una restricción UNIQUE en varias
columnas, utilice la siguiente sintaxis SQL:

*14?4  ?Y ?*>

CREATE TABLE Personas


(
P_Id int NOT NULL,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255),
CONSTRAINT uc_PersonaID UNIQUE (P_Id,Apellido)
)

Restricción UNIQUE en SQL ALTER TABLE


Para crear una restricción UNIQUE en la "p_id" columna cuando la tabla ya está creada, utilice el siguiente
código SQL:

*14?4  ?Y ?*>

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?4  ?Y ?*>

ALTER TABLE Personas


ADD CONSTRAINT uc_PersonaID UNIQUE (P_Id,Apellido)

Para quitar una restricción UNIQUE


Para eliminar una restricción UNIQUE, utilice el siguiente código SQL:

*14>

ALTER TABLE Personas


DROP INDEX uc_PersonaID

4  ?Y ?*>

ALTER TABLE Personas


DROP CONSTRAINT uc_PersonaID

SQL CLAVE restricción PRIMARY


«Anterior
»Siguiente capítulo

________________________________________
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>

CREATE TABLE Personas


(
P_Id int NOT NULL,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255),
PRIMARY KEY (P_Id)
)

4  ?Y ?*>

CREATE TABLE Personas


(
P_Id int NOT NULL PRIMARY KEY,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255)
)

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:

*14?4  ?Y ?*>

CREATE TABLE Personas


(

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)
)

SQL restricción PRIMARY KEY en ALTER TABLE


Para crear una restricción PRIMARY KEY en la "p_id" columna cuando la tabla ya está creada, utilice el
siguiente código SQL:

*14?4  ?Y ?*>

ALTER TABLE Personas


ADD PRIMARY KEY (P_Id)

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:

*14?4  ?Y ?*>

ALTER TABLE Personas


ADD CONSTRAINT pk_PersonaID PRIMARY KEY (P_Id,Apellido)

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>

ALTER TABLE Personas


DROP PRIMARY KEY

4  ?Y ?*>

ALTER TABLE Personas


DROP CONSTRAINT pk_PersonaID

«Anterior
»Siguiente capítulo

SQL CLAVE restricción FOREIGN


«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   
   

1 Salazar Longas Gustavo Diag. 89 B # 115A-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

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>

CREATE TABLE Orden


(
O_Id int NOT NULL,
OrdenNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Personas(P_Id)
)

4  ?Y ?*>

CREATE TABLE Orden

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:

*14?4  ?Y ?*>

CREATE TABLE Orders


(
O_Id int NOT NULL,
OrdenNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PorOrden FOREIGN KEY (P_Id)
REFERENCES Personas(P_Id)
)

SQL restricción FOREIGN KEY en ALTER TABLE


Para crear una restricción FOREIGN KEY en la "p_id" columna cuando el "Reglamento" tabla ya
está creada, utilice el siguiente código SQL:

*14?4  ?Y ?*>

ALTER TABLE Orden


ADD FOREIGN KEY (P_Id)
REFERENCES Personas(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:


*14?4  ?Y ?*>

ALTER TABLE Orden


ADD CONSTRAINT fk_PorOrden
FOREIGN KEY (P_Id)
REFERENCES Personas(P_Id)

Para quitar una restricción de clave externa


Para quitar una restricción FOREIGN KEY, use el siguiente código SQL:

*14>

ALTER TABLE Orders


DROP FOREIGN KEY fk_PorOrden

4  ?Y ?*>

ALTER TABLE Orden


DROP CONSTRAINT fk_PorOrden

«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>

CREATE TABLE Personas


(
P_Id int NOT NULL,
Apellidos varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255),
CHECK (P_Id>0)
)

4  ?Y ?*>

CREATE TABLE Personas


(
P_Id int NOT NULL CHECK (P_Id>0),
Apellidos varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255)
)

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 ?*>

CREATE TABLE Persons


(
P_Id int NOT NULL,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255),
CONSTRAINT chk_Persona CHECK (P_Id>0 AND Ciudad='Bogotá')
)

Restricción CHECK en SQL ALTER TABLE


Para crear una restricción CHECK en el "p_id" columna cuando la tabla ya está creada, utilice el siguiente
código SQL:

*14?4  ?Y ?*>

ALTER TABLE Personas


ADD CHECK (P_Id>0)

Para permitir el nombramiento de una restricción CHECK, y para definir una restricción CHECK en varias
columnas, utilice la siguiente sintaxis SQL:

*14?4  ?Y ?*>

ALTER TABLE Persons


ADD CONSTRAINT chk_Persona CHECK (P_Id>0 AND Ciudad='Bogotá')

Para quitar una restricción CHECK


Para eliminar una restricción CHECK, utilice el siguiente código SQL:

4  ?Y ?*>

66
ALTER TABLE Personas
DROP CONSTRAINT chk_Persona

«Anterior
»Siguiente capítulo

SQL restricción DEFAULT


«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:

*14?4  ?Y ?*>

CREATE TABLE Persons


(
P_Id int NOT NULL,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255) DEFAULT 'Sandnes'
)

La restricción por defecto también puede ser utilizado para insertar los valores del sistema, mediante el uso
de funciones como GETDATE ():

CREATE TABLE Orden

6Y
(
O_Id int NOT NULL,
OrdenNo int NOT NULL,
P_Id int,
Fecha_pedido fecha DEFAULT GETDATE()
)

Restricción DEFAULT en SQL ALTER TABLE


Para crear una restricción DEFAULT en la "Ciudad" la columna cuando la tabla ya está creada, utilice el
siguiente código SQL:

*14>

ALTER TABLE Personas


ALTER Ciudad SET DEFAULT 'BOGOTA'

4  ?Y ?*>

ALTER TABLE Personas


ALTER COLUMN Ciudad SET DEFAULT 'BOGOTA'

Para quitar una restricción DEFAULT


Para quitar una restricción DEFAULT, utilice el siguiente código SQL:

*14>

ALTER TABLE Personas


ALTER Ciudad DROP DEFAULT

4  ?Y ?*>

68
ALTER TABLE Personas
ALTER COLUMN Ciudad DROP DEFAULT

«Anterior
»Siguiente capítulo

SQL CREATE INDEX


«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:

CREATE INDEX indice_nombre


ON tabla_nombre (columna_nombre)

4,5.57
475
5@16
Crea un índice único en una tabla. Los valores duplicados no están permitidos:

CREATE UNIQUE INDEX indice_nombre

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:

CREATE INDEX PIndex


ON Personas (Apellido)

Si desea crear un índice en una combinación de columnas,puede enumerar los nombres de columna entre
paréntesis, separados por comas:

CREATE INDEX PIndex


ON Persons (Apellido, Nombre)

Y0
  
A 

4,Yh
5@B,Yh.!51,Yh.!5
  
CA 


DB 1   -)   ?E   ,Yh

 ,Yh
5@
 ,Yh
5@   A 

,Yh
5@16- *>

DROP INDEX indice_nombre ON tabla_nombre

,Yh
5@16- *4  >

DROP INDEX tabla_nombre.indice_nombre

,Yh
5@16- !(?Y >

DROP INDEX indice_nombre

,Yh
5@16- *14>

ALTER TABLE tabla_nombre DROP INDEX indice_nombre

La declaración DROP TABLE


La instrucción DROP TABLE se utiliza para eliminar una tabla.

Y1
DROP TABLE tabla_nombre

La declaración DROP DATABASE


La instrucción DROP DATABASE se utiliza para eliminar una base de datos.

DROP DATABASE database_nombre

La instrucción TRUNCATE TABLE


¿Y si sólo queremos eliminar los datos dentro de la tabla, y no la propia tabla?
A continuación, utilice la instrucción TRUNCATE TABLE:

TRUNCATE TABLE tabla_nombre

«Anterior
»Siguiente capítulo

SQL ALTER TABLE


«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:

ALTER TABLE tabla_nombre


ALTER COLUMN columna_nombre tipo_datos

SQL ALTER TABLE ejemplo


Mira las "Personas" tabla:

h   
    

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

Ahora queremos añadir una columna denominada "Fecha Nacimiento" en las "Personas" de mesa.
Nosotros usamos la siguiente instrucción SQL:

ALTER TABLE Personas


ADD Fecha_nacimiento

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í:

h   
    

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

Cambio de datos Ejemplo Tipo


Ahora queremos cambiar el tipo de datos de la columna denominada "Fecha Nacimiento" en las de tabla
"Personas"
Nosotros usamos la siguiente instrucción SQL:

ALTER TABLE Personas


ALTER COLUMN Fecha_NacimientoAño

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

(Date Of Birth date)= Fecha de Nacimiento

Base de datos SQL=Fecha_Nacimiento

(Date Of Birth year)= Fecha de Nacimiento años

Base de datos SQL=Fecha_nacimientoAño= FechaNacimiento

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:

ALTER TABLE Personas


DROP COLUMN FechaNacimiento

La tabla "Personas" queda ahora así:

h   
    

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

«Anterior
Siguiente capítulo

AUTO SQL incremento del campo


«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:

ALTER TABLE Personas AUTO_INCREMENT=100

Para insertar un nuevo registro en la "Personas" de


mesa, que notendrá que especificar un valor para el "p_id" columna (un valor único se añadirá de forma
automática):

INSERT INTO Personas (Nombre,Apellido)


VALUES ('José','Montes')

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:

CREATE TABLE Personas


(
P_Id int PRIMARY KEY IDENTITY,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255)
)

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):

INSERT INTO Personas (Nombre,Apellido)


VALUES ('José','Montes')

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.

Sintaxis para el acceso


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 de la tabla "Personas´:

CREATE TABLE Personas


(
P_Id PRIMARY KEY AUTOINCREMENT,
Apellido varchar(255) NOT NULL,
Nombre varchar(255),
Dirección varchar(255),
Ciudad varchar(255)
)

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):

INSERT INTO Personas (Nombre,Apellido)


VALUES ('José','Montes')

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:

CREATE SEQUENCE seq_persona


MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

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):

INSERT INTO Personas (P_Id, Nombre,Apellido)


VALUES (seq_persona.nextval,'José','Montes')

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

CREATE VIEW vista_nombre AS


SELECT columna_nombre(s)
FROM tabla_nombre
WHERE condición

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.

SQL CREATE Ejemplos VISTA


Si usted tiene la base de datos Northwind se puede ver que tiene varios puntos de vista instalado de forma
predeterminada.
La vista "Lista de productos actuales" listas de todos los
productos activos (productos que no están descatalogados) de los "productos" de
mesa. La vista se crea con el siguiente SQL:

CREATE VIEW [Lista de productos actual] AS


SELECT ProductoID,ProductoNombre
FROM Productos
WHERE Suspendido=No

Podemos consultar la vista por encima de la siguiente manera:

SELECT * FROM [Lista de productos actual]

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:

CREATE VIEW [Productos por encima del precio promedio] AS


SELECT ProductoNombre, PrecioUnitario
FROM Productos
WHERE PrecioUnitario >(SELECT AVG(PrecioUnitario) FROM Productos)

Podemos consultar la vista por encima de la siguiente manera:

SELECT * FROM [Productos por encima del precio promedio]

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":

CREATE VIEW [Categoría Ventas Para el año 199Y] AS


SELECT DISTINCT NombreCategoría,Sum(VentasProductos) AS CategoríaVentas
FROM [Las ventas de productos para 199Y]
GROUP BY NombreCategoría

Podemos consultar la vista por encima de la siguiente manera:

SELECT * FROM [Categoría Ventas 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":

SELECT * FROM [Categoría Ventas Para el año 199Y]


WHERE NombreCategoría='Bebidas'

81
Actualizar una vista de SQL
Puede actualizar una vista utilizando la siguiente sintaxis:

4,5.5Y,,5h5F5;16

CREATE OR REPLACE VIEW vista_nombre AS


SELECT columna_nombre(s)
FROM tabla_nombre
WHERE condición

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:

CREATE VIEW [Lista de productos actual] AS


SELECT ProductoID,ProductoNombre, Categoría
FROM Productos
WHERE Suspendido=No

SQL soltar una vista


Puede eliminar una vista con el comando DROP VIEW.

4,YhF5;16

DROP VIEW vista_nombre

«Anterior
»Siguiente capítulo

SQL Funciones de fecha


«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:

<  

NOW() Devuelve la fecha y hora actuales

CURDATE() Devuelve la fecha actual

CURTIME() Devuelve la hora actual

DATE() Extractos de la fecha de parte de una fecha o fecha y la expresión de tiempo

EXTRACT() Devuelve una sola parte de una fecha / hora

DATE_ADD() Agrega un intervalo de tiempo especificado a una fecha

DATE_SUB() Resta un intervalo de tiempo especificado de una fecha

DATEDIFF() Devuelve el número de días entre dos fechas

DATE_FORMAT() Muestra datos de fecha / hora en formatos diferentes

Funciones SQL Server Fecha


En la tabla siguiente se muestran las más importantes funciones integradas de fecha en SQL Server:

<  

GETDATE() Devuelve la fecha y hora actuales

DATEPART() Devuelve una sola parte de una fecha / hora

DATEADD() Añade o resta un intervalo de tiempo especificado de una fecha


DATEDIFF() Devuelve el tiempo transcurrido entre dos fechas

CONVERT() Muestra datos de fecha / hora en formatos diferentes

Tipos de datos SQL Fecha


MySQL viene con los siguientes tipos de datos para almacenar una fecha o un valor de fecha
y hora en la base de datos:
‡ FECHA - formato AAAA-MM-DD
‡ DATETIME - formato: AAAA-MM-DD HH: MM: SS
‡ TIMESTAMP - formato: AAAA-MM-DD HH: MM: SS
‡ AÑO - AAAA o AA
SQL Server incluye las siguientes tipos de datos para almacenar una fecha o un valor de fecha
y hora en la base de datos:
‡ FECHA - formato AAAA-MM-DD
‡ DATETIME - formato: AAAA-MM-DD HH: MM: SS
‡ SMALLDATETIME - formato: AAAA-MM-DD HH: MM: SS
‡ TIMESTAMP - formato: un número único
Nota: Los tipos de fecha son elegidos para una columna cuando se crea una nueva tabla en la base de datos!
Para una visión general de todos los tipos de datos disponibles, vaya a nuestra completa referencia de tipos
de datos.
________________________________________
SQL Trabajar con Fechas
Puede comparar dos fechas con facilidad si no hay un componente tiempo necesario!
Supongamos que tenemos la siguiente tabla "orden":

Y  h 
 Y <3

1 Geitost 2008-11-11

2 Camembert Pierrot 2008-11-09

È Mozzarella di Giovanni 2008-11-11

4 Mascarpone Fabiola 2008-10-29

84
Ahora queremos seleccionar los registros con un OrdenFecha de"11/11/2008" en el cuadro anterior.
Nosotros usamos la siguiente instrucción SELECT:

SELECT * FROM Orden WHERE OrdenFecha ='2008-11-11'

The result-set will look like this:

Y  h 
 Y <3

1 Geitost 2008-11-11

È Mozzarella di Giovanni 2008-11-11

Ahora, supongamos que la tabla "orden" se parece a esto (observe el componente de


hora en el "OrdenFecha" columna):

Y  h 
 Y <3

1 Geitost 2008-11-11 1È:2È:44

2 Camembert Pierrot 2008-11-09 15:45:21

È Mozzarella di Giovanni 2008-11-11 11:12:01

4 Mascarpone Fabiola 2008-10-29 14:56:59

Si utilizamos la misma declaración SELECT como anteriormente:

SELECT * FROM Orden WHERE OrdenFecha='2008-11-11'

¡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á

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT Apellido,Nombre, Dirección FROM Personas


WHERE Dirección IS NULL

El conjunto de resultados se verá así:

 
  

Salazar Longas Gustavo

Santacoloma Kelly Yaneth

 9 > Siempre utilice IS NULL para buscar valores NULL.

SQL no es NULL
¿Cómo seleccionar sólo los registros sin valores NULL en la columna "Dirección"?

Tendremos que usar el operador NO ES NULL:

SELECT Apellido,Nombre, Dirección FROM Personas


WHERE Dirección IS NOT NULL

El conjunto de resultados se verá así:

 
  

Muñoz Ramón Alfonso Transversal È0 # 101-46

En el próximo capítulo veremos el ISNULL (), NVL (), IFNULL () y COALESCE () funciones.

«Anterior

»Siguiente capítulo

Funciones SQL NULL

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

Supongamos que el "UnidadesEnPedido" columna es opcional y puede contener valores NULL.


Contamos con la siguiente instrucción SELECT:

SELECT ProductoNombre, PrecioUnitario*( UnidadesEnexistencias + UnidadesEnPedido)


FROM Productos

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  ?*

SELECT ProductoNombre, PrecioUnitario*( UnidadesEnexistencias+ISNULL(UnidadesEnPedido,0))


FROM Productos

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

O podemos utilizar el COALESCE () función, de esta manera:

SELECT ProductoNombre,PrecioUnitario*(UniadeaEnExistencias+COALESCE(UnidadesEnPedido,0))
FROM Productos

«Anterior

Siguiente capítulo

Tipos de datos SQL


«Anterior
»Siguiente capítulo

________________________________________
Tipos de datos y gamas de Microsoft Access, MySQL y SQL Server.
________________________________________
Microsoft Tipos de datos de Access

.        

Text Se utiliza para texto o combinaciones de texto y números. 255

89
caracteres como máximo

Memo Memo se utiliza para grandes cantidades de texto. Almacena


hasta 65.5È6 caracteres. Nota: No puede ordenar un campo memo. Sin
embargo, se pueden buscar

Byte Permite números enteros desde 0 hasta 255 1 byte

Integer Permite números enteros entre -È2.Y68 yÈ2.Y6Y 2 bytes

Long Permite números enteros entre -214Y48È648 y 214Y48È64Y 4 bytes

Single Precisión individual de punto flotante. Se encargará de la mayoría 4 bytes


de decimales

Double Doble precisión de punto flotante. Se encargará de la mayoría de 8 bytes


decimales

Currency El uso de la moneda. Almacena hasta 15 dígitos de dólares 8 bytes


completos, además de cuatro posiciones decimales.
Sugerencia: Usted puede elegir la moneda que los países de utilizar

AutoNumber Campos Auto numérico concede automáticamente cada registro 4 bytes


de su propio número, por lo general a partir de una

Date/Time Se utiliza para fechas y horarios 8 bytes

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)

Hyperlink Contiene enlaces a otros archivos, incluyendo las páginas web

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:

.   


 

CHAR(size) Contiene una cadena de longitud fija (puede contener letras,


números y caracteres especiales). El tamaño fijo se especificaentre
paréntesis. Puede almacenar hasta 255 caracteres

VARCHAR(siz Contiene una cadena de


e) longitud variable (puede contenerletras, números y caracteres especiales). El
tamaño máximo se especifica entre
paréntesis. Puede almacenar hasta 255caracteres. Nota: Si usted pone un valor superior a 25
5 que se convertirá en un tipo 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

MEDIUMTEXT Contiene una cadena con una longitud máxima de 16.YYY.215caracteres

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
.    

TINYINT(size) -128-12Y normal. 0-255 UNSIGNED *. El número máximo de dígitos que se


indique entre paréntesis

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

MEDIUMINT(size) -8È88608 A 8È8860Y normal. 0-16YYY215 UNSIGNED *. El


número máximo de dígitos que se indique entre paréntesis

INT(size) -214Y48È648 A 214Y48È64Y normal. 0 a 429496Y295UNSIGNED *. El


número máximo de dígitos que se indique entre paréntesis

BIGINT(size) -922ÈÈY20È6854YY5808-922ÈÈY20È6854YY580Y normal. 0-


18446Y440YÈY09551615 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.

.  >

.    

DATE() Una fecha. Formato: AAAA-MM-DD


Nota: El rango soportado es de '1000-01-01 'a '9999-12-È1 '

DATETIME() * Una combinación de fecha y hora. HH AAAA-MM-DD:: Formato MM: SS


Nota: El rango soportado es de '1000-01-01 00:00:00 'a'9999-12 a È1 2È:59:59'

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

TIME() Un tiempo. Formato: HH: MM: SS


Nota: El intervalo admitido es de '-8È8:59:59' a '8È8: 59:59 '

YEAR() Un año en formato de dos o cuatro dígitos.


Nota: Los valores permitidos en formato de cuatro dígitos: 1901a 2155. Los
valores permitidos en formato de dos dígitos: Y0 a 69, que representan años 19Y0 a
2069.

* 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.

Tipos de datos SQL Servidor


Las cadenas de caracteres:
.      

char(n) De longitud fija cadena de caracteres. Máxima de 8.000caracteres n

varchar(n) De longitud variable de cadena de caracteres. Máxima de 8.000caracteres

varchar(max) De longitud variable de cadena de caracteres. Máxima


de1,0YÈ,Y41,824 caracteres

text De longitud variable de cadena de caracteres. Máxima de 2 GB de datos de


texto

7 >

.        

nchar(n) De longitud fija de datos Unicode. Máxima de 4.000 caracteres

nvarchar(n) Datos de longitud variable Unicode. Máxima de 4.000 caracteres

nvarchar(max) Datos de longitud variable Unicode. Máximo 5È6 8Y0 912 caracteres


ntext Datos de longitud variable Unicode. Máxima de 2 GB de datos de texto

! 11>

.        

bit Permite 0, 1, o NULL

binary(n) De longitud fija de datos binarios. Máxima de 8.000 bytes

varbinary(n) Datos de longitud variable binaria. Máxima de 8.000 bytes

varbinary(max) Datos de longitud variable binaria. Máxima de 2 GB

image Datos de longitud variable binaria. Máxima de 2 GB

  1>

.      


   

tinyint Permite números enteros desde 0 hasta 255 1 byte

smallint Permite números enteros entre -È2.Y68 y È2.Y6Y 2 bytes

int Permite números enteros entre -214Y48È648 y 214Y48È64Y 4 bytes

bigint Permite números enteros entre - 8 bytes


9.22È.ÈY2.0È6.854.YY5.808 y9.22È.ÈY2.0È6.854.YY5.80Y

decimal(p, Precisión fija y números de la escala. 5-1Y bytes


s) Permite un número entre -10 ^ È8 +1 a 10 ^ È8 -1.
El parámetro p indica el número máximo total de dígitos que se
pueden almacenar (tanto a la izquierda ya la derecha del puntodecimal). p debe
ser un valor entre 1 y È8. El valor predeterminado es 18.
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

numeric(p, Precisión fija y números de la escala. 5-1Y bytes


s) Permite un número entre -10 ^ È8 +1 a 10 ^ È8 -1.
El parámetro p indica el número máximo total de dígitos que se
pueden almacenar (tanto a la izquierda ya la derecha del puntodecimal). p debe
ser un valor entre 1 y È8. El valor predeterminado es 18.

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

smallmone Monetario datos de -214.Y48,È648 de 214,Y48.È64Y 4 bytes


y

money Monetario datos de -922.ÈÈY.20È.685.4YY,5808 a922.ÈÈY.20È.685.4YY,580Y 8 bytes

float(n) Flotante de precisión el número de + 1,Y9 E-È08 a 1,Y9 E +È08. 4 or 8 bytes


El parámetro n indica si el campo debe tener 4 o 8 bytes.flotador (24) tiene un ca
mpo de 4 bytes y el flotador (5È) tiene un campo de 8 bytes. El valor por
defecto de n es 5È.

real Flotante de precisión el número de -È,40 E +È8 a È,40 E + È8 4 bytes

1>

.        

datetime Del 1 de enero de 1Y5È al È1 de diciembre de 9999 con una 8 bytes


precisión de È,ÈÈ milisegundos

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

Date Almacenar una única fecha. Del 1 de enero de 0001 al È1 de È bytes


diciembre de 9999

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

Y .  >

.    

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)

xml Tiendas de formato XML de datos. Máxima de 2 GB

cursor Almacena una referencia a un cursor utilizado para las operaciones de base de datos

table Almacena un conjunto de resultados para su posterior procesamiento

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

SELECT AVG(columna_nombre) FROM tabla_nombre

AVG SQL () Ejemplo


Tenemos las siguientes "órdenes" de Tabla:
Y  <3h  Y h   

1 2008/11/12 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Salazar Longas

4 2008/09/0È È00 Salazar Longas

5 2008/08/È0 2000 Jensen

9Y
6 2008/10/04 100 Nilsen

Ahora queremos encontrar el valor medio de la "ordenPrecio" campos.

Nosotros usamos la siguiente instrucción SQL:

SELECT AVG(ordenPrecio) AS OrdenPromedio

FROM Orden

El conjunto de resultados se verá así:

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:

SELECT Customer FROM Orden


WHERE OrdenPrecios >(SELECT AVG(OrdenPrecios) FROM Orden)

El conjunto de resultados se verá así:



Salazar Longas

Nilsen

Jensen

98
«Anterior
»Siguiente capítulo

CUENTA SQL () Función


«Anterior
»Siguiente capítulo

________________________________________
La función COUNT () devuelve el número de filas que coincide con el criterio especificado.

4Y7
.G    H16

El COUNT (columna_nombre) devuelve el número de valores (valores NULL no se cuentan) de la columna


especificada:

SELECT COUNT(columna_nombre) FROM tabla_nombre

4Y7
.GIH16

El COUNT (*) devuelve el número de registros en una tabla:

SELECT COUNT(*) FROM tabla_nombre

4Y7
.G.
.    H16

L a COUNT (DISTINCT columna_nombre) devuelve el número de valores distintos de la columna


especificada:

SELECT COUNT(DISTINCT columna_nombre) FROM tabla_nombre

Nota: COUNT (DISTINCT) trabaja con Oracle y Microsoft SQL Server, pero no con Microsoft Access

99
SQL COUNT (columna_nombre) Ejemplo

Tenemos los siguientes "órdenes" de tabla:

Y  <3h  Y h   

1 2008/11/È0 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Hansen

4 2008/09/0È È00 Hansen

5 2008/08/È0 2000 Jensen

6 2008/10/04 100 Nilsen

Ahora queremos contar el número de órdenes de "Cliente Nilsen".

SELECT COUNT(Cliente) AS ClienteNilsen FROM Orden


WHERE Cliente='Nilsen'

El resultado de la instrucción SQL anterior será de 2, porque el cliente Nilsen ha hecho 2 pedidos en total:




SQL COUNT (*) Ejemplo

Si se omite la cláusula WHERE, de esta manera:

100
SELECT COUNT(*) AS NúmeroDeOrden FROM Orden

El conjunto de resultados se verá así:

8  Y 

Que es el número total de filas en la tabla.

SQL COUNT (DISTINCT columna_nombre) Ejemplo

Ahora queremos contar el número de clientes único en la tabla "orden".


Nosotros usamos la siguiente instrucción SQL:

SELECT COUNT(DISTINCT Cliente) AS NúmeroDeClientes FROM Orden

El conjunto de resultados se verá así:

8  

Que es el número de clientes únicos (Hansen, Nilsen, y Jensen) en la tabla "orden".

«Anterior
»Siguiente capítulo

SQL PRIMERA () Función


«Anterior

101
»Siguiente capítulo

________________________________________
La primera función ()
La primera () devuelve el primer valor de la columna seleccionada.

4<,.GH16

SELECT FIRST(columna_nombre) FROM tabla_nombre

SQL FIRST () Ejemplo

Tenemos los siguientes "órdenes" de la tabla:

Y  <3h  Y h   

1 2008/11/12 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Salazar Longas

4 2008/09/0È È00 Salazar Longas

5 2008/08/È0 2000 Jensen

6 2008/10/04 100 Nilsen

Ahora queremos encontrar el primer valor de la ³OrdenPrecio " columna.

Nosotros usamos la siguiente instrucción SQL:

SELECT FIRST(OrdenPrecio) AS PrimerOrdenPrecio FROM Orden

Sugerencia: Solución si PRIMERA () no es compatible con:

102
SELECT OrdenPrecio FROM Orden ORDER BY O_Id LIMIT 1

El conjunto de resultados se verá así:

h   Y h  

1000

4.GH<

La LAST () Función

El LAST () devuelve el último valor de la columna seleccionada.

4.GH16

SELECT LAST(columna_nombre) FROM tabla_nombre

SQL LAST () Example

Tenemos los siguientes "órdenes" de la Tabla:

Y  <3h  Y h   

1 2008/11/12 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Salazar Longas

4 2008/09/0È È00 Salazar Longas

10È
5 2008/08/È0 2000 Jensen

6 2008/10/04 100 Nilsen

Ahora queremos encontrar el valor último de los "OrdenPrecio"


Columna.
Nosotros usamos la siguiente instrucción SQL:

SELECT LAST(FechaPedido) AS PrimerOrdenPrecio FROM Orden

Sugerencia: Solución si ÚLTIMO () no es compatible con:

SELECT FechaPedido FROM Orden ORDER BY O_Id DESC LIMIT 1

El conjunto de resultados se verá así:

h   Y h  

100

4*@GH<

La MAX () Función

El MAX () devuelve el valor más grande de la columna seleccionada.

4*@GH16

SELECT MAX (columna_nambre) FROM tabla_nombre

SQL MAX () Ejemplo

104
Tenemos los siguientes "órdenes" de la tabla:

Y  <3h  Y h   

1 2008/11/12 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Salazar Longas

4 2008/09/0È È00 Salazar Longas

5 2008/08/È0 2000 Jensen

6 2008/10/04 100 Nilsen

Ahora queremos encontrar el valor más grande de la "OrdenPrecio " de la columna.


Nosotros usamos la siguiente instrucción SQL:

SELECT MAX(OrdenPrecio) AS MayorPrecioOrden FROM Orders

El conjunto de resultados se verá así:

*1 h  Y 

2000

4*
GH<

El MIN () Función
El MIN () devuelve el menor valor de la columna seleccionada.

105
4*
GH16

SELECT MIN(columna_nombre) FROM tabla_nombre

SQL MIN () Ejemplo

Tenemos los siguientes "órdenes" de mesa:

Y  <3h  Y h   

1 2008/11/12 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Salazar Longas

4 2008/09/0È È00 Salazar Longas

5 2008/08/È0 2000 Jensen

6 2008/10/04 100 Nilsen

Ahora queremos encontrar el valor más pequeño de la "Orden Precio" de la columna.


Nosotros usamos la siguiente instrucción SQL:

SELECT MIN(OrdenPrecio) AS MenorPrecioOrden FROM Orden

El conjunto de resultados se verá así:

* h  Y 

100

106
47*GH<

La función SUMA ()
El SUM () devuelve la suma total de una columna numérica.

47*GH16

SELECT SUM(columna_nombre) FROM tabla_nombre

SQL SUM () Ejemplo

Tenemos los siguientes "órdenes" de mesa:

Y  <3h  Y h   

1 2008/11/12 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Salazar Longas

4 2008/09/0È È00 Salazar Longas

5 2008/08/È0 2000 Jensen

6 2008/10/04 100 Nilsen

Ahora queremos encontrar la suma de todos "de precios para los "campos ".
Nosotros usamos la siguiente instrucción SQL:

SELECT SUM(FechaPedido) AS OrdenTotal FROM Orden

El conjunto de resultados se verá así:

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

SELECT columna_nombre, función_agregada (columna_nombre)


FROM tabla_nombre
WHERE columna_nombre valor operador
GROUP BY columna_nombre

SQL GROUP BY Ejemplo


Tenemos los siguientes "órdenes" de la Tabla:

Y  <3h  Y h   

1 2008/11/12 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Salazar Longas

108
4 2008/09/0È È00 Salazar Longas

5 2008/08/È0 2000 Jensen

6 2008/10/04 100 Nilsen

Ahora queremos encontrar la suma total (total de la orden) de cada cliente.


Tendremos que utilizar la instrucción GROUP BY para agrupar los clientes.
Nosotros usamos la siguiente instrucción SQL:

SELECT Cliente, SUM (OrdenPrecio) FROM Orden


GROUP BY Cliente

‘
El conjunto de resultados se verá así:
‘
 7*GY h  H

Salazar Longas 2000

Nilsen 1Y00

Jensen 2000

Guay! ¿No es? :)


Vamos a ver qué pasa si omite la sentencia GROUP BY:

SELECT Cliente, SUM(OrdenPrecio) FROM Orden

The result-set will look like this:

 7*GY h  H

Salazar Longas 5Y00

Nilsen 5Y00

109
Salazar Longas 5Y00

Salazar Longas 5Y00

Jensen 5Y00

Nilsen 5Y00

El conjunto de resultados anterior no es lo que queríamos.


Explicación de por qué la instrucción SELECT anterior no se puede utilizar:. La instrucción SELECT anterior
tiene dos columnas especificadas (cliente y SUM (OrdenPrecio) El "SUM (OrdenPrecio)" devuelve un solo
valor (que es la suma total de
el "OrdenPrecio" columna), mientras que el "Cliente" devuelve 6 valores (un valor para cada fila de la "Orden"
de mesa). Esto por lo tanto no nos da el resultado correcto. Sin embargo, ustedes han visto que la instrucción
GROUP BY resuelve este problema.
________________________________________
GROUP BY más de una columna
También puede utilizar la instrucción GROUP BY en más de una columna, así:

SELECT Cliente, FechaPedido, SUM(OrdenPrecio) FROM Orden


GROUP BY Cliente, FechaPedido

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

SELECT columna_nombre, función_agregada (columna_nombre)


FROM tabla_nombre
WHERE columna_nombre valor operador
GROUP BY columna_nombre
HAVING función_agregada (columna_nombre) valor operador

110
SQL HAVING Ejemplo

Tenemos los siguientes "órdenes" de tabla:

Y  <3h  Y h   

1 2008/11/12 1000 Salazar Longas

2 2008/10/2È 1600 Nilsen

È 2008/09/02 Y00 Salazar Longas

4 2008/09/0È È00 Salazar Longas

5 2008/08/È0 2000 Jensen

6 2008/10/04 100 Nilsen

Ahora queremos saber si alguno de los clientes tienen un orden total de menos de 2000.
Nosotros usamos la siguiente instrucción SQL:

SELECT Cliente, SUM(OrdenPrecio) FROM Orden


GROUP BY Cliente
HAVING SUM(OrdenPrecio)<2000

El conjunto de resultados se verá así:

 7*GY h  H

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:

SELECT Cliente, SUM(OrdenPrecio) FROM Orden


WHERE Cliente='Salazar Longas' OR Cliente='Jensen'
GROUP BY Cliente
HAVING SUM(OrdenPrecio)>1500

El conjunto de resultados se verá así:

 7*GY h  H

Salazar Longas 2000

Jensen 2000

475GH<

El UCASE () Función
El UCASE () convierte el valor de un campo a mayúsculas.

475GH16

SELECT UCASE(columna_nombre) FROM tabla_nombre

16- 4  

SELECT UPPER(columna_nombre) FROM tabla_nombre

112
SQL UCASE () Ejemplo

Tenemos los siguientes "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT UCASE(Apellido) as Apellido, Nombre FROM Personas

El conjunto de resultados se verá así:

 


Salazar Longas Gustavo

Muñoz Ramón Alfonso

Santacoloma Kelly Yaneth

45GH<

El LCASE () Función
El LCASE () convierte el valor de un campo a minúsculas

11È
45GH16

SELECT LCASE(columna_nombre) FROM tabla_nombre

16- 4  

SELECT LOWER(columna_nombre) FROM tabla_nombre

SQL LCASE () Ejemplo

Tenemos los siguientes "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 102-46 Bogota

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 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:

SELECT LCASE(Apellido) as Nombre, Nombre FROM Personas

El conjunto de resultados se verá así:

 


Salazar Longas Gustavo

Muñoz Ramón Alfonso

114
Santacoloma Kelly Yaneth

4*GH<

La MID () Función

El MID () se utiliza para extraer los caracteres de un campo de texto.

4*GH16

SELECT MID(columna_nombre, inicio [,length]) FROM tabla_nombre

h )    

columna_nombre Requerido. El campo para extraer los caracteres de

start Requerido. Especifica la posición inicial (empieza en 1)

length Facultativo. El número de caracteres a devolver. Si se omite, el


MID () devuelve el resto del texto

SQL MID () Ejemplo

Tenemos los siguientes "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 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:

SELECT MID(Ciudad,1,4) as PequeñaCiudad FROM Personas

El conjunto de resultados se verá así:

hE+

Bogo

Bogo

Bogo

45
GH<

La Función LEN ()

La LEN () devuelve la longitud del valor en un campo de texto.

45
GH16

SELECT LEN(columna_nombre) FROM tabla_nombre

SQL LEN () Ejemplo

116
Tenemos los siguientes "Personas" tabla:

h   
   

1 Salazar Longas Gustavo Diag. 89B # 115ª-0È Int 4 Apt È02 Bogotá

2 Muñoz Ramón Alfonso Transversal È0 # 101-46 Bogotá

È Santacoloma Kelly Yaneth Calle 85 # 18-È6 Bogotá

Ahora queremos seleccionar la longitud de los valores en la columna "Dirección" de arriba.


Nosotros usamos la siguiente instrucción SELECT:

SELECT LEN(Dirección) as LengthOfAddress FROM Personas

LengthOfAddress =Longitud de la Dirección

El conjunto de resultados se verá así:

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

SELECT ROUND(columna_nombre,decimal) FROM tabla_nombre

h )    

columna_nombre Requerido. El campo de todo el año

decimales Requerido. Especifica el número de decimales a ser devuelto.

SQL ROUND () Ejemplo

Tenemos los siguientes "Productos" de tabla:

h   h 
 7 h  7  

1 Jarlsberg 1000 g 10.45

2 Mascarpone 1000 g È2.56

È Gorgonzola 1000 g 15.6Y

‘
Ahora queremos mostrar el nombre del producto y el precio redondeado al entero más cercano.
Nosotros usamos la siguiente instrucción SELECT:

SELECT ProductoNombre, ROUND(PrecioUnitario,0) as PrecioUnitario FROM Productos

El conjunto de resultados se verá así:

h 
 h  7  

Jarlsberg 10

118
Mascarpone ÈÈ

Gorgonzola 16

4
Y;GH<

La Función NOW ()

El NOW () devuelve la fecha actual del sistema y el tiempo.

4
Y;GH16

SELECT NOW() FROM tabla_nombre

SQL NOW () Ejemplo

Tenemos los siguientes "Productos" de tabla:

h   h 
 7 h  7  

1 Jarlsberg 1000 g 10.45

2 Mascarpone 1000 g È2.56

È Gorgonzola 1000 g 15.6Y

‘
Ahora queremos mostrar los productos y precios por día de hoy.
Nosotros usamos la siguiente instrucción SELECT:

SELECT ProductoNombre, PrecioUnitario, Hoy() as PorFecha FROM Productos

El conjunto de resultados se verá así:

119
h 
 h  7   h <3

Jarlsberg 10.45 10/Y/2008 11:25:02 AM

Mascarpone È2.56 10/Y/2008 11:25:02 AM

Gorgonzola 15.6Y 10/Y/2008 11:25:02 AM

4<Y,*.GH<

La Función FORMAT ()

El formato () se utiliza para dar formato a un campo cómo se va a mostrar.

4<Y,*.GH16

SELECT FORMAT(columna_nombre,formato) FROM tabla_nombre

h )    

columna_nombre Requerido. El campo para dar formato.

formato Requerido. Especifica el formato.

SQL FORMAT () Ejemplo

Tenemos los siguientes "Productos" de tabla:

h   h 
 7 h  7  

1 Jarlsberg 1000 g 10.45

120
2 Mascarpone 1000 g È2.56

È Gorgonzola 1000 g 15.6Y

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:

SELECT ProductoNombre, PrecioUnitario, FORMAT(Hoy (),'YYYY-MM-DD') as PorFecha


FROM Productos

El conjunto de resultados se verá así:

h 
 h  7   h <3

Jarlsberg 10.45 2008-10-0Y

Mascarpone È2.56 2008-10-0Y

Gorgonzola 15.6Y 2008-10-0Y

SQL de referencia rápida de WÈSchools

4  16

AND / OR SELECT columna_nombre(s)


FROM tabla_nombre
WHERE condición
AND|OR condición

121
ALTER TABLE ALTER TABLE tabla_nombre
ADD columna_nombre TipoDeDato

ALTER TABLE tabla_nombre


DROP COLUMN columna_nombre

AS (alias) SELECT columna_nombre AS columna_alias


FROM tabla_nombre

SELECT columna_nombre
FROM tabla_nombre AS tabla_alias

BETWEEN SELECT columna_nombre(s)


FROM tabla_nombre
WHERE columna_nombre
BETWEEN valor1 Y valor2

CREATE DATABASE CREATE DATABASE BaseDeDatos_nombre

CREATE TABLE CREATE TABLE tabla_nombre


(
columna_nombre1 tipo_datos,
column_name2 tipo_datos,
column_name2 tipo_datos,
...
)

CREATE INDEX CREATE INDEX indice_nombre


ON tabla_nombre (columna_nombre)

CREATE UNIQUE INDEX index_name


ON tabla_nombre (columna_nombre)

CREATE VIEW CREATE VIEW vista_nombre AS


SELECT columna_nombre(s)
FROM tabla_nombre

122
WHERE condición

DELETE DELETE FROM tabla_nombre


WHERE alguna_columna=algún_valor

DELETE FROM tabla_nombre


(
: ¡Borra toda la tabla!)

DELETE * FROM tabla_nombre


(
: ¡Borra toda la tabla!)

DROP DATABASE DROP DATABASE BaseDatos_nombre

DROP INDEX DROP INDEX tabla_nombre.índice_nombre (SQL Server)


DROP INDEX índice_nombre ON tabla_nombre (MS Access)
DROP INDEX índice_nombre (DB2/Oracle)
ALTER TABLE tabla_nombre
DROP INDEX índice_nombre (MySQL)

DROP TABLE DROP TABLE tabla_nombre

GROUP BY SELECT columna_nombre, agregar_función(columna_nombre)


FROM tabla_nombre
WHERE columna_nombre valor operador
GROUP BY columna_nombre

HAVING SELECT columna_nombre, agregar_función(columna_nombre)


FROM tabla_nombre
WHERE columna_nombre valor operador
GROUP BY columna_nombre
HAVING agregar_función(columna_nombre) valor operador

IN SELECT columna_nombre(s)
FROM tabla_nombre
WHERE columna_nombre
IN (valor1, valor2, )

INSERT INTO INSERT INTO tabla_nombre


VALUES (valor1, valor2, valorÈ,...)

12È

INSERT INTO tabla_nombre


(column1, columna2, columnaÈ,...)
VALUES (valor1, valor2, valorÈ,...)

INNER JOIN SELECT columna_nombre(s)


FROM tabla_nombre1
INNER JOIN tabla_nombre 2
ON table_nombre1.columna_nombre=tabla_ nombre2.columna_ nombre

LEFT JOIN SELECT columna_nombre(s)


FROM tabla_nombre
LEFT JOIN tabla_nombre2
ON table_ nombre 1.columna_nombre=table_nombre2.columna_nombre

RIGHT JOIN SELECT columna_nombre(s)


FROM table_name1
RIGHT JOIN tabla_nombre2
ON table_nombre1.columna_nombre=tabla_nombre 2.columna_nombre

FULL JOIN SELECT columna_nombre(s)


FROM tabla_nombre1
FULL JOIN tabla_nombre2
ON table_nombre1.columna_nombre=tabla_nombre2.columna_nombre

LIKE SELECT columna_nombre(s)


FROM tabla_nombre
WHERE columna_nombre LIKE pattern

ORDER BY SELECT columna_nombre(s)


FROM tabla_nombre
ORDER BY columna_nombre [ASC|DESC]

SELECT SELECT columna_nombre(s)


FROM tabla_nombre

SELECT * SELECT *
FROM tabla_nombre

SELECT DISTINCT SELECT DISTINCT columna_nombre(s)


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

SELECT TOP SELECT TOP NúmeroPorCiento columna_nambre(s)


FROM tabla_nombre

TRUNCATE TABLE TRUNCATE TABLE tabla_nombre

UNION SELECT columna_nombre(s) FROM tabla_nombre1


UNION
SELECT columna_nombre(s) FROM tabla_nombre2

UNION ALL SELECT columna_nombre(s) FROM tabla_nombre1


UNION ALL
SELECT columna_nombre(s) FROM tabla_nombre2

UPDATE UPDATE tabla_nombre


SET column1=valor, columna2=valor,...
WHERE alguna_columna=algún_valor

WHERE SELECT columna_nombre(s)


FROM tabla_nombre
WHERE columna_nombre valor operador

  >

3>??JJJJ&3  ?E?E EK -

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.

Usted ha aprendido de SQL, ¿y ahora qué?


________________________________________
SQL Resumen
Este tutorial de SQL ha enseñado el lenguaje de programación estándar para acceder y manipular los
sistemas de base de datos.
Usted ha aprendido la forma de ejecutar las consultas, recuperar datos, insertar nuevos registros, eliminar
registros y actualizar los registros en una base de datos con SQL.
Usted también ha aprendido a crear bases de datos, tablas e índices con SQL, y la forma de gota.
Usted ha aprendido las funciones de agregado más importante en SQL.
Ahora sé que SQL es el lenguaje estándar que funciona con todos los sistemas de base de datos conocida
como MS SQL Server, IBM DB2, Oracle, MySQL y MS Access.
________________________________________
Ahora usted sabe SQL, ¿qué sigue?
Nuestra recomendación es aprender acerca de ADO o MySQL PHP.
Si desea obtener más información acerca de ADO, ADO, visite nuestro tutorial.
Si desea obtener más información sobre MySQL, por favor visite nuestro tutorial de PHP.

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

Anda mungkin juga menyukai