BBDD Unidad

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 37

LENGUAJE SQL

Ing. Mariela Espinoza


Ingeniería en Tecnologías de la Información
Facultad de Ciencias Matemáticas y Físicas
Universidad de Guayaquil
Unidad #3

• ANSI SQL, historia.


• Entornos de Ejecución
• Objetos de Bases de Datos
• Lenguaje de Definición de Datos (DDL): CREATE, ALTER, DROP.
• Lenguaje de Manipulación de Datos (DML): INSERT, SELECT,
UPDATE, DELETE.
SQL - Introducción

• SQL Structured Query Language; en español Lenguaje de Consulta


Estructurada
• SQL fue uno de los primeros lenguajes comerciales para el modelo
relacional
• Está basado en el álgebra relacional y en el cálculo relacional.
• SQL consiste en un lenguaje de definición de datos, un lenguaje de
manipulación de datos y un lenguaje de control de datos.
SQL - Historia

• 1970 Edgar F. Codd teoriza Modelo de Base de Datos Relacional


• 1977 Laboratorios de IBM definió lenguaje SEQUEL como
parte de System R que posteriormente es implementado por el
SGBD
• 1979 ORACLE Comercializa SQL
• 1992 ANSI E ISO Estandarizan: SQL-86 o SQL1 y ANSI-SQL o
SQL/92 o SQL2
Estándar SQL
• El estándar SQL ha pasado por muchos cambios, en los cuales se han añadido una gran
cantidad de nuevas funcionalidades, como el soporte para XML, triggers, expresiones
regulares, consultas recursivas, secuencias estandarizadas, etc.
• Debido al gran volumen del lenguaje SQL estándar, una gran cantidad de soluciones de
bases de datos basadas en ella, tales como MySQL o PostgreSQL, no implementan toda la
norma.
• En muchos casos, el comportamiento de la base de datos para el almacenamiento de
archivos o índices no está bien definido y depende de los proveedores de las distintas
implementaciones SQL para decidir cómo se comportará la base de datos.
• Esta es la razón por la cual, a pesar de que todas las implementaciones de SQL
tienen la misma base, rara vez son compatibles.
Características generales SQL
• El SQL es un lenguaje de acceso a bases de datos que explota la
flexibilidad y potencia de los sistemas relacionales permitiendo gran
variedad de operaciones sobre los mismos.
• Es un lenguaje declarativo de alto nivel o de no procedimiento, que
gracias a su fuerte base teórica y su orientación al manejo de conjuntos
de registros, y no a registros individuales, permite una alta productividad
en codificación.
• De esta forma una sola sentencia puede equivaler a uno o más programas
que utilicen un lenguaje de bajo nivel orientado a registro.
Modo de uso - SQL
El SQL permite fundamentalmente dos modos de uso:

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

Es un SGBD relacionales basado en el lenguaje


Transact-SQL, capaz de poner a disposición de
muchos usuarios grandes cantidades de datos de
manera simultánea. Es un sistema propietario de
Microsoft.
Características Ms SQL Server
Sus principales características son:
• Soporte de transacciones.
• Escalabilidad, estabilidad y seguridad.
• Soporta procedimientos almacenados.
• Incluye también un potente entorno gráfico de administración, que permite el uso de
comandos DDL y DML gráficamente.
• Permite trabajar en modo cliente-servidor donde la información y datos se alojan en el
servidor y las terminales o clientes de la red sólo acceden a la información.
• Además permite administrar información de otros servidores de datos
Su principal desventaja es el precio, aunque cuenta con una versión EXPRESS que permite usarlo en
entornos pequeños. (Aprox. unos 4GB de información y varios millones de registros por tabla)
MICROSOFT SQL SERVER
IDE para SQL server es SQL Server Management Studio (SSMS) que es un componente que permite
configurar y administrar instancias de SQL Server, y también permite crear, modificar o seleccionar objetos de
base de datos.
Componentes
• Lenguaje de Definición de Datos (LDD)
• Lenguaje interactivo de manipulación de datos (LMD)
• Definición de vistas
• Control de transacciones
• SQL incorporado y SQL dinámico.
• Integridad
• Autorización
Lenguaje de Definición de Datos (LDD)
El LDD de SQL proporciona órdenes para la definición de esquemas de
relación, borrado de relaciones, creación de índices y modificación de
esquemas de relación.
Existen cuatro operaciones básicas:
• CREATE
• ALTER
• DROP
• TRUNCATE
Lenguaje de Definición de Datos (LDD)
CREATE
Este comando crea un objeto dentro 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 datos soporte.
Objeto Nombre del Objeto

Comando

Estructura Campos o Tipo de


Atributos Dato
Definimos los Constraints, en
este caso Claves Primarias

Definimos los Constraints, en


este caso Claves Primarias y
Foraneas

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

Comando Nombre Tabla Columnas Comando Valores


Lenguaje de Manipulación de Datos (LMD)
INSERT

Insert into Empleado ( id, nombre,fecha_nacimiento, sueldo) values (123456789,

Juan Piguave, 1994-10-25, 500)


Lenguaje de Manipulación de Datos (LMD)
UPDATE
Esta instrucción nos permite actualizar los valores de los campos de una tabla,
para uno o varios registros, o incluso para todos los registros de una tabla.
Comando
UPDATE NombreTabla
indica los campos que
se van a actualizar y
con qué valores lo SET Campo1 =Valor1, ..., CampoN =
Estructura: vamos a hacer.
ValorN
Opcional - Condición :
Selecciona los WHERE nombre_columna = valor
registros de la tabla
que se van a actualizar
Lenguaje de Manipulación de Datos (LMD)
SIN CONDICIÓN
(SINWHERE)
UPDATE EMPLEADO
A todos los registros
de la tabla empleado SET SUELDO = 600
se les actualizará el
campo sueldo con el
nuevo valor (600)

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

Condición : Selecciona WHERE nombre_columna = valor


los registros de la
tabla que se van a
eliminar
Lenguaje de Manipulación de Datos (LMD)
SIN CONDICIÓN
(SINWHERE) DELETE FROM EMPLEADO

Eliminará todos los


registros de la tabla
empleado

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

SELECT [ ALL / DISTINC ] [ * ] / [ListaColumnas_Expresiones]AS [Expresion]

FROM Nombre_Tabla_Vista

WHERE Condiciones

ORDER BY ListaColumnas [ASC / DESC ]


Lenguaje de Manipulación de Datos (LMD)

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:

• … ORDER BY Ciudad, Nombre DESC …

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

También podría gustarte