Contenido de la sesión 1 Bases de Datos Relacionales Lenguaje SQL

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

SQL CON EJEMPLOS SARI TEMA 4.
Acceso a Bases de Datos con Java
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
SQL Sigla del nombre “Structured Query Language”.
integridad referencial
Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
LENGUAJE ESTRUCTURADO DE CONSULTA “SQL”
BASE DE DATOS OBJETO RELACIONAL
Fundamentos de Base de Datos Introducción
Fernando Velasco
Teórico: Modelo Relacional
Por: Ronald Toscano Pretelt
EL LENGUAJE ESTÁNDAR SQL
Características Objeto Relacionales en Oracle
Características Objeto Relacionales en Oracle
Base de Datos Relacional.
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Lenguaje Estructurado de Consultas (Structured Query Language – SQL)
PL/SQL Francisco Moreno Universidad Nacional.
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
MySQL M.C. Pedro Bello López.
SQL Lenguaje de consulta estructurado
Tema 4. DISEÑO LÓGICO Objetivos
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Componentes sintácticos
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
Integridad Referencial 1. Integridad referencial 2.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
CONCEPTOS BASICOS SQL SERVER SEBASTIAN MARTINEZ GARCIA.
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
SELECT [DISTINCT] { * | tabla.col [, tabla.col ] } FROM tabla [, tabla ] [ WHERE condición_búsqueda ] [GROUP BY tabla.col [, tabla.col ] [HAVING condición_para_el_grupo.
ESCUELA TECNOLÓGICA INSTITUTO TÉCNICO CENTRAL Ing. Johanna Vargas Esp. Gerencia de proyectos.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
Consultas SQL (Base de Datos)
INSTRUCCIONES Elaboración de la Presentación:
Introducción a Bases de Datos en Microsoft Access Programación de Computadoras 2 Sección: P.
LENGUAJE SQL.
Structured Query Language (Lenguaje Estructurado de Consultas)
SQL: DDL Francisco Moreno. SQL: DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la BD Tipos de objetos: - Tablas: corresponden a las.
LENGUAJE ESTRUCTURADO DE CONSULTAS
Lenguaje Estructurado de Consulta
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
SQL Sigla del nombre “Structured Query Language”.
INSTRUCCIONES Elaboración de la Presentación:
Base de Datos I. SQL es el lenguaje estándar para trabaja con base de datos relacionales. MySQL, el sistema de gestión de bases de datos SQL Open Source.
MODELOS DE DATOS RELACIONAL
SQL Lenguaje Estructurado de Consulta MATERIA: diseñar sistemas de información ALUMNO: sarmiento flores Liliana Guadalupe GRUPO: 4° “A” TURNO: matutino.
Lenguaje SQL. Permite la definición de la base de datos mediante el lenguaje de definición de datos (DDL, Data Definition Lenguaje) Permite a los usuarios.
(Structured Query Language) Docente: Ing. Marleny Soria Medina 1.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
(Lenguaje de consulta estructurado)
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Bases de Datos SQL.
SQL STRUCTURED QUERY LANGUAGE
Unidad 6. Tema 4. Lenguaje de consultas SQL
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
SQL: DDL.
INTEGRACION DE LAS TECNOLOGIAS DE LA INFORMACION Y COMUNICACION Implementación de base de datos (Lenguaje de manipulación de datos) Ing. Linda Masias Morales.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
DLM Transact SQL Sesión II Recuperación de información.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
Transcripción de la presentación:

Contenido de la sesión 1 Bases de Datos Relacionales Lenguaje SQL SQL*Plus Sentencia SELECT de SQL Ejercicios guiados Ejercicios de sesión y opcionales

¿Qué es un Sistema de Bases de Datos? Punto de vista lógico (usuario): Los datos y sus relaciones se encuentran en un único lugar (base de datos). El acceso a éstos se realiza a través del SGDB. Usuario Lenguaje de Consulta Sistema de Bases de Datos SGBD (Sistema Gestor de Bases de Datos) Punto de vista físico: Datos almacenados en uno o más ficheros, en uno o más discos.

SGBD Relacional SQL SGBDR Punto de vista lógico (usuario): Es un SGBD donde, tanto los datos como sus relaciones, se encuentran almacenados en tablas (filas y columnas). Usuario Sistema de Bases de Datos SQL SGBDR

Base de datos relacional Todos los datos están organizados en tablas... entidad propiedades

Base de datos relacional ... Y las filas de una tabla no están ordenadas entidad propiedades

La base de datos de prácticas TABLA CLIENTES CODCLI NUMBER(5) NOMBRE VARCHAR2(50) DIRECCION VARCHAR2(50) CODPOSTAL VARCHAR2(5) CODPUE VARCHAR2(5) TABLA ARTICULOS CODART VARCHAR2(8) DESCRIP VARCHAR2(40) PRECIO NUMBER(7,2) STOCK NUMBER(6) STOCK_MIN NUMBER(6)

Objetos mas complejos... Codfac: 1437 ¿entidad? Fecha: 25/02/2002 IVA: 16 Dto. 5% ¿entidad? ¿propiedades? ¿todo esto en una tabla? 1. Bombilla X54 12 u. 2,10 25,2 2. Tubo neón FG 1 u. 18 18 3. Enchufe SW56 20 u. 1,90 38 Total : 81,2

...en una base de datos relacional ... en una tabla no ¡¡ pero en dos sí !! líneas cabecera

La base de datos de prácticas TABLA CLIENTES CODCLI NUMBER(5) NOMBRE VARCHAR2(50) DIRECCION VARCHAR2(50) CODPOSTAL VARCHAR2(5) CODPUE VARCHAR2(5) TABLA LINEAS FAC CODFAC NUMBER(6) LINEA NUMBER(2) CANT NUMBER(5) CODART VARCHAR2(8) PRECIO NUMBER(7,2) DTO NUMBER(2) TABLA ARTICULOS CODART VARCHAR2(8) DESCRIP VARCHAR2(40) PRECIO NUMBER(7,2) STOCK NUMBER(6) STOCK_MIN NUMBER(6) TABLA FACTURAS CODFAC NUMBER(6) FECHA DATE CODCLI NUMBER(5) IVA NUMBER(2) DTO NUMBER(2)

Nulos Cuando el valor de una columa para una determinada fila es desconocido, se dice que es nulo. Bien porque ... ... se desconoce el valor de una propiedad para cierta ocurrencia de una entidad. Ej. No se conoce el pueblo de un cliente. ... una propiedad no se aplica a alguna ocurrencia de una entidad. Ej. ¿DNI de un niño?

Clave Primaria Columna o conjunto de columnas cuyos valores identifican de forma única a cada una de las filas de la tabla. CLIENTES(codcli, nombre, ...) FACTURAS(codfac, fecha, ...) LINEAS_FAC(codfac, linea, cant, ...) La clave primaria siempre es NO NULA.

La base de datos de prácticas TABLA CLIENTES CODCLI NUMBER(5) NOMBRE VARCHAR2(50) DIRECCION VARCHAR2(50) CODPOSTAL VARCHAR2(5) CODPUE VARCHAR2(5) TABLA LINEAS FAC CODFAC NUMBER(6) LINEA NUMBER(2) CANT NUMBER(5) CODART VARCHAR2(8) PRECIO NUMBER(7,2) DTO NUMBER(2) TABLA ARTICULOS CODART VARCHAR2(8) DESCRIP VARCHAR2(40) PRECIO NUMBER(7,2) STOCK NUMBER(6) STOCK_MIN NUMBER(6) TABLA FACTURAS CODFAC NUMBER(6) FECHA DATE CODCLI NUMBER(5) IVA NUMBER(2) DTO NUMBER(2)

Clave Ajena ¿Cómo se sabe de qué cliente es cada factura? ¿y cómo se sabe qué artículo se pide en cada línea? ... mediante las claves ajenas. Una clave ajena es una o varias columnas que hacen referencia a la clave primaria (CP) de otra tabla. CLIENTES(codcli, nombre, ...) FACTURAS(codfac, fecha, codcli, ...)

La base de datos de prácticas TABLA CLIENTES CODCLI NUMBER(5) NOMBRE VARCHAR2(50) DIRECCION VARCHAR2(50) CODPOSTAL VARCHAR2(5) CODPUE VARCHAR2(5) TABLA LINEAS FAC CODFAC NUMBER(6) LINEA NUMBER(2) CANT NUMBER(5) CODART VARCHAR2(8) PRECIO NUMBER(7,2) DTO NUMBER(2) TABLA ARTICULOS CODART VARCHAR2(8) DESCRIP VARCHAR2(40) PRECIO NUMBER(7,2) STOCK NUMBER(6) STOCK_MIN NUMBER(6) TABLA FACTURAS CODFAC NUMBER(6) FECHA DATE CODCLI NUMBER(5) IVA NUMBER(2) DTO NUMBER(2)

Clave Ajena No necesariamente. Puede ser nula en las facturas de clientes que se han borrado. De 1 a 1 ó de 1 a muchos. No, pero así el esquema de la BD es más legible. No, puede haber clientes que no tengan facturas. Sí, un cliente puede tener varias facturas. Clave Ajena El cliente que paga la factura. FACTURAS.codcli es una CAj a CLIENTES: El tipo de datos de CAj y CP debe ser el mismo. Los valores que aparecen en la CAj deben coincidir con alguno de los valores de la CP (integ. referencial). ¿Todos los valores de la CP deben aparecer en la CAj? En la CP no se pueden repetir valores ¿en la CAj se pueden repetir valores? Una CAj representa una relación entre entidades. La CP es siempre no nula ¿las CAj también? ¿Se tienen que llamar igual una CAj y la CP que referencia?

Evitando problemas ... CLIENTES(codcli,nombre,..., población,provincia) Al dar de alta un cliente, hay que escribir su población y su provincia. Posibles problemas: ¿ Y si no escribimos el nombre de una población siempre igual (Vila-real / Villarreal) ? ¿ Y si nos equivocamos de provincia con una población? Solución: “repartir” en varias tablas.

Modelo Relacional: La BD de prácticas TABLA CLIENTES CODCLI NUMBER(5) NOMBRE VARCHAR2(50) DIRECCION VARCHAR2(50) CODPOSTAL VARCHAR2(5) CODPUE VARCHAR2(5) TABLA PUEBLOS CODPUE VARCHAR2(5) NOMBRE VARCHAR2(40) CODPRO VARCHAR2(2) TABLA LINEAS FAC CODFAC NUMBER(6) LINEA NUMBER(2) CANT NUMBER(5) CODART VARCHAR2(8) PRECIO NUMBER(7,2) DTO NUMBER(2) TABLA PROVINCIAS CODPRO VARCHAR2(2) NOMBRE VARCHAR2(30) TABLA ARTICULOS CODART VARCHAR2(8) DESCRIP VARCHAR2(40) PRECIO NUMBER(7,2) STOCK NUMBER(6) STOCK_MIN NUMBER(6) TABLA FACTURAS CODFAC NUMBER(6) FECHA DATE CODCLI NUMBER(5) IVA NUMBER(2) DTO NUMBER(2)

Observaciones ARTICULOS.precio : precio a día de hoy. LINEAS_FAC.precio : precio al que se vendió el artículo en la factura. Era el precio que había en la factura en la fecha de la misma. FACTURAS.dto : descuento sobre el importe total de la factura. LINEAS_FAC.dto : descuento sobre el importe del artículo que se pide en la línea.

Introducción a SQL SQL (Structured Query Language) es un lenguaje estándar para trabajar con bases de datos relacionales (Oracle, Informix, MySQL, dBase IV, DB2, PostgreSQL, Access, ...). Permite: Definición de datos Consultas de datos Manipulación de datos Control de acceso ... ...

SQL: Crear una tabla CREATE TABLE clientes ( codcli NUMBER(5), nombre VARCHAR2(50), direccion VARCHAR2(50), codpostal VARCHAR2(5), codpue VARCHAR2(5), CONSTRAINT cp_clientes PRIMARY KEY (codcli), CONSTRAINT ca_cli_pue FOREIGN KEY (codpue) REFERENCES pueblos);

SQL: Insertar datos en una tabla INSERT INTO clientes (codcli, nombre, direccion, codpostal, codpue) VALUES ( 111 , 'GARCIA GIRONA, MANUEL' , 'BARON DE CARCER, 88-8', '05933', '31527');

SQL: Consultar una tabla SELECT codcli, nombre, codpostal FROM clientes WHERE codpue LIKE ‘31%’ AND codcli BETWEEN 100 AND 250 ORDER BY codpostal, nombre;

SQL: Actualizar datos de una tabla UPDATE clientes SET codpostal = ‘12100’ WHERE codpue = ‘22517’;

SQL: Borrar datos de una tabla DELETE FROM clientes WHERE codpostal LIKE ‘46%’;

SQL: Eliminar una tabla DROP TABLE clientes; ¡SQL es mucho más, pero esto es lo básico! ¿Cómo hablamos? Yo SGBDR SQL BD

Introducción a SQL*Plus SQL*Plus es una herramienta de Oracle. Permite “hablar en SQL” con el SGBD: Introducir, editar, almacenar, recuperar y ejecutar sentencias SQL. Dar formato a los resultados de las consultas, almacenarlos, imprimirlos... Visualizar las definiciones de columna de las tablas.

Introducción a SQL*Plus Para trabajar con Oracle en anubis: Introducir al final del fichero .profile o bien .bashrc: . /oracle/variables Ejecutarlo: . .profile o bien . .bashrc Ejecutar SQL*Plus: $> sqlplus usuario: orause password: orause SQL> ¡¡sólo el primer día!!

Introducción a SQL*Plus Ejecutando una sentencia SQL: SQL> SELECT * FROM provincias; Algunas órdenes de SQL*Plus: Editar un fichero: SQL> ed fichero Ejecutar una sentencia almacenada en un fichero: SQL> start fichero Visualizar definiciones de columna de una tabla: SQL> desc tabla Salir de SQL*Plus: SQL> quit ó también SQL> exit

Consulta de datos: SELECT Formato básico de una sentencia SELECT: SELECT [ DISTINCT ] { * | col [ , col ] } FROM tabla [ WHERE condición_búsqueda ] ;

Consulta de datos: SELECT Algunas sentencias sencillas: SELECT * FROM clientes; TABLA CLIENTES RESULTADO

Consulta de datos: SELECT SELECT nombre, codpostal FROM clientes; TABLA CLIENTES RESULTADO

Consulta de datos: SELECT SELECT codpostal FROM clientes; TABLA CLIENTES RESULTADO

Consulta de datos: SELECT SELECT DISTINCT codpostal FROM clientes; TABLA CLIENTES RESULTADO

Consulta de datos: SELECT SELECT codpue FROM clientes WHERE codcli < 25; TABLA CLIENTES RESULTADO

Consulta de datos: SELECT SELECT NVL(codpue, ’Desconocido!!!’) FROM clientes WHERE codcli < 25; TABLA CLIENTES RESULTADO

Consulta de datos: SELECT TABLA CLIENTES SELECT * FROM clientes WHERE codpue IS NULL; RESULTADO