SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
APLICADA A BASES DE DATOS
APLICADA A BASES DE DATOS

Por
LAURA NOUSSAN LETTRY

SISTEMAS DE BASES DE DATOS RELACIONALES
Parte 2

Aviso Legal
El presente libro electrónico
se distribuye bajo
Attribution-NonCommercialNoDerivs 3.0 Unported
POO APLICADA A BASES DE DATOS

ÍNDICE

SISTEMAS DE BASES DE DATOS RELACIONALES – PARTE 2
Introducción
1. SQL (Lenguaje de Consultas Estructurado). Concepto y Sintaxis. Tipos de
1

Lenguaje SQL: DML y DDL.

2. SQL – DML: Sentencia SELECT: básica, con proyección, con restricción y
mixta; distintos casos sobre una tabla o más tablas. Utilización de cláusulas
para ordenamiento y agrupamiento.
Sentencia INSERT, Sentencia UPDATE y Sentencia DELETE.
3. SQL – DDL: Sentencias CREATE, ALTER, RENAME y DROP aplicadas a
Tablas y Vistas.

2

11

FUENTES Bibliográficas Consultadas
1. Ayuda en línea MySQL Community Edition
2. Ayuda en línea SQL Server y Libros en Pantalla

BIBLIOGRAFÍA para el Alumno
1.

NOUSSAN LETTRY, Laura y otros, Secuencia Didáctica de Comandos SQL Ejemplos y Resultados (Cátedra de Gestión de Datos, 3º Año, Ingeniería en
Sistemas de Información UTN – FRM)

2.

NOUSSAN LETTRY, Laura, Conexiones JDBC con MySQL y SQL Server
(Mendoza, 2013)

(*)

3. BrowserSQL versión 3.1 y su Tutorial
4. MySQL Community Edition y WorkBench
5. SQL Server Express Edition

ACTIVIDADES
Unidad 1

Parte 2

Tareas
Lectura, trabajos, prácticas propuestas en el Website de la Materia.

(*): En el Website de la materia:
http://www.lnoussanl.com.ar/java&bd
http://www.lnoussanl.com.ar/javabd/
POO APLICADA A BASES DE DATOS

SISTEMAS DE BASES DE DATOS RELACIONALES – PARTE 2
INTRODUCCIÓN
Ahora, que ya hemos encarado el mundo de los Sistemas de Bases de Datos
Relacionales desde un sustento teórico práctico, lo que haremos es seguir los
pasos necesarios para crear un Sistema de Bases de Datos relacional físico.
Para ello utilizaremos dos DBMS que actualmente son muy utilizados:
MySQL y SQL Server Express
Aprenderán también que en el mundo real no siempre se siguen los estándares
y que además el software, como casi todo en la vida, ambos tienen sus
ventajas y desventajas; lo que es cierto también para otros RDBMS como son
Oracle o DB2.
Una diferencia básica
puede correr sobre
Sistemas Operativos
distribución gratuita,
utilizado en la Web.

entre ambos es que MySQL es multiplataforma; es decir
Sistemas Operativos basados en Windows como en
basados en Linux, motivo por el cual, y por ser de
bajo determinadas circunstancias, es el RDBMS más

La versión SQL Server corre sobre Sistemas Operativos Windows y la versión
Express por cuanto es de distribución gratuita.
Para poder utilizar SQL en forma independiente del DBMS, de modo tal que nos
sirva para fines didácticos, hemos utilizado un software que hemos
desarrollado: BrowserSQL versión 3.1.
Dicho software permite conectarse a Access, MySQL y SQL Server y está
disponible para su descarga en forma gratuita juntamente con su tutorial
desde nuestro sitio web: http://www.lauranoussanlettry.com.ar
POO APLICADA A BASES DE DATOS

y

SISTEMAS DE BASES DE DATOS RELACIONALES

SQL. Concepto

Le
ttr

1- SQL (Lenguaje de Consultas Estructurado)

SQL es un lenguaje de alto nivel creado para el tratamiento de datos almacenados en bases de datos
relacionales.
Es un lenguaje de tipo declarativo; es decir, no es procedural o imperativo, y permite trabajar con
datos a nivel de conjunto, a diferencia de los lenguajes imperativos que trabajan en torno al registro
individual y que requieren de lógica procedural para el tratamiento de los datos.
Está basado en álgebra relacional y cálculo relacional orientado a tuplas.
Sus instrucciones básicas se pueden dividir en dos grupos:

an

1. DDL (Data Definition Language): conjunto de instrucciones que permiten definir tablas,
índices, etc.
2. DML (Data Manipulation Language): se utilizan para actualizar información en la base de datos
(insertar, eliminar o modificar filas en tablas) y para extraer información de la misma
mediante consultas.

ss

Además de estos grupos existen otros, cuyas instrucciones permiten realizar otras operaciones
aplicadas al DBMS y/o a sus bases de datos, siendo uno de los más importantes la creación de
usuarios, sus roles y niveles de seguridad; que por su complejidad y extensión, exceden el desarrollo
de la materia.

ou

Sintaxis SQL

aN

Toda la definición de la sintaxis y uso de SQL está incluida en estándares que van actualizándose
periódicamente.
Actualmente
el
último
estándar
publicado
por
la
ISO
es
de
2013
(http://www.iso.org/iso/home/search.htm?qt=SQL&sort=rel&type=simple&published=on)
puesto que debido a los avances tecnológicos se sigue trabajando en el lenguaje, inclusive en los
OODBMS, por lo tanto no todos los papers y estándares se refieren a RDBMS.
Muchos de los RDBMSs del mercado satisfacen gran parte de estándares anteriores (SQL/92, SQL/99) y
otros este último estándar. Pero además, varios de los RDBMSs líderes en el mercado tales como DB2 de
IBM, ORACLE, SQL Server de Microsoft y otros, tienen funcionalidades que van más allá de los estándares
y, en base a estas funcionalidades, muchas veces se elaboran nuevos estándares.

ur

Para encarar el estudio de la sintaxis SQL se utilizará el material disponible en la bibliografía y que puede
descargarse desde el sitio web: Secuencia Didáctica

La

Tipos de Lenguajes SQL: DML y DDL
Como ya vimos, SQL se divide en dos grandes grupos de sentencias: SQL-DDL y SQL-DML, pero no
son las únicas, existen otras, que no veremos aquí.
Ahora ¿qué sentencias están incluidas en SQL-DDL y cuáles en SQL-DML?

of.

LENGUAJE SQL

Pr

SQL-DDL

SQL-DML

SENTENCIAS

OBJETOS

CREATE
ALTER
RENAME
DROP
SELECT (en cualquiera
de sus formas)

Tablas, vistas e índices

INSERT
UPDATE
DELETE

Tablas, vistas e índices

Tablas y vistas

Sistemas de Bases de Datos Relacionales – parte 2 pág. 1/18
POO APLICADA A BASES DE DATOS
2. SQL – DML: Sentencias SELECT, INSERT, UPDATE y DELETE

y

Por una cuestión diáctica empezaremos con las sentencias básicas que se utilizan manipular los datos de
las tablas de una base de datos.

Le
ttr

Las sentencias que utilizaremos y que mostramos en los diferentes ejemplos suponen la previa
creación de los objetos, lo que se verá recién en el desarrollo de SQL-DDL.
Los ejemplos se han llevado a cabo utilizando el BrowserSQL, por lo que recomendamos leer el
Tutorial.
Como guía, las conexiones con un controlador o driver JDBC puro se debe indicar:
1) el DBMS
2) el usuario
3) su contraseña

