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.
En esta parte se abordan los siguientes temas:
1. SQL (Lenguaje de Consultas Estructurado). Concepto y Sintaxis. Tipos de 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.
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