La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Presentaciones similares


Presentación del tema: ""— Transcripción de la presentación:

149 MC Beatriz Beltrán Martínez Benemérita Universidad Autónoma de Puebla
SQL MC Beatriz Beltrán Martínez Benemérita Universidad Autónoma de Puebla

150 Antecedentes IBM desarrolló la versión original (Laboratorio de Investigación de San José). Originalmente se llamó Sequel, a principios de 1970. En 1986, ANSI e ISO publicaron una norma SQL. SQL-86 SQL corporativo SQL-89 SQL-92 SQL:1999 MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

151 Componentes Se tienen los siguientes componentes:
Lenguaje de Definición de Datos (DDL): Proporciona órdenes para la definición de esquemas de relación, borrado de relaciones, creación de índices y modificación de esquemas. Lenguaje Interactivo de Manipulación de Datos (DML): Incluye un lenguaje de consultas basado en el álgebra y cálculo relacional. Incluye el borrado, insertado y modificación de tuplas. Definición de vista: Instrucciones básicas para definir vistas. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

152 Componentes Control de transacciones: Se tienen órdenes para la especificación del comienzo y final de transacciones. SQL dinámico y SQL incorporado: Define cómo se pueden incorporar las instrucciones SQL en lenguajes de propósito general. Integridad: El DDL incluye órdenes para especificar restricciones de integridad que deba satisfacer la DB. Autorización: Se tienen órdenes para especificar los derechos de acceso para las relaciones y vistas. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

153 Consultas simples Comando para mostrar la versión de MySQL:
Select version(); Comando para mostrar fecha actual: Select current_date; Se puede tener en una sola línea varios comandos, separados por coma (solo se incluye el comando select en el primer comando): Select version(), current_date; MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

154 Consultas simples En SQL no se hace diferencia entre mayúsculas y minúsculas. Comando para mostrar fecha y hora: Select now(); Se permiten declaraciones en diferentes líneas, con lo cual quedaría: mysql> select -> now() -> , -> current_date; MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

155 Consultas simples Comando que muestra usuario actual: Select user();
Para cancelar una declaración se tiene: \c Para mostrar las bases de datos existentes: Show databases; Para usar una base de datos: Use nombre_db En este comando no es necesario el punto y coma. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

156 Consultas simples Comando para crear una base de datos:
Create database [if not exists] nombre_db; El crear la base de datos no implica que ya se puede utilizar, para esto se hace uso del comando use. Lo que se ha creado es una base de datos vacía. Comando para mostrar las tablas que existen en una base de datos: Show tables; MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

157 Consultas simples Comando para crear una tabla:
Create table [if not exists] nom_tabla (nom_atrib tipo [, ...]); Comando para verificar la declaración de la tabla: Describe nom_tabla; Para las fechas se guarda con el formato: yyyy-mm-dd. Se puede guardar la información dentro de un archivo de texto. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

158 Consultas simples El archivo de texto debe tener un registro por cada línea. Cada valor de atributo se separa con un tabulador, en el mismo orden en el que están definidos en la tabla. Se pueden usar valores NULOS dentro del archivo de texto haciendo uso del carácter \N. Comando para leer el archivo en la tabla: Load data local infile “nom_arch" into table nom_tabla; MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

159 Consultas simples NOTA: El uso de archivos no esta disponible en todas las versiones. Comando para agregar un solo registro: Insert into nom_tabla values (atrib [, ...]); Para valores nulos utilizar NULL. El orden de los atributos deben ser igual a como fue definida en la tabla. Tanto las cadenas como las fechas se colocan entre comillas. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

160 Consultas simples Para agregar un nuevo atributo dentro de una tabla:
Alter table nom_tabla add nom_atrib tipo [first | after nom_atrib]; Si la tabla contiene información, el nuevo atributo se llenará con NULL. Para cambiar alguno de estos valores nulos se usa: Update nom_tabla set nom_atrib = expresion [, ...] [condicion] MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

161 Consultas simples Si no se da una condición, el cambio al atributo es a todas las tuplas. La condición permite que realice un cambio sobre una tupla en particular. Alter permite cambiar la estructura de las relaciones. Update permite cambiar los valores de tuplas en cada atributo. Para eliminar un atributo: Alter table nom_tabla drop nom_atrib; MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

162 Consultas simples Para eliminar una base de datos:
Drop database nom_bd; Para eliminar una tabla en particular: Drop table nom_tabla; Para renombrar una tabla: Rename table nom_ant to nom_new; Para eliminar filas de una tabla: Delete from nom_tabla where condicion; Si no se le da una condición borra toda la tabla. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