an

La cadena de conexión para el DBMS es en forma genérica así:

jdbc:nombre_dbms://servidor:puerto
MySQL: jdbc:mysqlL://localhost:3306/nombre_base_datos

SQL Server: jdbc:sqlserver://localhost:1433;databaseName=nombre_base_datos

Sentencia SELECT sobre una tabla:

ou

Sentencia básica

ss

Los puertos consignados son los que se instalan y configuran por omisión. En el caso de SQL Server la
configuración del puerto y de la capa de red TCP/IP es más complicado. Recomiendo leer la
bibliografía recomendada sobre configuración del DBMS.

Sintaxis: SELECT * FROM tabla

aN

El resultado de esta sentencia es el total de los registros de la tabla

Pr

of.

La

ur

Ejemplo: mostrar todos los registros o tuplas de la tabla Localidades

Sistemas de Bases de Datos Relacionales – parte 2 pág. 2/18
La misma consulta utilizando SQL Server

ou

Sentencia SELECT con proyección

ss

an

Le
ttr

y

POO APLICADA A BASES DE DATOS

Sintaxis: SELECT col1,col4,col6 FROM tabla

aN

El resultado de aplicar esta sentencia es que obtenemos todas las filas pero se muestran sólo las
columnas indicadas.

Pr

of.

La

ur

Ejemplo: mostrar el DNI, apellido y nombre de los alumnos

Sistemas de Bases de Datos Relacionales – parte 2 pág. 3/18
POO APLICADA A BASES DE DATOS
Sentencia SELECT con restricción

y

Sintaxis: SELECT * FROM tabla WHERE condición

aN

Sentencia SELECT mixta

ou

ss

an

Ejemplo: mostrar los alumnos cuya idlocalidad es igual o mayor a 2

Le
ttr

El resultado de aplicar la sentencia es que se devuelven sólo las filas o tuplas que coinciden con la
condición.

Sintaxis: SELECT col1,col4,col6 FROM tabla WHERE condición
El resultado de esta sentencia es que se devuelven las tuplas que coinciden con la expresión de la
condición y sólo se muestran los datos de las columnas o atributos indicados.

Pr

of.

La

ur

Ejemplo: mostrar el dni, apellido, nombre de los alumnos cuyo idlocalidad es igual a 1

Sistemas de Bases de Datos Relacionales – parte 2 pág. 4/18
POO APLICADA A BASES DE DATOS
Sentencia SELECT sobre más de una tabla

Le
ttr

Sintaxis: SELECT tabla1.col2, tabla2.col1, tabla3.col2 FROM tabla1,
tabla2, tabla3 WHERE tabla1.id_clave = tabla2.id_clave
AND tabla2.id_clave = tabla3.id_clave

y

En este caso utilizaremos la Unión de tipo join, es decir aplicaremos las nociones teóricas vistas sobre
claves primarias y foráneas.

ou

ss

an

Ejemplo: mostrar el dni, apellido, nombre, dirección y nombre de la localidad de los alumnos

aN

En este ejemplo la unión es de dos tablas. Así mismo hemos utilizado alias de tablas, lo
cual hace mucho más fácil la escritura y también la consulta más rápida.

Ejemplo: mostrar los alumnos inscriptos en las materias, indicando el nombre de la materia, el dni,

Pr

of.

La

ur

el apellido y el nombre de los alumnos

Notar que para que se pueda llevar a cabo la consulta es necesario unir tres tablas.

Ahora, por ahí sería mejor ordenar los resultados por nombre de materia, cosa que se puede llevar a
cabo con la siguiente senencia

Sistemas de Bases de Datos Relacionales – parte 2 pág. 5/18
POO APLICADA A BASES DE DATOS

… ORDER BY col1,col2 [ ASC | DESC] siendo predeterminada la

Le
ttr

La sintaxis de esta cláusula es
ordenación ascendente.

y

Cláusula ORDER BY

Ejemplo: el mismo ejemplo anterior ordenando en forma ascendente la consulta en función del

aN

ou

ss

an

nombre de la materia

Pr

of.

La

ur

Si también quisiéramos ordenar por apellido:

Sistemas de Bases de Datos Relacionales – parte 2 pág. 6/18
POO APLICADA A BASES DE DATOS
Cláusula LIKE

y

Esta cláusula permite realizar una restricción donde la condición implica la comparación entre
cadenas. Básicamente la sintaxis utiliza el carácter comodín %.

Caso 1: conocer los alumnos cuyo nombre empieza con la letra M
SELECT * FROM alumnos WHERE nombre LIKE ‘M%’

Le
ttr

Hay tres casos básicos. Tomaremos como ejemplo la tabla alumnos y el atributo nombre o el atributo
apellido.

aN

ou

ss

an

Las comillas indican que es una cadena y el símbolo % después de la letra M indica al DBMS que no
interesa el resto de la cadena.

Caso 2: conocer los alumnos cuyo apellido termina en EZ, la consulta será:

Pr

of.

La

ur

SELECT * FROM alumnos WHERE apellido LIKE ‘%EZ’

Sistemas de Bases de Datos Relacionales – parte 2 pág. 7/18
POO APLICADA A BASES DE DATOS

y

Caso 3: si se quiere saber qué alumnos tienen en el apellido la CH

ss

an

Le
ttr

SELECT * FROM alumnos WHERE apellido LIKE ‘%CH%’

ou

Como podemos ver no hay ningún alumno que concuerde con la consulta

Sentencia INSERT:

aN

Esta sentencia sirve para agregar registros a una tabla.
La sintaxis es:

Sintaxis:
INSERT INTO nombreTabla (atributo1,atributo2, …, atributon)
VALUES(valor_atributo1, valor_atributo2, …, valor_atributon)

ur

Como material complementario se distribuyen los archivos de script. Dichos archivos han seguido la
secuencia lógica de inserción; esto quiere decir, que para insertar datos en las tablas tenemos que tener
en cuenta el diseño lógico, en particular el MER: hay que empezar por las tablas primarias y recién después
por las tablas derivadas o dependientes.

La

En base a nuestro modelo de datos la secuencia sería así: Tabla Localidades, Tabla Alumnos, Tabla
Materias y finalmente la Tabla Notas; que es la que hemos seguido en los archivos de Scripts.
También se podría haber partido de esta manera: Tabla Materias, Tabla Localidades, Tabla Alumnos y
finalmente la Tabla Notas, pero nos ha parecido más didáctica la primera alternativa.
Aprovecharemos la oportunidad para agregar un alumno que pueda cumplir con la condición de la consulta
anterior.

of.

El alumno a ingresar tendrá estos datos: dni: 45200104, apellido: SANCHEZ, nombre: JUAN IGNACIO,
la fecha de nacimiento: 28/12/1995, la direccion: San Luis 355, idlocalidad=1, email:
jisanchez@hotmail.com y telefono: 4235444

Pr

