La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "SQL MC Beatriz Beltrán Martínez Benemérita Universidad Autónoma de Puebla."— Transcripción de la presentación:

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

2 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 MC Beatriz Beltrán MartínezFCC - BUAP 174  SQL-92  SQL:1999

3 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. MC Beatriz Beltrán MartínezFCC - BUAP 175

4 Componentes  Definición de vista: Instrucciones básicas para definir vistas.  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. MC Beatriz Beltrán MartínezFCC - BUAP 176

5 Componentes  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ínezFCC - BUAP 177

6 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ínezFCC - BUAP 178

7 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ínezFCC - BUAP 179

8 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ínezFCC - BUAP 180

9 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ínezFCC - BUAP 181

10 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ínezFCC - BUAP 182

11 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ínezFCC - BUAP 183

12 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ínezFCC - BUAP 184

13 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ínezFCC - BUAP 185

14 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ínezFCC - BUAP 186

15 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ínezFCC - BUAP 187

16 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ínezFCC - BUAP 188

17 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ínezFCC - BUAP 189

18 Estructura básica  Una consulta típica en SQL es: Select A 1, A 2,..., A n From r 1, r 2,..., r m Where P  Cada A i representa un atributo  Cada r i una relación  P es un predicado  Su equivalente:   A 1, A 2,..., A n (  P (r 1  r 2 ...  r m )) MC Beatriz Beltrán MartínezFCC - BUAP 190

19 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ínezFCC - BUAP 191

20 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ínezFCC - BUAP 192

21 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ínezFCC - BUAP 193

22 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ínezFCC - BUAP 194

23 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ínezFCC - BUAP 195

24 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ínezFCC - BUAP 196

25 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ínezFCC - BUAP 197

26 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ínezFCC - BUAP 198

27 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ínezFCC - BUAP 199

28 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ínezFCC - BUAP 200

29 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ínezFCC - BUAP 201

30 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:  Descde forma descendente  Ascde forma ascendente MC Beatriz Beltrán MartínezFCC - BUAP 202

31 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ínezFCC - BUAP 203

32 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ínezFCC - BUAP 204

33 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ínezFCC - BUAP 205

34 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ínezFCC - BUAP 206

35 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ínezFCC - BUAP 207

36 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ínezFCC - BUAP 208

37 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ínezFCC - BUAP 209

38 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ínezFCC - BUAP 210

39 Tipos de Datos MC Beatriz Beltrán MartínezFCC - BUAP 211 Tipo de DatosLongitudDescripción BINARY1 byte Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. BIT1 byteValores Si/No ó True/False BYTE1 byteUn valor entero entre 0 y 255. COUNTER4 bytes Un número incrementado automáticamente (de tipo Long) CURRENCY8 bytes Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. DATETIME8 bytesUn valor de fecha u hora entre los años 100 y 9999. SINGLE4 bytes Un valor en punto flotante de precisión simple con un rango de -3.402823*10 38 a -1.401298*10 -45 para valores negativos, 1.401298*10 -45 a 3.402823*10 38 para valores positivos, y 0.

40 Tipos de Datos MC Beatriz Beltrán MartínezFCC - BUAP 212 Tipo de DatosLongitudDescripción DOUBLE8 bytes Un valor en punto flotante de doble precisión con un rango de -1.79769313486232*10 308 a - 4.94065645841247*10 -324 para valores negativos, 4.94065645841247*10 -324 a 1.79769313486232*10 308 para valores positivos, y 0. SHORT2 bytesUn entero corto entre -32,768 y 32,767. LONG4 bytesUn 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.

41 Ejemplo MC Beatriz Beltrán MartínezFCC - BUAP 213 Nombre-sucursal Ciudad-sucursal Activos Numero-cuenta Nombre-sucursal Saldo Nombre-cliente Numero-cuenta Nombre-cliente Calle-cliente Ciudad-cliente Nombre-cliente Numero-prestamo Nombre-sucursal importe sucursal cuenta impositor cliente prestatario prestamo


Descargar ppt "SQL MC Beatriz Beltrán Martínez Benemérita Universidad Autónoma de Puebla."

Presentaciones similares


Anuncios Google