|
SQL
SQL es un lenguaje
que nos permite gestionar una base de datos. Cuando estudiamos una
base de datos con una Aplicación (por ejemplo Access), sabemos
que podemos insertar, modificar o borrar campos, registros y datos.
Pero esto lo hacemos con la Interface, es decir, con los iconos
o los menús de la Aplicación.
Pues SQL es hacer
eso mismo pero desde códigos,
que estarán en un programa.
|
Documentos SQL:
1.- En esta dirección puedes encontrar información
en Español sobre SQL
http://www.cybercursos.net/sql/sql0.html
2.- Resumen de los comandos más importantes basados en la
página anterior. Resumensql.doc
(62K)
|
|
Por ejemplo, si tuviera que hacer
una consulta en la tabla Empleados, que me mostrara los empleados
que tienen una edad comprendida entre los 25 y 50 años y
que además tengan un Sueldo mayor de 1200 €, lo haría
mediante el Asistente de Consultas
de la Base de Datos.
En cambio si estuviera
realizando un programa en Visual Basic, VBScript, JavaScript o en
ASP y tuviera que hacer esa consulta en el interior del programa,
tendría que poner una orden como la siguiente:
SELECT * FROM Empleados WHERE (Edad >
25 AND Edad < 50) AND Sueldo > 1200;
Viene a decir: SELECCIONA todos
los campos DE LA tabla Empleados en DONDE el campo Edad esté
comprendido entre 25 Y 50 Y además el campo Sueldo sea MAYOR
de 1200.
¿Y donde se guarda el resultado
de la consulta?.
En una variable, más propiamente
en un recordset.
SET rs = con.Execute(SELECT * FROM Empleados WHERE (Edad > 25 AND
Edad < 50) AND Sueldo > 1200)
Una vez que tengamos el resultado en el recordset (rs), se podrá
tratar, presentar, imprimir, ....
Aquí presento otra orden que trata de INSERTAR datos
en los campos correspondientes:
INSERT INTO alumnos(Nombre, Apellido1, Apellido2, Dirección,
Población, Teléfono, anonacimiento, Curso) VALUES('"&Nombre&"'
'"&Apellido1&"','"&Apellido2&"','"&Direccion&"','"&Poblacion&"'
," &Telefono&","&anonacimiento&",'"&cursomatricula2&"')
Viene a decir: INSERTA EN la tabla alumnos en los campos Nombre,
Apellido1, Apellido2, Dirección, Población, Teléfono,
anonacimiento, Curso los VALORES que tienen las variables Nombre,
Apellido1, Apellido2, Direccion, Poblacion, Telefono, anonacimiento,
cursomatricula.
Cuidado con la comilla simple (') y la comilla doble (").
Y con las dos juntas('")
Estas variables estarán en otra parte del programa y
contendrán datos.
También se pueden borrar, crear y modificar datos, tablas,
campos ....
El Objetivo de estudiar SQL es
para utilizarlos en páginas ASP. De tal manera que podemos
introducir comandos SQL en VBScript de páginas HTM para configurar
sitios ASP. De esta forma podemos gestionar bases de datos mediante
VBScript.
|
|
SQL es algo largo de estudiar, aquí te presentamos los comandos
que vamos a necesitar. Si quieres más detalles consulta la
primera dirección de Documentos SQL.
2. Consultas de Selección
Las consultas de selección se utilizan para indicar al motor de datos que
devuelva información de las bases de datos, esta información es devuelta en
forma de conjunto de registros que se pueden almacenar en un objeto recordset.
Este conjunto de registros es modificable.
2.1 Consultas básicas
La sintaxis básica de una consulta de selección es la siguiente:
SELECT Campos FROM Tabla;
En donde campos es la lista de campos que se deseen recuperar y tabla es el
origen de los mismos, por ejemplo:
SELECT Nombre, Telefono FROM Clientes;
Esta consulta devuelve un recordset con el campo nombre y teléfono de la
tabla clientes.
ALL
Si no se incluye ninguno de los predicados se asume ALL. El Motor de base
de datos selecciona todos los registros que cumplen las condiciones de la
instrucción SQL. No es conveniente abusar de este predicado ya que obligamos al motor de la
base de datos a analizar la estructura de la tabla para averiguar los campos
que contiene, es mucho más rápido indicar el listado de campos deseados.
SELECT ALL FROM Empleados;
SELECT * FROM Empleados;
3. Criterios de Selección
En el capítulo anterior se vio la forma de recuperar los registros de las
tablas,las formas empleadas devolvían todos los registros de la mencionada
tabla. A lo largo de este capítulo se estudiarán las posibilidades de filtrar
los registros con el fin de recuperar solamente aquellos que cumplan una
condiciones preestablecidas.
El último operador denominado Is se emplea para comparar dos variables de
tipo objeto Is . Este operador devuelve verdad si los dos objetos son iguales
SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50;
SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) OR Sueldo = 100;
SELECT * FROM Empleados WHERE NOT Estado = 'Soltero';
SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) OR
(Provincia = 'Madrid' AND Estado = 'Casado');
3.2 Intervalos de Valores
Para indicar que deseamos recuperar los registros según el intervalo
de valores de un campo emplearemos el operador Between cuya sintaxis es:
SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999;
(Devuelve los pedidos realizados en la provincia de Madrid)
3.4 El Operador In
Este operador devuelve aquellos registros cuyo campo indicado coincide
con alguno de los en una lista. Su sintaxis es:
expresión [Not] In(valor1, valor2, . . .)
SELECT * FROM Pedidos WHERE Provincia In ('Madrid', 'Barcelona', 'Sevilla');
3.5 La cláusula WHERE
La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas enla cláusula FROM aparecerán en los resultados de la
instrucción SELECT Después de escribir esta cláusula se deben especificar las condiciones
expuestas en los partados 3.1 y 3.2. Si no se emplea esta cláusula, la
consulta devolverá todas las filas de la tabla. WHERE es opcional, pero
cuando aparece debe ir a continuación de FROM.
SELECT Apellidos, Salario FROM Empleados WHERE Salario > 21000;
SELECT Id_Producto, Existencias FROM Productos WHERE Existencias <= Nu_Pedido;
SELECT * FROM Pedidos WHERE Fecha_Envio = #5/10/94#;
SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos = 'King';
SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos Like 'S*';
SELECT Apellidos, Salario FROM Empleados WHERE Salario Between 200 And 300;
SELECT Apellidos, Salario FROM Empl WHERE Apellidos Between 'Lon' And 'Tol';
SELECT Id_Pedido, Fecha_Pedido FROM Pedidos WHERE Fecha_Pedido Between #1-1-94# And #30-6-94#;
SELECT Apellidos, Nombre, Ciudad FROM Empleados WHERE Ciudad In ('Sevilla', 'Los Angeles', 'Barcelona');
5. Consultas de Acción
Las consultas de acción son aquellas que no devuelven ningún registro, son las encargadas de acciones como añadir, borrar y modificar registros.
5.1 DELETE
Crea una consulta de eliminación que elimina los registros de una o más de las tablas listadas en la cláusula FROM que satisfagan la cláusula WHERE.Esta
consulta elimina los registros completos, no es posible eliminar el
contenido de algún campo en concreto. Su sintaxis es:
DELETE Tabla.* FROM Tabla WHERE criterio
DELETE es especialmente útil cuando se desea eliminar varios registros. En una instrucción DELETE con múltiples tablas, debe incluir el nombre de
tabla (Tabla.*)
Si especifica más de una tabla desde la que eliminar registros, todas deben ser tablas de muchos a uno. Si desea eliminar todos los registros de una tabla, eliminar la propia tabla es más eficiente que ejecutar una consulta de borrado.
Se puede utilizar DELETE para eliminar registros de una única tabla o desde
varios lados de una relación uno a muchos. Las operaciones de eliminación en
cascada en una consulta únicamente eliminan desde varios lados de una relación.
Por ejemplo, en la relación entre las tablas Clientes y Pedidos, la tabla Pedidos es la parte de muchos por lo que las operaciones en cascada solo
afectaran a la tabla Pedidos. Una consulta de borrado elimina los registros completos, no únicamente los
datos en campos específicos. Si desea eliminar valores en un campo especificado,
crear una consulta de actualización que cambie los valores a Null.
Una vez que se han eliminado los registros utilizando una consulta de borrado, no puede deshacer la operación.Si desea saber qué registros se eliminarán,
primero examine los resultados de una consulta de selección que utilice el mismo
criterio y después ejecute la consulta de borrado. Mantenga copias de seguridad
de sus datos en todo momento. Si elimina los registros equivocados podrá
recuperarlos desde las copias de seguridad.
DELETE * FROM Empleados WHERE Cargo = 'Vendedor';
5.2 INSERT INTO
Agrega un registro en una tabla. Se la conoce como una consulta de datos añadidos. Esta consulta puede ser de dos tipo: Insertar un único registro ó Insertar
en una tabla los registros contenidos en otra tabla.
5.2.1 Para insertar un único Registro:
En este caso la sintaxis es la siguiente:
INSERT INTO Tabla (campo1, campo2, .., campoN) VALUES (valor1, valor2,., valorN)
Esta consulta graba en el campo1 el valor1, en el campo2 y valor2 y así sucesivamente. Hay que prestar especial atención a acotar entre comillas simples (') los valores literales (cadenas de caracteres) y las fechas
indicarlas en formato mm-dd-aa y entre caracteres de almohadillas (#).
5.3 UPDATE
Crea una consulta de actualización que cambia los valores de los campos de una tabla especificada basándose en un criterio específico. Su sintaxis es:
UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN
WHERE Criterio;
UPDATE es especialmente útil cuando se desea cambiar un gran número de registros o cuando éstos se encuentran en múltiples tablas. Puede cambiar varios campos a la vez. El ejemplo siguiente incrementa los valores Cantidad pedidos en un 10 por ciento y los valores Transporte en un 3 por ciento para aquellos que se
hayan enviado al Reino Unido.:
UPDATE Pedidos SET Pedido = Pedidos * 1.1, Transporte = Transporte * 1.03
WHERE PaisEnvío = 'ES';
UPDATE no genera ningún resultado. Para saber qué registros se van a cambiar, hay que examinar primero el resultado de una consulta de selección que utilice el mismo criterio y después ejecutar la consulta de actualización.
UPDATE Empleados SET Grado = 5 WHERE Grado = 2;
UPDATE Productos SET Precio = Precio * 1.1 WHERE Proveedor = 8 AND Familia = 3;
Si en una consulta de actualización suprimimos la cláusula WHERE todos los registros de la tabla señalada serán actualizados.
UPDATE Empleados SET Salario = Salario * 1.1
|
Aquí te presento una pagina ASP concretamente 03datos.asp
que contiene códigos de SQL. Se verá su utilidad cuando
se estudie ASP. Pero ya ves como se inserta códigos SQL en
páginas ASP.
<HTML>< <HEAD><TITLE> Conformidad de datos</TITLE></HEAD>
<BODY>
<%
Nombre = Request.Form("nombre")
Apellido1 = Request.Form("apellido1")
Apellido2= Request.Form("apellido2")
Direccion = Request.Form("direccion")
Poblacion= Request.Form("poblacion")
Telefono = Request.Form("telefono")
Anonacimiento= Request.Form("anonacimiento")
CursoMatricula2 = Request.Form("curso")
Set con = Server.CreateObject("ADODB.Connection")
con.Open "03instituto"
sql= "INSERT INTO alumnos(Nombre, Apellido1,
Apellido2, Dirección, Población,Teléfono,anonacimiento,Curso)"
sql = sql & "VALUES('"&Nombre&"' ,'"&Apellido1&"','"&Apellido2&"','"&Direccion&"','"&Poblacion&"'
," &Telefono&","&anonacimiento&",'"&cursomatricula2&"')"
con.Execute(sql)
%>
Su nombre es:<% = Request.Form("nombre") %><BR>
Sus apellidos son: <% = Request.Form("apellido1") %>
<% = Request.Form("apellido2")%> <BR>
Su dirección: <% = Request.Form("direccion") %><BR>
Su ciudad: <% = Request.Form("poblacion") %><BR>
Su teléfono: <% = Request.Form("telefono") %><BR>
Año de nacimiento: <% = Request.Form("anonacimiento") %><BR>
Curso: <% = Request.Form("curso") %><BR><BR>
Sus datos están almacenados en nuestra base de datos.<BR><BR>
<%
If Err = 0 Then Response.Write "Inserción correcta"
Else Response.Write "Error de datos"
End If con.Close Set con=Nothing
%>
<A HREF="03index.htm">index</A> <HR>
</BODY> </HTML>
|
|