06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • 71Z799014MO 12 El lenguaje SQL<br />

1.1. Creación y borrado <strong>de</strong> una base <strong>de</strong> <strong>datos</strong> relacional<br />

El estándar SQL92 no dispone <strong>de</strong> ninguna sentencia <strong>de</strong> creación <strong>de</strong> bases <strong>de</strong><br />

<strong>datos</strong>. La i<strong>de</strong>a es que una base <strong>de</strong> <strong>datos</strong> no es más que un conjunto <strong>de</strong> tablas<br />

y, por lo tanto, las sentencias que nos ofrece el SQL92 se concentran en la creación,<br />

la modificación y el borrado <strong>de</strong> estas tablas.<br />

En cambio, disponemos <strong>de</strong> una sentencia más potente que la <strong>de</strong> creación <strong>de</strong> bases<br />

<strong>de</strong> <strong>datos</strong>: la sentencia <strong>de</strong> creación <strong>de</strong> esquemas <strong>de</strong>nominada CREATE SCHEMA.<br />

Con la creación <strong>de</strong> esquemas po<strong>de</strong>mos agrupar un conjunto <strong>de</strong> elementos <strong>de</strong> la<br />

base <strong>de</strong> <strong>datos</strong> que son propiedad <strong>de</strong> un usuario. La sintaxis <strong>de</strong> esta sentencia es la<br />

que tenéis a continuación:<br />

La instrucción<br />

CREATE DATABASE<br />

Muchos <strong>de</strong> los sistemas<br />

relacionales comerciales<br />

(como ocurre en el caso<br />

<strong>de</strong> Informix, DB2, SQL<br />

Server y otros) han incorporado<br />

sentencias <strong>de</strong> creación<br />

<strong>de</strong> bases <strong>de</strong> <strong>datos</strong> con la<br />

siguiente sintaxis:<br />

CREATE DATABASE<br />

CREATE SCHEMA {[nombre_esquema]} | [AUTHORIZATION usuario]}<br />

[lista_<strong>de</strong>_elementos_<strong>de</strong>l_esquema];<br />

La nomenclatura utilizada en la sentencia es la siguiente:<br />

• Las palabras en negrita son palabras reservadas <strong>de</strong>l lenguaje:<br />

• La notación [...] quiere <strong>de</strong>cir que lo que hay entre los corchetes se podría<br />

poner o no.<br />

• La notación {A| ... |B} quiere <strong>de</strong>cir que tenemos que elegir entre todas las<br />

opciones que hay entre las llaves, pero <strong>de</strong>bemos poner una obligatoriamente.<br />

La sentencia <strong>de</strong> creación <strong>de</strong> esquemas hace que varias tablas (lista_<strong>de</strong>_elementos_<strong>de</strong>l_esquema)<br />

se puedan agrupar bajo un mismo nombre (nombre_esquema)<br />

y que tengan un propietario (usuario). Aunque todos los parámetros<br />

<strong>de</strong> la sentencia CREATE SCHEMA son opcionales, como mínimo se <strong>de</strong>be<br />

dar o bien el nombre <strong>de</strong>l esquema, o bien el nombre <strong>de</strong>l usuario propietario <strong>de</strong> la<br />

base <strong>de</strong> <strong>datos</strong>. Si sólo especificamos el usuario, éste será el nombre <strong>de</strong>l esquema.<br />

La creación <strong>de</strong> esquemas pue<strong>de</strong> hacer mucho más que agrupar tablas, porque<br />

lista_<strong>de</strong>_elementos_<strong>de</strong>l_esquema pue<strong>de</strong>, a<strong>de</strong>más <strong>de</strong> tablas, ser también<br />

dominios, vistas, privilegios y restricciones, entre otras cosas.<br />

Para borrar una base <strong>de</strong> <strong>datos</strong> encontramos el mismo problema que para crearla.<br />

El estándar SQL92 sólo nos ofrece la sentencia <strong>de</strong> borrado <strong>de</strong> esquemas<br />

DROP SCHEMA, que presenta la siguiente sintaxis:<br />

DROP SCHEMA nombre_esquema {RESTRICT|CASCADE};<br />

La sentencia<br />

DROP DATABASE<br />

Muchos <strong>de</strong> los sistemas<br />

relacionales comerciales<br />

(como por ejemplo Informix,<br />

DB2, SQL Server y otros)<br />

han incorporado sentencias<br />

<strong>de</strong> borrado <strong>de</strong> bases <strong>de</strong> <strong>datos</strong><br />

con la siguiente sintaxis:<br />

DROP DATABASE

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!