Sie sind auf Seite 1von 33

SQL Pgina 1

Conceptos Avanzados de Bases de datos


(1) Introduccin a las Bases de Datos (2) Lenguaje Estndar de Consultas SQL

Definicin formal
Es un conjunto exhaustivo (en su modelizacin del mundo real) de datos estructurados, fiables y homogneos, organizados independientemente de su utilizacin y de su implementacin en mquina, accesibles en tiempo real, compartibles por usuarios concurrentes que tienen necesidades de informacin diferentes y no predecibles en el tiempo.

SQL Pgina 2

Propiedades de los datos


SQL Pgina 3

Estructurados independientemente de las aplicaciones y d Presentan la menor redundancia posible. Son compartidos por varios usuarios y/o aplicaciones. Estn bajo un control centralizado.

Bases de Datos Relacionales

SQL Pgina 4

Los sistemas relacionales operan conceptualment Las tablas permiten representar la informacin de Es posible acceser a la informacin contenida en

Caractersticas de las Tablas

SQL Pgina 5

Una tabla est formada por Filas y Columnas. Las Filas son equivalentes a los Registros de un ar Las Columnas son equivalentes a los Campos (qu

Ejemplo de Tabla
Clave Primaria DNI 2341167 5625711 6718273 Campo Nombre Pedro Mara Jos Campo Apellido Alonso Gmez Lpez Campo Telfono 6273652 6718234 6715629 Campo Nombre Campos Registro Registro Registro

SQL Pgina 6

El concepto: CLAVE

SQL Pgina 7

Una clave es una referencia que se utiliza para ide La Clave Primaria o principal es la que es mni

La Clave Primaria
El nombre de la Tabla. La columna. El valor de la clave.

SQL Pgina 8

Es importante porque permite acceder a cada uno

Leyes bsicas de los SBDR

SQL Pgina 9

La B de D contendr generalmente muchas Tablas. Una Tabla slo contiene un nmero fijo de Campos. El nombre de los Campos que componen una Tabla es distinto. Cada Registro de una Tabla es nico. El orden de los Registros y el orden de los Campos de una Tabla no est determinado. Para cada Campo existe un conjunto de valores posibles (Dominio).

Diseo de B de D Relacionales I
Informacin disponible. Informacin que necesitamos.

SQL Pgina 10

Planificacin del tipo de informacin a almacenar

Esquematizar sobre papel el problema. Considerar los datos a gestionar y estimar el espa

Diseo de B de D Relacionales II
Campos
Nombre del campo Tipo del campo Anchura del campo

SQL Pgina 11

Los dos aspectos mas importantes a la hora del di

Datos

Caracteres (texto), valores numricos, fechas, inform

Fases del diseo de una B de D


Definicin de los datos (anlisis de los datos existentes). Refinamiento de los datos (depuracin de los datos necesarios). Establecer relaciones entre los campos.

SQL Pgina 12

Relaciones (ejemplo 1)

SQL Pgina 13

Cada vez que se de de alta a un paciente hay que Por ello conviene separar los datos en dos Tablas:
Pacientes Mdicos

Relaciones (ejemplo 2)
Tabla Pacientes
Nmero SS paciente Nombre del paciente Apellidos del paciente Domicilio Poblacin Provincia Cdigo postal Nmero de Telfono Procedencia Fecha de ingreso Cdigo del mdico responsable Nmero de planta Nmero de cama Nmero de historial clnico

SQL Pgina 14

Tabla mdicos
Cdigo del mdico responsable Nombre Apellidos Especialidad Nmero de colegiado Cargo Observaciones

Relaciones (ejemplo 3)
Se ha aadido un cdigo de identificacin del mdico responsable, presente en ambas Tablas. Se ha aadido el Nmero de la SS para identificar de forma nica a cada paciente. Observando la Tabla pacientes se ve que esta se puede descomponer en:
Tabla Pacientes (datos de identificacin) Tabla Ingresos

SQL Pgina 15

Relaciones (ejemplo 4)
Tabla pacientes
Nmero de la SS Nombre del paciente Domicilio Poblacin Provincia Cdigo postal Nmero de telfono Nmero de historial clnico Observaciones

SQL Pgina 16

Tabla ingresos

Nmero de historial clnico Procedencia Fecha de ingreso Cdigo de identificacin del m Nmero de planta Nmero de cama Observaciones

Lenguaje SQL. Introduccin BD


Estructura de la informacin en una BD (I)
Tabla: productos (cod_prod, nombre, precio) cod_prod nombre precio P1 Camiseta 45 Pantaln 80 P2
P3

SQL Pgina 17

Chaqueta 100 Tabla bidimensional con atributos (columnas) y los datos correspondientes (filas) Columnas: atributos que reflejan las caractersticas o propiedades de la tabla Filas: contienen los datos que describen los productos Clave (key): Identificador de la tabla (formado por uno o ms atributos de la tabla)

Lenguaje SQL. Introduccin BD


Estructura de la informacin en una BD (II)
Relacin entre Tablas:

SQL Pgina 18

empleados (cod_emp, nombre, sueldo, cod_dept, cod_pro) departamentos (cod_dept, nombre, edificio, ciudad) proyectos (cod_pro, nombre, presupuesto) Un empleado pertenece a un nico departamento. Un empleado est asignado a un proyecto.

Lenguaje SQL. Introduccin BD


Estructura de la informacin en una BD (II)
Relacin entre Tablas (empleados departamentos)

SQL Pgina 19

empleados (cod_emp, nombre, sueldo, cod_dept, cod_pro) departamentos (cod_dept, nombre, edificio, ciudad) proyectos (cod_pro, nombre, presupuesto) El atributo cod_dept de la tabla empleados hace referencia a la tabla departamentos

Lenguaje SQL. Introduccin BD


Estructura de la informacin en una BD (II)

SQL Pgina 20

Relacin entre Tablas (empleados proyectos)


empleados (cod_emp, nombre, sueldo, cod_dept, cod_pro) departamentos (cod_dept, nombre, edificio, ciudad) proyectos (cod_pro, nombre, presupuesto) El atributo cod_pro de la tabla empleados hace referencia a la tabla proyectos

Lenguaje SQL. Introduccin

SQL Pgina 21

SQL = Standard Query Language Actualmente es el lenguaje estndar para los sistemas de base de datos relacionales
Aceptado por ANSI / X3H2 Versiones: SQL/86, SQL2 (92), SQL3 (99) Pero existen variantes del lenguaje en funcin del Sistema de Gestin de Base de Datos (SGBD) !!!
Trabajaremos con MySQL

Lenguaje SQL. Introduccin


Utilizacin
Permite acceder a los datos mediante un lenguaje bastante cercano al lenguaje humano
Ejemplo: Seleccionar todos los productos con un precio mayor a 50:

cod_prod nombre precio

SQL Pgina 22

P1 Camiseta 45 P2 Pantaln 80 P3 Chaqueta 100 SELECT cod_prod, nombre, precio FROM Productos WHERE precio > 50;

Lenguaje SQL. Introduccin


Componentes del lenguaje SQL
DML (Data Manipulation Language)
Manipulacin de los datos

SQL Pgina 23

Seleccionar / Aadir / Modificar / Borrar

DDL (Data Definition Language)


Creacin de objetos de la BD
Creacin de tablas, ...

DCL (Data Control Language)


Control de acceso de los datos de los usuarios

Lenguaje SQL. DML


DML = Data Manipulation Language (Manipulacin de los Datos)
Select
Permite hacer consultas en la BD, obteniendo una nueva tabla con los resultados de la consulta

SQL Pgina 24

Insert
Permite aadir datos en la BD (filas de una tabla)

Update
Permite modificar datos en la BD (filas de una tabla)

Delete
Permite borrar datos en la BD (filas de una tabla)

Lenguaje SQL. DML (Select)


Consulta de datos: SELECT
Notacin: SELECT <nombre_cols> FROM <nombre_tablas>; Ejemplo sobre la tabla empleados:

SQL Pgina 25

empleados (cod_emp, nombre, sueldo, cod_dept, cod_pro)

SELECT nombre, sueldo FROM empleados;

Lenguaje SQL. DML (Select)


Para mostrar todos los atributos (columnas) de la tabla empleados: SELECT * FROM empleados; Para evitar mostrar filas duplicadas: SELECT DISTINCT nombre FROM empleados;

SQL Pgina 26

Lenguaje SQL. DML (Select)


Filtros (WHERE). Aplicar condiciones (o
restricciones) en la seleccin de datos Notacin: SELECT <nombre_cols> FROM <nombre_tablas> WHERE <condiciones_booleanas>; Ejemplo: SELECT cod_emp, sueldo FROM empleados WHERE nombre = "Josep";

SQL Pgina 27

Lenguaje SQL. DML (Select)


= > < >= <= <>

SQL Pgina 28

Operadores de comparacin aplicables en la clusula WHERE

Operadores lgicos aplicables en la clusula WHERE


AND / OR / NOT

Otros predicados aplicables en la clusula WHERE


<atributo> BETWEEN <limit_1>AND <limit_2> {Rango de valores} <atributo> LIKE <expr> {cadena de caracteres } Comodines: %, _ <atributo> IS [NOT] NULL {consultar si el atributo tiene valor o no}

Lenguaje SQL. DML (Select)


SQL Pgina 29

Ejemplos: AND: SELECT cod_emp, sueldo FROM empleados WHERE nombre = "Josep" AND cod_emp >= 3; BETWEEN: SELECT * FROM empleados WHERE cod_emp BETWEEN 2 AND 5; LIKE: SELECT * FROM empleados WHERE nombre LIKE "M%" AND cod_emp >= 3;

Lenguaje SQL. DML (Select)


Ejemplos: IS (NOT) NULL: SELECT * FROM empleados WHERE cod_pro IS NOT NULL; SELECT * FROM empleados WHERE cod_pro IS NULL;

SQL Pgina 30

Lenguaje SQL. DML (Select)


Ordenacin de los datos presentados (ORDER BY)

SQL Pgina 31

Notacin: SELECT <nombre_cols> FROM <nombre_tablas> [ WHERE <condiciones_booleanas> ] ORDER BY <atributo_1>, ..., <atributo_N>; Ejemplo: SELECT nombre, sueldo FROM empleados ORDER BY sueldo DESC; {por defecto es ASC}

Lenguaje SQL. DML (Select)


Funciones de agregacin

SQL Pgina 32

COUNT(<fila>) {devuelve el total de filas seleccionadas} SUM(<columna>) {suma los valores de una columna} MIN(<columna>) {devuelve valor mnimo columna} MAX(<columna>) {devuelve valor mximo columna} AVG(<columna>) {devuelve la mediana de la columna} ... Ejemplos:

Ejercicios

SQL Pgina 33

Das könnte Ihnen auch gefallen