Académique Documents
Professionnel Documents
Culture Documents
En un ordenador o servidor hay una base de datos, la manera de interactuar con esa base de datos
se hace por medio de una solicitud SQL. Para ello se necesita un SGDB (Gestor de base de datos)
GRUPOS DE COMANDOS:
DDL: Se usan para crear y modificar la estructura de una base de datos (ejemplo: crear tablas,
modificar estructura de las tablas, eliminar tablas).
- CREATE
- ALTER
- DROP
- TRUNCATE
DML: Se usan para seleccionar registros de una base de datos, para insertar nuevos registros,
actualizar, etc. (Consultas de selección y de acción)
- SELECT
- INSERT
- UPDATE
- DELETE
- GRANT
- REVOKE
- COMMIT
- ROLLBACK
- SAVEPOINT
CLAUSULAS:
INSTRUCCIÓN SQL.
Queremos mostrar todo lo que hay en los registros EMPRESA, DIRECCIÓN, POBLACIÓN desde la
tabla CLIENTES
SELECT EMPRESA, DIRECCIÓN, POBLACIÓN FROM CLIENTES
OPERADORES:
Existen los operadores lógicos y los operadores de comparación.
OPERADORES DE COMPARACIÓN.
OPERADORES LÓGICOS.
ORDEN DE ESCRITURA.
No es normal que se den todas las clausulas en una instrucción SQL, pero en caso que se usen
todas ese sería el orden.
Queremos mostrar todos los artículos que son de deportes y son americanos. En esta ocasión si
usa el operador AND puesto que se está hablando de dos campos diferentes (SECCIÓN Y
PAÍSDEORIGEN).
Haremos una consulta que muestre los PRODUCTOS de ABRIL Y MARZO del año 2000.
SELECT * FROM PRODUCTOS WHERE FECHA BETWEEN ‘2000-03-01’ AND ‘2000-04-30’
SELECT * FROM PRODUCTOS WHERE FECHA >= ‘2000-03-01’ AND FECHA <=‘2000-04-30’
Si nos fijamos en el orden de la tabla, esta sentencia nos muestra el orden de menor a mayor
dependiendo del CÓDIGOARTÍCULO.
Queremos ordenar esta tabla por orden alfabético de la “a” a la “z” por el campo SECCIÓN.
SELECT * FROM PRODUCTOS WHERE SECCIÓN = ‘DEPORTES’ OR SECCIÓN =’CERAMICA’
ORDER BY SECCIÓN.
Si queremos que el orden sea descendente, en caso numérico de la “z” a la “a” o en caso numérico
de mayor a menor se le agrega DESC.
Como se observa tanto los de CERÁMICA y DEPORTERS están ordenados por PRECIO de menor a
mayor.
Se puede agregar los criterios de ordenación que sean necesarios. Por ejemplo, ahora se hará una
sentencia que ordene la SECCIÓN que tenga CERÁMICA Y DEPORTES alfabéticamente, también que
a los campos que tengan CERÁMICA y DEPORTES se ordenen alfabéticamente desde el campo
PAÍSDEORIGEN, de igual manera se organicen esos países de origen que coinciden con un PRECIO
de menor a mayor.
FUNCIONES DE AGREGADO.
Vamos a hacer una consulta de agrupación que nos muestre cuanto suman los artículos de las
SECCIONES.
Mostrar cuanto suman los artículos de FERRETERIA, Cuanto suman los artículos de DEPORTES.
Si se quiere ordenar la anterior tabla por precio agregando el ORDER BY PRECIO, no se ordena,
debido a que el campo precio no existe en esta sentencia, existe es el nombre del campo
SUM(PRECIO) ¿qué hacer en estos casos? Se le agrega un ALIAS a este nombre de campo (esto no
altera el nombre del campo en la tabla) esto se hace con el AS
La función COUNT() no cuenta campos en blanco, para ello se usa el conteo en el campo
fundamental de la tabla en este caso CÓDIGOCLIENTE.
Ahora queremos saber el precio del artículo más caro de la SECCIÓN de CONFECCIÓN. Esto se hace
con la función MAX().
Consultas de cálculo.
Se realizan sobre registros individuales, no sobre grupos como anteriormente vimos. Es frecuente
que se usen funciones SQL, aparte de esto cada gestor de base de datos tiene sus propias
funciones. Las funciones SQL más frecuentes son:
- Now(): nos devuelve el día y la hora actuales
- Datediff (): Nos devuelve la hora diferencia entre dos fechas
- Date_format(): Nos permite formatear los fortmatos.
- Round(): Nos permite redondear
- Concat(): Nos permite concatenar dos cadenas de texto.
Vamos a hacer una consulta de cálculo sobre la tabla de PRODUCTOS. Las consultas de cálculo nos
permite mostrar los registros ya con un 21% de IVA.
Como vemos el nombre del campo PRECIO*1.21 no es indicado, Además los decimales de este
campo son muy largos, vamos a acortarlos con la función ROUND()que se le pasa como parámetro
la expresión que se quiere redondear y el número de decimales que queremos que tenga ese
redondeo.
Vamos a hacer una consulta que nos muestre la diferencia de días entre los días que fue registrado
un artículo y el día de hoy. Esto se hace con la función NOW()
Si nos fijamos el campo DIA_DE_HOY muestra un formato tanto la fecha como la hora, la función
DATE_FORMAT(fecha, ‘%D-%M’) nos permite dar formato con respecto a los parámetros que
tenga la función. También se le puede agregar año, hora.
Estas funciones dependen del gestor de base de datos, estos cambian en cada gestor, para ello hay
que investigar.
Consultas Multitabla I. (consultas de
unión)
Por ejemplo si en una base de tenemos 30 tablas y queremos hacer una consulta de 5 de esas
tablas. Existen las consultas de Unión externa y de Unión interna.
- Union:
- Union All
- Except
- Intersect
- Minus
UNION:
Permite unir en una única consulta varias tablas almacenadas en la base de datos. Para que se
pueda hacer la unión de dos tablas se necesitan los requisitos: Las tablas deben tener el mismo
número de campos, los campos deben tener tipos de datos compatibles, no importa si los campos
tienen nombres diferentes. Y una vez que las tablas cumplen los requisitos, lo que ocurres es que
las tablas se unen en una única consulta, los campos quedan con el nombre de la tabla 1.
Queremos hacer una consulta en la que nos muestre todos los artículos de DEPORTES y DEPORTES
DE RIESGO, estos se encuentran en las tablas PRODUCTOS y PRODUCTOSNUEVOS
RESPECTIVAMENTE.
Vamos a hacer una consulta que nos muestre los artículos más caros que 500 en la tabla
PRODUCTOS y artículos de alta costura de la tabla PRODUCTOSNUEVOS.
SELECT * FROM PRODUCTOS WHERE PRECIO >500 UNION SELECT * FROM PRODUCTOSNUEVOS
WHERE SECCIÓN=’ALTA COSTURA’
UNION ALL.
Al aplicar el UNION si hay registros repetidos se muestra en la consulta sólo un registro, cuando se
aplica UNION ALL se muestran todos los registros así estén repetidos.