163 Estructura básica Una Base de Datos consiste de un conjunto de relaciones a las que a cada una se les asigna un nombre único. Se permite el uso de valores nulos, para indicar que no se conoce el valor o que es desconocido. La estructura básica de una expresión consiste de tres cláusulas: select, from y where. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

164 Estructura básica La cláusula select corresponde a la operación proyección. Se usa para seleccionar atributos en particular. La cláusula from corresponde a la operación producto cartesiano, y lista las relaciones que deben ser analizadas en la evaluación. La cláusula where corresponde al predicado selección. Es un predicado que engloba a los atributos de las relaciones que aparecen en la cláusula from. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

165 Estructura básica Una consulta típica en SQL es:
Select A1, A2, ..., An From r1, r2, ..., rm Where P Cada Ai representa un atributo Cada ri una relación P es un predicado Su equivalente:  A1, A2, ..., An(P(r1  r2  ...  rm)) MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

166 Estructura básica Si se omite la cláusula where, el predicado P es cierto. Se pueden tener tuplas repetidas. SQL forma el producto cartesiano de las relaciones incluidas en from, se lleva a cabo la selección (where) y entonces se proyecta el resultado sobre los atributos mostrados en select. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

167 Estructura básica Select Para eliminar duplicados: Distinct
Para especificar explícitamente que no se eliminen las tuplas repetidas: All El símbolo “*” se puede utilizar para denotar todos los atributos. Select puede contener expresiones aritméticas con las operadores básicos operando sobre constantes o atributos de tuplas. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

168 Estructura básica Where
Puede tener un predicado simple usando los operadores de comparación: <, <=, >, >=, =, <> Se puede tener un predicado con conectores: Not, and, or Se incluye un operador de comparación, que significa que un valor sea menor o igual que un valor y mayor igual que otro valor o negándolo, usando: Between valor1 and valor2; Not Between valor1 and valor2; MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

169 Estructura básica From Se define el producto cartesiano.
Para realizar una reunión natural, se define en términos del producto cartesiano, una selección y una proyección. Se hace uso de para evitar ambigüedad: Nombre_relación.Nombre_atributo Cuando no hay ambigüedad, se puede usar o no la forma anterior. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

170 Estructura básica Supóngase que existe un error en un atributo en particular de alguna tupla, se puede hacer de dos formas: Editar el archivo, corrigiéndolo después eliminando todas tuplas y finalmente cargando de nueva cuenta la tabla con el archivo. Corregir el atributo erróneo, haciendo uso del comando update. En el primero, se puede realizar siempre y cuando no se hayan introducido nuevos valores mediante el uso de insert into. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

171 Estructura básica Al hacer uso del comando update, se debe utilizar con una restricción, de otra forma se cambiaran todos los valores del atributo que se da en todas las tuplas. Primera forma: mysql> delete from nom_tabla; mysql> load data local infile “nom_arch" into table nom_tabla; Segunda forma: mysql> update nom_tabla set atrib = valor where condicion; MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

172 Renombrar Se tiene un mecanismo para renombrar:
Nombre_antiguo as Nombre_nuevo La cláusulas as puede aparecer tanto en select como en from. La cláusula as, es útil en la definición de variable de tupla. Una variable de tupla se debe asociar con una relación concreta. Las variables de tuplas se definen en la cláusula from, mediante el uso de as. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

173 Cadenas Las cadenas se encierran entre comillas simples o dobles.
Si una comilla es parte de la cadena se usa con dos caracteres de comilla: ‘El carácter ‘’ se puede ver en la cadena’ La operación más utilizada sobre cadena es el encaje de patrones, y se usa Where atrib like patroncadena. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

174 Cadenas Para la utilización de patrones se usan los caracteres especiales: Tanto por ciento (%): Encaja con cualquier subcadena. Subrayado (_): Encaja con cualquier carácter. El usar el subrayado n-veces encaja con una cadena de n-caracteres. Se permite la especificación de un carácter de escape. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

175 Cadenas El carácter de escape se utiliza antes del carácter especial patrón para indicar que ese carácter va a ser tratado como carácter normal. El carácter escape para la comparación like se define utilizando la palabra clave escape. Se usa la barra invertida (\) como carácter de escape. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

176 Cadenas Para su uso se tiene:
like ‘ab\%cd%’ escape ’\’ : Encaja con todas las cadenas que empiezan con ab%cd like ‘ab\\cd%’ escape ’\’ : Encaja con todas las cadenas que empiezan con ab\cd Se permite también las discordancias, utilizando el operador: Where atrib not like patroncadena. La concatenación se lleva a cabo con el uso de: “||”. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

177 Orden Se pueden tener distintos órdenes sobre el que se presentan las tuplas de una relación, mediante el uso de la cláusula: Order by atrib [asc | desc]; De manera predeterminada se listan en forma ascendente, lo cual se puede cambiar: Desc de forma descendente Asc de forma ascendente MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

