BBDD Unidad
BBDD Unidad
BBDD Unidad
Un uso interactivo
• Un uso interactivo, destinado principalmente a los usuarios finales avanzados u ocasionales,
en el que las diversas sentencias SQL se escriben y ejecutan en línea de comandos, o un
entorno semejante.
Un uso integrado
• Un uso integrado, destinado al uso por parte de los programadores dentro de programas
escritos en cualquier lenguaje de programación anfitrión. En este caso el SQL asume el papel de
sublenguaje de datos.
SGBD con soporte SQL
• DB2,
• Oracle,
• SQL Server,
• Sybase,
• ASE,
• MySQL,
• PostgreSQL y
• Firebird
MICROSOFT SQL SERVER
Comando
***Tomar en cuenta el orden para crear las tablas (primero las Entidades Fuertes, luego las débiles)
Lenguaje de Definición de Datos (LDD)
ALTER
Este comando permite modificar la estructura de un objeto. Se pueden
agregar/quitar campos a una tabla, modificar el tipo de dato a un campo,
agregar/quitar índices a una tabla, modificar un trigger, etc.
Objeto Nombre del Objeto
Comando
Agregar
Lenguaje de Definición de Datos (LDD)
DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice,
trigger, función, procedimiento o cualquier otro objeto que el motor de la base de
datoo.mSbree dpeul Oebdjeetocombinar con la sentencia
Comando
ALTER.
Lenguaje de Definición de Datos (LDD)
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando
DELETE, es que si se quiere borrar todo el contenido de la tabla, es mucho más
rápido, especialmente si la tabla es muy grande.
La desventaja es que TRUNCATE solo sirve cuando se quieren eliminar
absolutamente todos los registros, ya que no se permite la cláusulaWHERE.
Si bien, en un principio, esta sentencia parecería ser DML, es en realidad una DDL,
ya que internamente, el comando truncate borra la tabla y la vuelve a crear y no
ejecuta ninguna transacción.
Lenguaje de Manipulación de Datos (LMD)
• Una vez creados los esquemas de la base de datos, los usuarios necesitan un
lenguaje que les permita manipular los datos de la base de datos: realizar
consultas, inserciones, eliminaciones y modificaciones.
• Este lenguaje es el que se denomina lenguaje de manipulación de datos (LMD).
• El LMD nos permite recuperar los datos almacenados en la base de datos y
también incluye órdenes para permitir al usuario actualizar la base de datos
añadiendo nuevos datos, suprimiendo datos antiguos o modificando datos
previamente almacenados.
Lenguaje de Manipulación de Datos (LMD)
Las sentencias de LMD son utilizadas para gestionar datos dentro de los
schemas. Entre los elementos básicos del LMD tenemos:
• INSERT - para insertar datos a una tabla.
• SELECT - para obtener datos de una base de datos.
• UPDATE - para modificar datos existentes dentro de una tabla.
• DELETE - elimina todos los registros de la tabla; no borra los espacios
asignados a los registros.
Lenguaje de Manipulación de Datos (LMD)
INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una)
tabla en una base de datos relacional.
Estructura:
INSERT INTO tabla (columna1,columna2,...) VALUES (valor1, valor2,...)
CON CONDICIÓN
(USANDOWHERE)
UPDATE EMPLEADO
Solo se actualizará el registro
de la tabla empleado que SET SUELDO = 600
cumpla con la condición
establecida en elWhere
(al empleado cuya
WHERE ID = 123456789
Identificacion ID = 123456789)
Lenguaje de Manipulación de Datos (LMD)
DELETE
La sentencia DELETE sirve para borrar filas de una tabla.
Estructura: Comando DELETE FROM nombre_tabla
CON CONDICIÓN
(USANDOWHERE)
DELETE FROM EMPLEADO
Solo eliminará el registro de la
tabla empleado que cumpla WHERE ID = 123456789
con la condición establecida
en elWhere
(al empleado cuya
Identificacion ID = 123456789)
Lenguaje de Manipulación de Datos (LMD)
SELECT
• Para realizar consultas sobre las tablas de las bases de datos disponemos de la
instrucción SELECT. Con ella podemos consultar una o varias tablas.
• El resultado de una consulta SELECT nos devuelve una tabla lógica. Es decir, los
resultados son una relación de datos, que tiene filas/registros, con una serie de
campos/columnas.
• Igual que cualquier tabla de la base de datos. Sin embargo esta tabla está en
memoria mientras la utilicemos, y luego se descarta. Cada vez que ejecutamos la
consulta se vuelve a calcular el resultado.
Lenguaje de Manipulación de Datos (LMD)
• Existen muchas cláusulas asociadas a la sentencia SELECT (GROUP BY, ORDER,
HAVING, UNION). También es una de las instrucciones en la que con más
frecuencia los motores de bases de datos incorporan cláusulas adicionales al
estándar
• La sintaxis básica de una consulta SELECT es la siguiente (los valores opcionales
van entre corchetes):
FROM Nombre_Tabla_Vista
WHERE Condiciones
SELECT
Permite seleccionar las columnas que se van a mostrar y en el orden en que lo van a hacer. Simplemente
es la instrucción que la base de datos interpreta como que vamos a solicitar información.
ALL / DISTINCT
ALL es el valor predeterminado, especifica que el conjunto de resultados puede
incluir filas duplicadas. Por regla general nunca se utiliza.
DISTINCT especifica que el conjunto de resultados sólo puede incluir filas únicas. Es decir, si al realizar
una consulta hay registros exactamente iguales que aparecen más de una vez, éstos se eliminan. Muy útil
en muchas ocasiones.
Lenguaje de Manipulación de Datos (LMD)
Nombres de campos
Se debe especificar una lista de nombres de campos de la tabla que nos interesan y que por
tanto queremos devolver. Normalmente habrá más de uno, en cuyo caso separamos cada
nombre de los demás mediante comas.
Se puede anteponer el nombre de la tabla al nombre de las columnas, utilizando el formato
Tabla.Columna. Además de nombres de columnas, en esta lista se pueden poner constantes,
expresiones aritméticas, y funciones, para obtener campos calculados de manera dinámica.
Si queremos que nos devuelva todos los campos de la tabla utilizamos el comodín “*”
(asterisco).
Los nombres indicados deben coincidir exactamente con los nombre de los campos de la tabla,
pero si queremos que en nuestra tabla lógica de resultados tengan un nombre diferente
podemos utilizar:
AS
Permite renombrar columnas si lo utilizamos en la cláusula SELECT, o renombrar tablas si lo
utilizamos en la cláusula FROM. Es opcional. Con ello podremos crear diversos alias de columnas
y tablas.
Lenguaje de Manipulación de Datos (LMD)
FROM
Esta cláusula permite indicar las tablas o vistas de las cuales vamos a obtener la información.
WHERE
Especifica la condición de filtro de las filas devueltas. Se utiliza cuando no se desea que se devuelvan todas las
filas de una tabla, sino sólo las que cumplen ciertas condiciones. Lo habitual es utilizar esta cláusula en la mayoría
de las consultas.
Condiciones
Son expresiones lógicas a comprobar para la condición de filtro, que tras su resolución devuelven para cada fila
TRUE o FALSE, en función de que se cumplan o no. Se puede utilizar cualquier expresión lógica y en ella utilizar
diversos operadores como:
> (Mayor) >= (Mayor o igual) < (Menor)
<= (Menor o igual) = (Igual) <> o != (Distinto)
IS [NOT] NULL (para comprobar si el valor de una columna es o no es nula, es decir, si contiene o no contiene algún valor)
Lenguaje de Manipulación de Datos (LMD)
• LIKE: para la comparación de un modelo. Para ello utiliza los caracteres comodín especiales: “%” y “_”. Con el primero
indicamos que en su lugar puede ir cualquier cadena de caracteres, y con el segundo que puede ir cualquier carácter individual
(un solo carácter). Con la combinación de estos caracteres podremos obtener múltiples patrones de búsqueda. Por ejemplo:
• El nombre empieza por A: Nombre LIKE ‘A%’
• El nombre acaba por A: Nombre LIKE ‘%A’
• El nombre contiene la letraA: Nombre LIKE ‘%A%’
• El nombre empieza porA y después contiene un solo carácter cualquiera: Nombre LIKE ‘A_’
• El nombre empieza una A, después cualquier carácter, luego una E y al final cualquier cadena
de caracteres: Nombre LIKE ‘A_E%’
• BETWEEN: para un intervalo de valores. Por ejemplo:
• Clientes entre el 30 y el 100: CodCliente BETWEEN 30 AND 100
• Clientes nacidos entre 1970 y 1979: FechaNac BETWEEN ‘19700101’ AND ‘19791231’
IN( ): para especificar una relación de valores concretos. Por ejemplo: Ventas de los Clientes 10, 15, 30 y 75: CodCliente IN(10,
15, 30, 75)
Lenguaje de Manipulación de Datos (LMD)
• ORDER BY: Define el orden de las filas del conjunto de resultados. Se especifica el campo
o campos (separados por comas) por los cuales queremos ordenar los resultados.
• ASC / DESC: ASC es el valor predeterminado, especifica que la columna indicad en la cláusula ORDER BY se
ordenará de forma ascendente, o sea, de menor a mayor. Si por el contrario se especifica DESC se ordenará de
forma descendente (de mayor a menor).
• Por ejemplo, para ordenar los resultados de forma ascendente por ciudad, y los que sean de la misma ciudad de
forma descendente por nombre, utilizaríamos esta cláusula de ordenación:
• Como a la columna Ciudad no le hemos puesto ASC o DESC se usará para la misma el
valor predeterminado (que esASC)
Definición de Vistas
• El LDD de SQL incluye órdenes para la definición de vistas.
• Una vista es una consulta que se presenta como una tabla (virtual) a partir de un conjunto de
tablas en una base de datos relacional.
• Las vistas tienen la misma estructura que una tabla: filas y columnas.
• La única diferencia es que sólo se almacena de ellas la definición, no los datos.
Control de Transacciones
SQL incluye órdenes para las especificación del comienzo y final de
transacciones.
Una transacción es una unidad de trabajo compuesta por diversas tareas, cuyo resultado final debe ser
que se ejecuten todas o ninguna de ellas.
SQL incorporado y SQL dinámico.
• Define como se pueden incorporar las instrucciones SQL en lenguajes de programación de
propósito general, tales como C, C++. Java, Cobol, etc.
• Integridad: El LDD de SQL incluye órdenes para la especificación de las restricciones de integridad
que deben satisfacer los datos almacenados en la Base de Datos.
• Autorización: El LDD de SQL incluye órdenes para especificar derechos de acceso para las
relaciones y vistas.
Al crear objetos de base de datos, se deben conceder permisos de forma explícita para que los
usuarios tengan acceso a ellos. Cada objeto susceptible de protegerse tiene permisos que se
pueden otorgar a una entidad de seguridad mediante instrucciones de permiso.