La sentencia por lo tanto es:
INSERT INTO ALUMNOS(DNI, APELLIDO, NOMBRE, FECHA_NAC, EMAIL, TELEFONO, DIRECCION,
IDLOCALIDAD) VALUES(45200104,'SANCHEZ','JUAN IGNACIO','1995/12/28','San Luis
355','jisanchez@hotmail.com','4235444')

Sistemas de Bases de Datos Relacionales – parte 2 pág. 8/18
an

Le
ttr

y

POO APLICADA A BASES DE DATOS

La

ur

aN

ou

ss

Hemos insertado el alumno en la base de datos que tenemos en MySQL. Si se hace una consulta
sobre la tabla tendremos el alumno en cuestión agregado:

Notar que en la cadena de conexión, en lugar de utilizar el nombre del servidor hemos escrito
localhost; o sea es lo mismo en este DBMS, por cómo está configurado.

Pr

of.

Ahora si aplicamos el tercer caso de la sentencia con LIKE, nos debería devolver un solo
registro, el que acabamos de ingresar.

Sistemas de Bases de Datos Relacionales – parte 2 pág. 9/18
Sentencia UPDATE:

ss

an

Le
ttr

y

POO APLICADA A BASES DE DATOS

Esta sentencia nos permite modificar uno o más registros que ya existen en la tabla.

ou

La sintaxis para modificar un registro en particular es:
Sintaxis:

aN

UPDATE nombreTabla SET atributo1=nuevo_valor_atributo1,
atributo3=nuevo_valor_atributo3,
atributon = nuevo_valor_atributon WHERE atributo_que_esPK=valor

Para modificar más de un registro implica que no nos interesa la clave primaria sino que se cumpla una
condición particular con uno o más atributos. Esto lo veremos con ejemplos, ya que así es mucho más
claro.

Pr

of.

La

ur

Vamos a modificar un dni, que a su vez es clave primaria puesto que está mal ingresado. En teste caso
también hay que tener en cuenta que si el alumno está inscripto en las materias, habrá que modificar
también la tabla Notas, ya que en esta tabla dni es una clave foránea.

Sistemas de Bases de Datos Relacionales – parte 2 pág. 10/18
POO APLICADA A BASES DE DATOS
DELETE:

Le
ttr

y

La sentencia básica para eliminar un registro tiene la siguiente sintaxis:

Sintaxis:
DELETE FROM nombreTabla WHERE atributo_que_esPK=valor

Hay que tener mucho cuidado!! Porque si nos olvidamos de establecer qué registro queremos borrar, y
hacemos algo así:
DELETE FROM nombreTabla

¡¡¡OJO!!
Porque eliminaríamos todos los registros de la tabla.

an

Hay una situación particular donde no se pueden borrar los registros de la tabla. Sería el caso de la tabla
Notas, que es dependiente de la Tabla Alumnos. Esto se debe al diseño lógico y físico de la base de
datos, y a las normas de integridad referencial que hemos utilizado por omisión. Es así que, mientras
existan alumnos, no se podrán borrar sus notas.

3. SQL – DDL: Sentencias CREATE, ALTER, DROP y RENAME

ou

ss

Las sentencias que vamos a ver son: CREATE, ALTER, DROP y RENAME
El ejemplo está basado en el diseño lógico y físico para la BD Escuela. Los mismos se han llevado a
cabo utilizando el BrowserSQL así como los dos DBMS: MySQL y SQL Server, ya que ambos DBMS
cuentan con un entorno visual ágil y fácil además de utilizar.
En el website hay dos videos que muestran cómo ejecutar las sentencias de declaración de datos,
tanto para el caso de MySQL como de SQL Server

Sentencia CREATE

aN

Esta sentencia nos permite crear la misma base de datos, crear tablas, vistas, etc. En los ejemplos
veremos la creación de la Base de Datos Escuela.
CREACIÓN DE LA BASE DE DATOS

CREATE nombreBD

ur

CREACIÓN DE TABLAS
La sentencia tiene esta sintaxis:

of.

La

CREATE nombreTabla (
atributo1 [NOT NULL][DEFAULT],
atributo2 [NOT NULL][DEFAULT],
… atributoN [NOT NULL][DEFAULT],
CONSTRAINT nombrePK PRIMARY KEY(atributoPK),
[CONSTRAINT nombreFK FOREIGN KEY(atributoFK) REFERENCES nombreTablaR
(atributoPK_tablaR)])

Pr

El presente ejemplo tiene por finalidad crear una tabla para usuarios.
El diseño lógico me indica que la tabla usuarios debe tener dos atributos por lo menos:
nom_usuario: que sería de tipo alfanumérico, con un máximo de 8 caracteres, y sería la clave
primaria
clave: que representaría la clave o contraseña del usuario y supondremos que el dominio es
alfanumérico. Aquí lo importante es que la clave siempre tiene que tener 8 caracteres, además
de ser un campo obligatorio.

El diseño físico:
Nom_usuario: tipo de datos: VARCHAR(8), es la clave primaria que se nombra PK_USUARIO

Sistemas de Bases de Datos Relacionales – parte 2 pág. 11/18
POO APLICADA A BASES DE DATOS

y

Clave: tipo de datos: VARCHAR(8), NOT NULL y hay que establecer una restricción (CONSTRAINT) de
tipo CHECK para que el usuario siempre ingrese una clave que tenga 8 caracteres y no menos o más.

La

ur

aN

ou

ss

an

Veremos que ejecutamos la sentencia CREATE en los dos DBMS

Le
ttr

La sentencia SQ
CREATE TABLE USUARIOS(nom_usuario VARCHAR(8), clave VARCHAR(8) NOT NULL,
CONSTRAINT PK_USUARIO PRIMARY KEY(nom_usuario),
CONSTRAINT CHK_clave CHECK(len(clave)=8))

of.

Como no da error, el CONSTRAINT CHEK funciona. Por lo que haremos dos inserciones, una correcta y
otra no. Esto significa, que si funciona la restricción, sólo se debería insertar el primer INSERT y no el
segundo.

Pr

Sin embargo se puede apreciar que nada es perfecto en el mundo real. En el caso de SQL Server se
parsea la restricción CHECK y realmente está previsto por el DBMS ya que no permite realizar la
segunda inserción.
En cambio en MySQL pues se parsea la sentencia pero la misma es ignorada por el DBMS.
Hay dos alternativas, por lo general, para solucionar este tipo de situaciones, donde lo que queremos
es que el usuario no ingrese cualquier valor: en algunos casos se puede utilizar la sentencia DEFAULT
(para aquellos atributos que tal vez el usuario pueda dejar en blanco y que no sean super relevantes
de modo que el DBMS no largue una excepción y se pueda insertar o modificar un registro), en el caso

Sistemas de Bases de Datos Relacionales – parte 2 pág. 12/18
POO APLICADA A BASES DE DATOS

ur

aN

ou

ss

an

Le
ttr

y

planteado, en MySQL, a nivel de base de datos es usar un TRIGGER; la otra alternativa es manejar
este tipo de situaciones mediante la programación de la aplicación Java.

Pr

of.

La

Podemos ver que se insertó nomás, a pesar del CHECK

Sistemas de Bases de Datos Relacionales – parte 2 pág. 13/18
an

Le
ttr

y

POO APLICADA A BASES DE DATOS

ur

aN

ou

ss

Podemos ver que la segunda sentencia no se insertó, tampoco nos avisó nada el
DBMS.
Si vamos al SQL Managment Studio veremos que está agregada la restricción como
parte de la estructura de la tabla:

La

Podemos apreciar dos cosas: aparece el CHECK como restricción dentro de la
estructura de la tabla y además podeos comprobar que la tabla sólo tiene un
registro.

Sentencia ALTER

of.

Sirve para modificar la estructura de un objeto, por ejemplo, una tabla. Entre los diferentes DBMS
suele haber bastante diferencia en la sintaxis de esta sentencia. En el video de Creación de la Base de
datos con MySQL se puede apreciar un ejemplo.

Pr

La sentencia es bastante complicada, pero fácil de implementar cuando de lo que se trata es de crear
por ejemplo un atributo nuevo o una nueva clave. No así cuando se trata de modificar la estructura de
un atributo.
Vamos a modificar la tabla USUARIOS de modo que también tenga otro atributo más, es decir, el
correo electrónico
A este atributo lo nombraremos correo, de tipo alfanumérico con una longitud máxima de 30
caracteres y no nulo.

Sistemas de Bases de Datos Relacionales – parte 2 pág. 14/18
POO APLICADA A BASES DE DATOS

Pr

of.

La

ur

aN

ou

ss

an

Le
ttr

y

Como podemos ver MySQL nos permite agregar la columna aunque ya tengo datos insertados en la
tabla. SQL Server, no lo permite y en su lugar nos devuelve un mensaje bastante largo.

Primero eliminamos todos los registros y luego aplicamos la sentencia ALTER TABLE

Sistemas de Bases de Datos Relacionales – parte 2 pág. 15/18
POO APLICADA A BASES DE DATOS

y

Como se puede ver, para poder agregar la nueva columna tendríamos que eliminar todos los
registros. Como esta no es una tabla que tenga derivaciones, pues es lo mejor.
Es importante notar sí, que la sintaxis de la sentencia es diferente para los DBMS utilizados como
ejemplo.

Le
ttr

Sentencia RENAME
Permite renombrar un objeto

En el caso que quisiéramos renombrar la tabla USUARIOS, la sentencia RENAME funciona en MySQL pero
no en SQL Server
También funciona en otros DBMS como Oracle o DB2
La sintaxis es

ur

Sentencia DROP

aN

ou

ss

an

Sintaxis para renombrar una tabla:
RENAME TABLE nombreTAblaViejo TO nombreTAblaNuevo

La

Esta sentencia permite eliminar un objeto, por ejemplo, una tabla, vista, etc.

Sintaxis para eliminar una tabla:
DROP TABLE nombreTabla

Esta sentencia se utiliza de la misma forma tanto en MySQL como en SQL Server.

of.

Si queremos eliminar la tabla USUARIOS, que es una tabla que no tiene relaciones, pues la sentencia
que deberíamos utilizar es: DROP TABLE USUARIOS.
Sin embargo, como en el caso de las inserciones, si tenemos que tener en cuenta la estructura lógica
de la base de datos. Así como no podemos insertar en la tabla Notas si no tenemos datos en las tablas
primarias, Alumnos y Materias; tampoco podemos eliminar la tabla Materias porque se usa en Notas;
es decir, si quisiéramos eliminar todas las tablas de la base de datos pues deberíamos empezar por
eliminar las tablas derivadas; es decir aquellas que utilizan referencian a otras tablas.

Pr

En las siguientes imágenes se muestra esta secuencia lógica, después de haber eliminado la tabla
usuarios, eliminamos todas las otras:

Sistemas de Bases de Datos Relacionales – parte 2 pág. 16/18
ss

an

Le
ttr

y

POO APLICADA A BASES DE DATOS

Hemos eliminado todas las tablas de la base de datos que tenemos en MySQL. Es importante notar que la
secuencia de eliminación se corresponde en definitiva con el MER.

Pr

of.

La

ur

aN

ou

Ahora vamos a hacer lo mismo en SQL Server, para lo cual, a propósito empezamos mal: queremos
eliminar en primer lugar la tabla MATERIAS, nos da un error que es totalmente lógico puesto que
funciona la integridad referencial:

Sistemas de Bases de Datos Relacionales – parte 2 pág. 17/18
ss

an

Le
ttr

y

POO APLICADA A BASES DE DATOS

Pr

of.

La

ur

aN

ou

Finalmente seguimos la secuencia lógica, y el DBMS puede eliminar las tablas.

Sistemas de Bases de Datos Relacionales – parte 2 pág. 18/18

Contenu connexe

Tendances

Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAlfredo Joya
 
Trabajo de diapositivas sql
Trabajo de diapositivas sqlTrabajo de diapositivas sql
Trabajo de diapositivas sqlAndreita Beltran
 
Nelson chavez base de datos
Nelson chavez base de datosNelson chavez base de datos
Nelson chavez base de datosNelson Chavez
 
1.8 Estructura De Un Sistema De Base De Datos
1.8 Estructura De Un Sistema De Base De Datos1.8 Estructura De Un Sistema De Base De Datos
1.8 Estructura De Un Sistema De Base De DatosCarlos Arturo
 
introduccion a sql
introduccion a sql introduccion a sql
introduccion a sql betom
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETRoberto Taborda
 
Lenguajes de bases de datos
Lenguajes  de bases de datos Lenguajes  de bases de datos
Lenguajes de bases de datos Anita Ortiz
 
Base de datos.
Base de datos.Base de datos.
Base de datos.Luis Reyez
 
Inducción al diseño de una Base de Datos
Inducción al diseño de una Base de DatosInducción al diseño de una Base de Datos
Inducción al diseño de una Base de DatosJorge Luis Chalén
 
Características de las 5 Base de Datos más importantes
Características de las 5 Base de Datos más importantesCaracterísticas de las 5 Base de Datos más importantes
Características de las 5 Base de Datos más importantesRamón Eli Montiel Ariguznaga
 
Las principales bases de datos existentes :V
Las principales bases de datos existentes  :VLas principales bases de datos existentes  :V
Las principales bases de datos existentes :Vjonel666
 
Diapositivas De ExposicióN De Sistemas
Diapositivas De ExposicióN De SistemasDiapositivas De ExposicióN De Sistemas
Diapositivas De ExposicióN De SistemasRafael Silva
 
Base de datos felipe ventura
Base de datos felipe venturaBase de datos felipe ventura
Base de datos felipe venturacontajunta
 
Sistema manejador de bases de datos
Sistema manejador de bases de datosSistema manejador de bases de datos
Sistema manejador de bases de datosdikatherin93
 

Tendances (20)

Base datos f03
Base datos f03Base datos f03
Base datos f03
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
Trabajo de diapositivas sql
Trabajo de diapositivas sqlTrabajo de diapositivas sql
Trabajo de diapositivas sql
 
Nelson chavez base de datos
Nelson chavez base de datosNelson chavez base de datos
Nelson chavez base de datos
 
1.8 Estructura De Un Sistema De Base De Datos
1.8 Estructura De Un Sistema De Base De Datos1.8 Estructura De Un Sistema De Base De Datos
1.8 Estructura De Un Sistema De Base De Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
introduccion a sql
introduccion a sql introduccion a sql
introduccion a sql
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NET
 
Lenguajes de bases de datos
Lenguajes  de bases de datos Lenguajes  de bases de datos
Lenguajes de bases de datos
 
Bases de datos
Bases de datos Bases de datos
Bases de datos
 
Base de datos.
Base de datos.Base de datos.
Base de datos.
 
Inducción al diseño de una Base de Datos
Inducción al diseño de una Base de DatosInducción al diseño de una Base de Datos
Inducción al diseño de una Base de Datos
 
Características de las 5 Base de Datos más importantes
Características de las 5 Base de Datos más importantesCaracterísticas de las 5 Base de Datos más importantes
Características de las 5 Base de Datos más importantes
 
Las principales bases de datos existentes :V
Las principales bases de datos existentes  :VLas principales bases de datos existentes  :V
Las principales bases de datos existentes :V
 
Actividad 4 presentacion escobar
Actividad 4 presentacion escobarActividad 4 presentacion escobar
Actividad 4 presentacion escobar
 
Diapositivas De ExposicióN De Sistemas
Diapositivas De ExposicióN De SistemasDiapositivas De ExposicióN De Sistemas
Diapositivas De ExposicióN De Sistemas
 
Base de datos felipe ventura
Base de datos felipe venturaBase de datos felipe ventura
Base de datos felipe ventura
 
Sql
SqlSql
Sql
 
Sistema manejador de bases de datos
Sistema manejador de bases de datosSistema manejador de bases de datos
Sistema manejador de bases de datos
 
Estructura del sistema de bases de datos
Estructura del sistema de bases de datosEstructura del sistema de bases de datos
Estructura del sistema de bases de datos
 

Similaire à POOABD (POO Aplicada a B Datos) - RDBMS parte 2

Similaire à POOABD (POO Aplicada a B Datos) - RDBMS parte 2 (20)

SQL (Structured Query Language): Informe de Lectura Unidad 3
SQL (Structured Query Language): Informe de Lectura Unidad 3SQL (Structured Query Language): Informe de Lectura Unidad 3
SQL (Structured Query Language): Informe de Lectura Unidad 3
 
Modulo2 tema 3-lenguaje sql-ddl
Modulo2 tema 3-lenguaje sql-ddlModulo2 tema 3-lenguaje sql-ddl
Modulo2 tema 3-lenguaje sql-ddl
 
Unidad I- Introducción.pptx
Unidad I- Introducción.pptxUnidad I- Introducción.pptx
Unidad I- Introducción.pptx
 
BASE DE DATOS, TIPOS Y CARACTERÍSTICAS
BASE DE DATOS, TIPOS Y CARACTERÍSTICASBASE DE DATOS, TIPOS Y CARACTERÍSTICAS
BASE DE DATOS, TIPOS Y CARACTERÍSTICAS
 
Modelos de-datos
Modelos de-datosModelos de-datos
Modelos de-datos
 
Base de datos objeto
Base de datos objetoBase de datos objeto
Base de datos objeto
 
ANSI SQL
ANSI SQLANSI SQL
ANSI SQL
 
Lenguaje transact
Lenguaje transactLenguaje transact
Lenguaje transact
 
LENGUAJE TRANSACT SQL
 LENGUAJE TRANSACT SQL LENGUAJE TRANSACT SQL
LENGUAJE TRANSACT SQL
 
base de datos
base de datosbase de datos
base de datos
 
Clase de investigacion presentacion 1
Clase de investigacion presentacion 1Clase de investigacion presentacion 1
Clase de investigacion presentacion 1
 
Lenguaje de transact
Lenguaje de transactLenguaje de transact
Lenguaje de transact
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
 
Base datos
Base datos Base datos
Base datos
 
TEMA3-SQL-(PARTE 1).pdf
TEMA3-SQL-(PARTE 1).pdfTEMA3-SQL-(PARTE 1).pdf
TEMA3-SQL-(PARTE 1).pdf
 
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Manual
ManualManual
Manual
 
Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sql
 

Dernier

KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Dernier (15)

KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

POOABD (POO Aplicada a B Datos) - RDBMS parte 2

  • 1. PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS APLICADA A BASES DE DATOS APLICADA A BASES DE DATOS Por LAURA NOUSSAN LETTRY SISTEMAS DE BASES DE DATOS RELACIONALES Parte 2 Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercialNoDerivs 3.0 Unported
  • 2. POO APLICADA A BASES DE DATOS ÍNDICE SISTEMAS DE BASES DE DATOS RELACIONALES – PARTE 2 Introducción 1. SQL (Lenguaje de Consultas Estructurado). Concepto y Sintaxis. Tipos de 1 Lenguaje SQL: DML y DDL. 2. SQL – DML: Sentencia SELECT: básica, con proyección, con restricción y mixta; distintos casos sobre una tabla o más tablas. Utilización de cláusulas para ordenamiento y agrupamiento. Sentencia INSERT, Sentencia UPDATE y Sentencia DELETE. 3. SQL – DDL: Sentencias CREATE, ALTER, RENAME y DROP aplicadas a Tablas y Vistas. 2 11 FUENTES Bibliográficas Consultadas 1. Ayuda en línea MySQL Community Edition 2. Ayuda en línea SQL Server y Libros en Pantalla BIBLIOGRAFÍA para el Alumno 1. NOUSSAN LETTRY, Laura y otros, Secuencia Didáctica de Comandos SQL Ejemplos y Resultados (Cátedra de Gestión de Datos, 3º Año, Ingeniería en Sistemas de Información UTN – FRM) 2. NOUSSAN LETTRY, Laura, Conexiones JDBC con MySQL y SQL Server (Mendoza, 2013) (*) 3. BrowserSQL versión 3.1 y su Tutorial 4. MySQL Community Edition y WorkBench 5. SQL Server Express Edition ACTIVIDADES Unidad 1 Parte 2 Tareas Lectura, trabajos, prácticas propuestas en el Website de la Materia. (*): En el Website de la materia: http://www.lnoussanl.com.ar/java&bd http://www.lnoussanl.com.ar/javabd/
  • 3. POO APLICADA A BASES DE DATOS SISTEMAS DE BASES DE DATOS RELACIONALES – PARTE 2 INTRODUCCIÓN Ahora, que ya hemos encarado el mundo de los Sistemas de Bases de Datos Relacionales desde un sustento teórico práctico, lo que haremos es seguir los pasos necesarios para crear un Sistema de Bases de Datos relacional físico. Para ello utilizaremos dos DBMS que actualmente son muy utilizados: MySQL y SQL Server Express Aprenderán también que en el mundo real no siempre se siguen los estándares y que además el software, como casi todo en la vida, ambos tienen sus ventajas y desventajas; lo que es cierto también para otros RDBMS como son Oracle o DB2. Una diferencia básica puede correr sobre Sistemas Operativos distribución gratuita, utilizado en la Web. entre ambos es que MySQL es multiplataforma; es decir Sistemas Operativos basados en Windows como en basados en Linux, motivo por el cual, y por ser de bajo determinadas circunstancias, es el RDBMS más La versión SQL Server corre sobre Sistemas Operativos Windows y la versión Express por cuanto es de distribución gratuita. Para poder utilizar SQL en forma independiente del DBMS, de modo tal que nos sirva para fines didácticos, hemos utilizado un software que hemos desarrollado: BrowserSQL versión 3.1. Dicho software permite conectarse a Access, MySQL y SQL Server y está disponible para su descarga en forma gratuita juntamente con su tutorial desde nuestro sitio web: http://www.lauranoussanlettry.com.ar
  • 4. POO APLICADA A BASES DE DATOS y SISTEMAS DE BASES DE DATOS RELACIONALES SQL. Concepto Le ttr 1- SQL (Lenguaje de Consultas Estructurado) SQL es un lenguaje de alto nivel creado para el tratamiento de datos almacenados en bases de datos relacionales. Es un lenguaje de tipo declarativo; es decir, no es procedural o imperativo, y permite trabajar con datos a nivel de conjunto, a diferencia de los lenguajes imperativos que trabajan en torno al registro individual y que requieren de lógica procedural para el tratamiento de los datos. Está basado en álgebra relacional y cálculo relacional orientado a tuplas. Sus instrucciones básicas se pueden dividir en dos grupos: an 1. DDL (Data Definition Language): conjunto de instrucciones que permiten definir tablas, índices, etc. 2. DML (Data Manipulation Language): se utilizan para actualizar información en la base de datos (insertar, eliminar o modificar filas en tablas) y para extraer información de la misma mediante consultas. ss Además de estos grupos existen otros, cuyas instrucciones permiten realizar otras operaciones aplicadas al DBMS y/o a sus bases de datos, siendo uno de los más importantes la creación de usuarios, sus roles y niveles de seguridad; que por su complejidad y extensión, exceden el desarrollo de la materia. ou Sintaxis SQL aN Toda la definición de la sintaxis y uso de SQL está incluida en estándares que van actualizándose periódicamente. Actualmente el último estándar publicado por la ISO es de 2013 (http://www.iso.org/iso/home/search.htm?qt=SQL&sort=rel&type=simple&published=on) puesto que debido a los avances tecnológicos se sigue trabajando en el lenguaje, inclusive en los OODBMS, por lo tanto no todos los papers y estándares se refieren a RDBMS. Muchos de los RDBMSs del mercado satisfacen gran parte de estándares anteriores (SQL/92, SQL/99) y otros este último estándar. Pero además, varios de los RDBMSs líderes en el mercado tales como DB2 de IBM, ORACLE, SQL Server de Microsoft y otros, tienen funcionalidades que van más allá de los estándares y, en base a estas funcionalidades, muchas veces se elaboran nuevos estándares. ur Para encarar el estudio de la sintaxis SQL se utilizará el material disponible en la bibliografía y que puede descargarse desde el sitio web: Secuencia Didáctica La Tipos de Lenguajes SQL: DML y DDL Como ya vimos, SQL se divide en dos grandes grupos de sentencias: SQL-DDL y SQL-DML, pero no son las únicas, existen otras, que no veremos aquí. Ahora ¿qué sentencias están incluidas en SQL-DDL y cuáles en SQL-DML? of. LENGUAJE SQL Pr SQL-DDL SQL-DML SENTENCIAS OBJETOS CREATE ALTER RENAME DROP SELECT (en cualquiera de sus formas) Tablas, vistas e índices INSERT UPDATE DELETE Tablas, vistas e índices Tablas y vistas Sistemas de Bases de Datos Relacionales – parte 2 pág. 1/18
  • 5. POO APLICADA A BASES DE DATOS 2. SQL – DML: Sentencias SELECT, INSERT, UPDATE y DELETE y Por una cuestión diáctica empezaremos con las sentencias básicas que se utilizan manipular los datos de las tablas de una base de datos. Le ttr Las sentencias que utilizaremos y que mostramos en los diferentes ejemplos suponen la previa creación de los objetos, lo que se verá recién en el desarrollo de SQL-DDL. Los ejemplos se han llevado a cabo utilizando el BrowserSQL, por lo que recomendamos leer el Tutorial. Como guía, las conexiones con un controlador o driver JDBC puro se debe indicar: 1) el DBMS 2) el usuario 3) su contraseña an La cadena de conexión para el DBMS es en forma genérica así: jdbc:nombre_dbms://servidor:puerto MySQL: jdbc:mysqlL://localhost:3306/nombre_base_datos SQL Server: jdbc:sqlserver://localhost:1433;databaseName=nombre_base_datos Sentencia SELECT sobre una tabla: ou Sentencia básica ss Los puertos consignados son los que se instalan y configuran por omisión. En el caso de SQL Server la configuración del puerto y de la capa de red TCP/IP es más complicado. Recomiendo leer la bibliografía recomendada sobre configuración del DBMS. Sintaxis: SELECT * FROM tabla aN El resultado de esta sentencia es el total de los registros de la tabla Pr of. La ur Ejemplo: mostrar todos los registros o tuplas de la tabla Localidades Sistemas de Bases de Datos Relacionales – parte 2 pág. 2/18
  • 6. La misma consulta utilizando SQL Server ou Sentencia SELECT con proyección ss an Le ttr y POO APLICADA A BASES DE DATOS Sintaxis: SELECT col1,col4,col6 FROM tabla aN El resultado de aplicar esta sentencia es que obtenemos todas las filas pero se muestran sólo las columnas indicadas. Pr of. La ur Ejemplo: mostrar el DNI, apellido y nombre de los alumnos Sistemas de Bases de Datos Relacionales – parte 2 pág. 3/18
  • 7. POO APLICADA A BASES DE DATOS Sentencia SELECT con restricción y Sintaxis: SELECT * FROM tabla WHERE condición aN Sentencia SELECT mixta ou ss an Ejemplo: mostrar los alumnos cuya idlocalidad es igual o mayor a 2 Le ttr El resultado de aplicar la sentencia es que se devuelven sólo las filas o tuplas que coinciden con la condición. Sintaxis: SELECT col1,col4,col6 FROM tabla WHERE condición El resultado de esta sentencia es que se devuelven las tuplas que coinciden con la expresión de la condición y sólo se muestran los datos de las columnas o atributos indicados. Pr of. La ur Ejemplo: mostrar el dni, apellido, nombre de los alumnos cuyo idlocalidad es igual a 1 Sistemas de Bases de Datos Relacionales – parte 2 pág. 4/18
  • 8. POO APLICADA A BASES DE DATOS Sentencia SELECT sobre más de una tabla Le ttr Sintaxis: SELECT tabla1.col2, tabla2.col1, tabla3.col2 FROM tabla1, tabla2, tabla3 WHERE tabla1.id_clave = tabla2.id_clave AND tabla2.id_clave = tabla3.id_clave y En este caso utilizaremos la Unión de tipo join, es decir aplicaremos las nociones teóricas vistas sobre claves primarias y foráneas. ou ss an Ejemplo: mostrar el dni, apellido, nombre, dirección y nombre de la localidad de los alumnos aN En este ejemplo la unión es de dos tablas. Así mismo hemos utilizado alias de tablas, lo cual hace mucho más fácil la escritura y también la consulta más rápida. Ejemplo: mostrar los alumnos inscriptos en las materias, indicando el nombre de la materia, el dni, Pr of. La ur el apellido y el nombre de los alumnos Notar que para que se pueda llevar a cabo la consulta es necesario unir tres tablas. Ahora, por ahí sería mejor ordenar los resultados por nombre de materia, cosa que se puede llevar a cabo con la siguiente senencia Sistemas de Bases de Datos Relacionales – parte 2 pág. 5/18
  • 9. POO APLICADA A BASES DE DATOS … ORDER BY col1,col2 [ ASC | DESC] siendo predeterminada la Le ttr La sintaxis de esta cláusula es ordenación ascendente. y Cláusula ORDER BY Ejemplo: el mismo ejemplo anterior ordenando en forma ascendente la consulta en función del aN ou ss an nombre de la materia Pr of. La ur Si también quisiéramos ordenar por apellido: Sistemas de Bases de Datos Relacionales – parte 2 pág. 6/18
  • 10. POO APLICADA A BASES DE DATOS Cláusula LIKE y Esta cláusula permite realizar una restricción donde la condición implica la comparación entre cadenas. Básicamente la sintaxis utiliza el carácter comodín %. Caso 1: conocer los alumnos cuyo nombre empieza con la letra M SELECT * FROM alumnos WHERE nombre LIKE ‘M%’ Le ttr Hay tres casos básicos. Tomaremos como ejemplo la tabla alumnos y el atributo nombre o el atributo apellido. aN ou ss an Las comillas indican que es una cadena y el símbolo % después de la letra M indica al DBMS que no interesa el resto de la cadena. Caso 2: conocer los alumnos cuyo apellido termina en EZ, la consulta será: Pr of. La ur SELECT * FROM alumnos WHERE apellido LIKE ‘%EZ’ Sistemas de Bases de Datos Relacionales – parte 2 pág. 7/18
  • 11. POO APLICADA A BASES DE DATOS y Caso 3: si se quiere saber qué alumnos tienen en el apellido la CH ss an Le ttr SELECT * FROM alumnos WHERE apellido LIKE ‘%CH%’ ou Como podemos ver no hay ningún alumno que concuerde con la consulta Sentencia INSERT: aN Esta sentencia sirve para agregar registros a una tabla. La sintaxis es: Sintaxis: INSERT INTO nombreTabla (atributo1,atributo2, …, atributon) VALUES(valor_atributo1, valor_atributo2, …, valor_atributon) ur Como material complementario se distribuyen los archivos de script. Dichos archivos han seguido la secuencia lógica de inserción; esto quiere decir, que para insertar datos en las tablas tenemos que tener en cuenta el diseño lógico, en particular el MER: hay que empezar por las tablas primarias y recién después por las tablas derivadas o dependientes. La En base a nuestro modelo de datos la secuencia sería así: Tabla Localidades, Tabla Alumnos, Tabla Materias y finalmente la Tabla Notas; que es la que hemos seguido en los archivos de Scripts. También se podría haber partido de esta manera: Tabla Materias, Tabla Localidades, Tabla Alumnos y finalmente la Tabla Notas, pero nos ha parecido más didáctica la primera alternativa. Aprovecharemos la oportunidad para agregar un alumno que pueda cumplir con la condición de la consulta anterior. of. El alumno a ingresar tendrá estos datos: dni: 45200104, apellido: SANCHEZ, nombre: JUAN IGNACIO, la fecha de nacimiento: 28/12/1995, la direccion: San Luis 355, idlocalidad=1, email: jisanchez@hotmail.com y telefono: 4235444 Pr La sentencia por lo tanto es: INSERT INTO ALUMNOS(DNI, APELLIDO, NOMBRE, FECHA_NAC, EMAIL, TELEFONO, DIRECCION, IDLOCALIDAD) VALUES(45200104,'SANCHEZ','JUAN IGNACIO','1995/12/28','San Luis 355','jisanchez@hotmail.com','4235444') Sistemas de Bases de Datos Relacionales – parte 2 pág. 8/18
  • 12. an Le ttr y POO APLICADA A BASES DE DATOS La ur aN ou ss Hemos insertado el alumno en la base de datos que tenemos en MySQL. Si se hace una consulta sobre la tabla tendremos el alumno en cuestión agregado: Notar que en la cadena de conexión, en lugar de utilizar el nombre del servidor hemos escrito localhost; o sea es lo mismo en este DBMS, por cómo está configurado. Pr of. Ahora si aplicamos el tercer caso de la sentencia con LIKE, nos debería devolver un solo registro, el que acabamos de ingresar. Sistemas de Bases de Datos Relacionales – parte 2 pág. 9/18
  • 13. Sentencia UPDATE: ss an Le ttr y POO APLICADA A BASES DE DATOS Esta sentencia nos permite modificar uno o más registros que ya existen en la tabla. ou La sintaxis para modificar un registro en particular es: Sintaxis: aN UPDATE nombreTabla SET atributo1=nuevo_valor_atributo1, atributo3=nuevo_valor_atributo3, atributon = nuevo_valor_atributon WHERE atributo_que_esPK=valor Para modificar más de un registro implica que no nos interesa la clave primaria sino que se cumpla una condición particular con uno o más atributos. Esto lo veremos con ejemplos, ya que así es mucho más claro. Pr of. La ur Vamos a modificar un dni, que a su vez es clave primaria puesto que está mal ingresado. En teste caso también hay que tener en cuenta que si el alumno está inscripto en las materias, habrá que modificar también la tabla Notas, ya que en esta tabla dni es una clave foránea. Sistemas de Bases de Datos Relacionales – parte 2 pág. 10/18
  • 14. POO APLICADA A BASES DE DATOS DELETE: Le ttr y La sentencia básica para eliminar un registro tiene la siguiente sintaxis: Sintaxis: DELETE FROM nombreTabla WHERE atributo_que_esPK=valor Hay que tener mucho cuidado!! Porque si nos olvidamos de establecer qué registro queremos borrar, y hacemos algo así: DELETE FROM nombreTabla ¡¡¡OJO!! Porque eliminaríamos todos los registros de la tabla. an Hay una situación particular donde no se pueden borrar los registros de la tabla. Sería el caso de la tabla Notas, que es dependiente de la Tabla Alumnos. Esto se debe al diseño lógico y físico de la base de datos, y a las normas de integridad referencial que hemos utilizado por omisión. Es así que, mientras existan alumnos, no se podrán borrar sus notas. 3. SQL – DDL: Sentencias CREATE, ALTER, DROP y RENAME ou ss Las sentencias que vamos a ver son: CREATE, ALTER, DROP y RENAME El ejemplo está basado en el diseño lógico y físico para la BD Escuela. Los mismos se han llevado a cabo utilizando el BrowserSQL así como los dos DBMS: MySQL y SQL Server, ya que ambos DBMS cuentan con un entorno visual ágil y fácil además de utilizar. En el website hay dos videos que muestran cómo ejecutar las sentencias de declaración de datos, tanto para el caso de MySQL como de SQL Server Sentencia CREATE aN Esta sentencia nos permite crear la misma base de datos, crear tablas, vistas, etc. En los ejemplos veremos la creación de la Base de Datos Escuela. CREACIÓN DE LA BASE DE DATOS CREATE nombreBD ur CREACIÓN DE TABLAS La sentencia tiene esta sintaxis: of. La CREATE nombreTabla ( atributo1 [NOT NULL][DEFAULT], atributo2 [NOT NULL][DEFAULT], … atributoN [NOT NULL][DEFAULT], CONSTRAINT nombrePK PRIMARY KEY(atributoPK), [CONSTRAINT nombreFK FOREIGN KEY(atributoFK) REFERENCES nombreTablaR (atributoPK_tablaR)]) Pr El presente ejemplo tiene por finalidad crear una tabla para usuarios. El diseño lógico me indica que la tabla usuarios debe tener dos atributos por lo menos: nom_usuario: que sería de tipo alfanumérico, con un máximo de 8 caracteres, y sería la clave primaria clave: que representaría la clave o contraseña del usuario y supondremos que el dominio es alfanumérico. Aquí lo importante es que la clave siempre tiene que tener 8 caracteres, además de ser un campo obligatorio. El diseño físico: Nom_usuario: tipo de datos: VARCHAR(8), es la clave primaria que se nombra PK_USUARIO Sistemas de Bases de Datos Relacionales – parte 2 pág. 11/18
  • 15. POO APLICADA A BASES DE DATOS y Clave: tipo de datos: VARCHAR(8), NOT NULL y hay que establecer una restricción (CONSTRAINT) de tipo CHECK para que el usuario siempre ingrese una clave que tenga 8 caracteres y no menos o más. La ur aN ou ss an Veremos que ejecutamos la sentencia CREATE en los dos DBMS Le ttr La sentencia SQ CREATE TABLE USUARIOS(nom_usuario VARCHAR(8), clave VARCHAR(8) NOT NULL, CONSTRAINT PK_USUARIO PRIMARY KEY(nom_usuario), CONSTRAINT CHK_clave CHECK(len(clave)=8)) of. Como no da error, el CONSTRAINT CHEK funciona. Por lo que haremos dos inserciones, una correcta y otra no. Esto significa, que si funciona la restricción, sólo se debería insertar el primer INSERT y no el segundo. Pr Sin embargo se puede apreciar que nada es perfecto en el mundo real. En el caso de SQL Server se parsea la restricción CHECK y realmente está previsto por el DBMS ya que no permite realizar la segunda inserción. En cambio en MySQL pues se parsea la sentencia pero la misma es ignorada por el DBMS. Hay dos alternativas, por lo general, para solucionar este tipo de situaciones, donde lo que queremos es que el usuario no ingrese cualquier valor: en algunos casos se puede utilizar la sentencia DEFAULT (para aquellos atributos que tal vez el usuario pueda dejar en blanco y que no sean super relevantes de modo que el DBMS no largue una excepción y se pueda insertar o modificar un registro), en el caso Sistemas de Bases de Datos Relacionales – parte 2 pág. 12/18
  • 16. POO APLICADA A BASES DE DATOS ur aN ou ss an Le ttr y planteado, en MySQL, a nivel de base de datos es usar un TRIGGER; la otra alternativa es manejar este tipo de situaciones mediante la programación de la aplicación Java. Pr of. La Podemos ver que se insertó nomás, a pesar del CHECK Sistemas de Bases de Datos Relacionales – parte 2 pág. 13/18
  • 17. an Le ttr y POO APLICADA A BASES DE DATOS ur aN ou ss Podemos ver que la segunda sentencia no se insertó, tampoco nos avisó nada el DBMS. Si vamos al SQL Managment Studio veremos que está agregada la restricción como parte de la estructura de la tabla: La Podemos apreciar dos cosas: aparece el CHECK como restricción dentro de la estructura de la tabla y además podeos comprobar que la tabla sólo tiene un registro. Sentencia ALTER of. Sirve para modificar la estructura de un objeto, por ejemplo, una tabla. Entre los diferentes DBMS suele haber bastante diferencia en la sintaxis de esta sentencia. En el video de Creación de la Base de datos con MySQL se puede apreciar un ejemplo. Pr La sentencia es bastante complicada, pero fácil de implementar cuando de lo que se trata es de crear por ejemplo un atributo nuevo o una nueva clave. No así cuando se trata de modificar la estructura de un atributo. Vamos a modificar la tabla USUARIOS de modo que también tenga otro atributo más, es decir, el correo electrónico A este atributo lo nombraremos correo, de tipo alfanumérico con una longitud máxima de 30 caracteres y no nulo. Sistemas de Bases de Datos Relacionales – parte 2 pág. 14/18
  • 18. POO APLICADA A BASES DE DATOS Pr of. La ur aN ou ss an Le ttr y Como podemos ver MySQL nos permite agregar la columna aunque ya tengo datos insertados en la tabla. SQL Server, no lo permite y en su lugar nos devuelve un mensaje bastante largo. Primero eliminamos todos los registros y luego aplicamos la sentencia ALTER TABLE Sistemas de Bases de Datos Relacionales – parte 2 pág. 15/18
  • 19. POO APLICADA A BASES DE DATOS y Como se puede ver, para poder agregar la nueva columna tendríamos que eliminar todos los registros. Como esta no es una tabla que tenga derivaciones, pues es lo mejor. Es importante notar sí, que la sintaxis de la sentencia es diferente para los DBMS utilizados como ejemplo. Le ttr Sentencia RENAME Permite renombrar un objeto En el caso que quisiéramos renombrar la tabla USUARIOS, la sentencia RENAME funciona en MySQL pero no en SQL Server También funciona en otros DBMS como Oracle o DB2 La sintaxis es ur Sentencia DROP aN ou ss an Sintaxis para renombrar una tabla: RENAME TABLE nombreTAblaViejo TO nombreTAblaNuevo La Esta sentencia permite eliminar un objeto, por ejemplo, una tabla, vista, etc. Sintaxis para eliminar una tabla: DROP TABLE nombreTabla Esta sentencia se utiliza de la misma forma tanto en MySQL como en SQL Server. of. Si queremos eliminar la tabla USUARIOS, que es una tabla que no tiene relaciones, pues la sentencia que deberíamos utilizar es: DROP TABLE USUARIOS. Sin embargo, como en el caso de las inserciones, si tenemos que tener en cuenta la estructura lógica de la base de datos. Así como no podemos insertar en la tabla Notas si no tenemos datos en las tablas primarias, Alumnos y Materias; tampoco podemos eliminar la tabla Materias porque se usa en Notas; es decir, si quisiéramos eliminar todas las tablas de la base de datos pues deberíamos empezar por eliminar las tablas derivadas; es decir aquellas que utilizan referencian a otras tablas. Pr En las siguientes imágenes se muestra esta secuencia lógica, después de haber eliminado la tabla usuarios, eliminamos todas las otras: Sistemas de Bases de Datos Relacionales – parte 2 pág. 16/18
  • 20. ss an Le ttr y POO APLICADA A BASES DE DATOS Hemos eliminado todas las tablas de la base de datos que tenemos en MySQL. Es importante notar que la secuencia de eliminación se corresponde en definitiva con el MER. Pr of. La ur aN ou Ahora vamos a hacer lo mismo en SQL Server, para lo cual, a propósito empezamos mal: queremos eliminar en primer lugar la tabla MATERIAS, nos da un error que es totalmente lógico puesto que funciona la integridad referencial: Sistemas de Bases de Datos Relacionales – parte 2 pág. 17/18
  • 21. ss an Le ttr y POO APLICADA A BASES DE DATOS Pr of. La ur aN ou Finalmente seguimos la secuencia lógica, y el DBMS puede eliminar las tablas. Sistemas de Bases de Datos Relacionales – parte 2 pág. 18/18