178 Otras operaciones La operación unión del álgebra relacional se lleva a cabo por medio de la cláusula: Sentencia union [all] sentencia; La operación intersección del álgebra relacional no esta implementada, pero se puede realizar: Select tabla1.atrib from tabla1 join tabla2 where tabla1.atrib = tabla2.atrib; La operación diferencia no esta implementada. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

179 Funciones de agregación
Las funciones de agregación toman una colección de valores como entrada y producen un único valor como salida, entre las funciones que se tienen: Media: Avg (nom_atrib) Mínimo: Min (nom_atrib) Máximo: Max (nom_atrib) Total: Sum (nom_atrib) Cuenta: Count (nom_atrib) El atributo al que se le aplica la función se puede renombrar usando as. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

180 Funciones de agregación
La entrada sum y avg deben ser numéricas. Los demás operadores puede operar sobre colecciones de datos de tipo no numérico. Las funciones de agregación se pueden aplicar a grupos de conjuntos al final de la sentencia, haciendo uso de: Group by nom_atrib; Cuando se requieren establecer condiciones a grupos de tuplas, se hace uso de: Having condicion; MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

181 Funciones de agregación
En una misma consulta se puede tener la cláusula where y having al mismo tiempo, donde primero se aplica el predicado de la cláusula where. Las tuplas que satisfacen la cláusula where, se colocan en grupos según group by, y finalmente se aplica la cláusula having a cada grupo. Los grupos que no satisfacen el predicado de la cláusula having son eliminados. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

182 Valores nulos Se permite el uso de valores nulos para indicar falta de información. Se puede preguntar por aquellos valores sean nulos, en la sentencia where: Is null Y para preguntar por la ausencia de un valor nulo se usa: Is not null MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

183 Valores nulos En comparaciones se tiene:
Se trata como desconocido, el resultado de cualquier comparación que implique un valor nulo. En comparaciones booleanas se trata: Cierto y desconocido : desconocido. Falso y desconocido : falso. Desconocido y/o desconocido : desconocido. Cierto o desconocido : cierto. Falso o desconocido : desconocido. No desconocido : desconocido. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

184 Fechas Se puede calcular mediante una fecha distintos datos.
Select nom_atrib, [nom_atrib, ...] (year (curdate ()) – year (nom_atrib_date)) – ((right (curdate (), 5) < (right (nom_atrib_date, 5))) [as nombre] from tabla; La función year(), devuelve la parte del año dentro de una fecha. La función right() quita los primeros n caracteres de más a la derecha. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

185 Fechas También puede obtenerse el mes dentro de una fecha mediante la función: Month() Finalmente se puede obtener el día dentro de la fecha, mediante: Dayofmonth() Incluso estas funciones pueden ser utilizadas dentro sentencias de tipo de restricción (where). La función date_add (fecha, interval tiempo tipo) agrega un intervalo de tiempo. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

186 Tipos de Datos Tipo de Datos Longitud Descripción BINARY 1 byte
Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario.  BIT Valores Si/No ó True/False  BYTE Un valor entero entre 0 y 255. COUNTER 4 bytes Un número incrementado automáticamente (de tipo Long) CURRENCY 8 bytes Un entero escalable entre ,5808 y ,5807. DATETIME Un valor de fecha u hora entre los años 100 y 9999. SINGLE Un valor en punto flotante de precisión simple con un rango de *1038 a *10-45 para valores negativos, *10-45 a *1038 para valores positivos, y 0. MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

187 Tipos de Datos Tipo de Datos Longitud Descripción DOUBLE 8 bytes
Un valor en punto flotante de doble precisión con un rango de *10308 a * para valores negativos, * a *10308 para valores positivos, y 0. SHORT 2 bytes Un entero corto entre -32,768 y 32,767. LONG 4 bytes Un entero largo entre -2,147,483,648 y 2,147,483,647. LONGTEXT 1 byte por carácter De cero a un máximo de 1.2 gigabytes. LONGBINARY Según se necesite De cero 1 gigabyte.  Utilizado para objetos OLE. TEXT 1 byte por caracter De cero a 255 caracteres.  MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015

188 Ejemplo sucursal cuenta impositor cliente prestamo prestatario
Nombre-sucursal Ciudad-sucursal Activos Numero-cuenta Nombre-sucursal Saldo Nombre-cliente Numero-cuenta cliente Nombre-cliente Calle-cliente Ciudad-cliente prestamo prestatario Numero-prestamo Nombre-sucursal importe Nombre-cliente Numero-prestamo MC Beatriz Beltrán Martínez FCC - BUAP Verano 2015


Descargar ppt ""

Presentaciones similares


Anuncios Google