Practica Universidad de Pamplona, base de datos. Base de datos,,, Ing Sistemas e Industrial

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Practica Universidad de Pamplona, base de datos. Base de datos,,, Ing Sistemas e Industrial"

Transcripción

1 Practica Universidad de Pamplona, base de datos. Base de datos,,, Ing Sistemas e Industrial Prácticamente, la creación de la base de datos consiste en la creación de las tablas que la componen. En realidad, antes de poder proceder a la creación de las tablas, normalmente hay que crear la base de datos, lo que a menudo significa definir un espacio de nombres separado para cada conjunto de tablas. De esta manera, para una DBMS se pueden gestionar diferentes bases de datos independientes al mismo tiempo sin que se den conflictos con los nombres que se usan en cada una de ellas. El sistema previsto por el estándar para crear los espacios separados de nombres consiste en usar las instrucciones SQL "CREATE SCHEMA". A menudo, dicho sistema no se usa (o por lo menos no con los fines y el significado previstos por el estándar), pero cada DBMS prevé un procedimiento propietario para crear una base de datos. Normalmente, se amplía el lenguaje SQL introduciendo una instrucción no prevista en el estándar: "CREATE DATABASE". La sintaxis empleada por PostgreSQL, pero también por las DBMS más difundidas, es la siguiente: CREATE DATABASE nombre_base de datos Con PostgreSQL está a disposición una orden invocable por shell Unix (o por shell del sistema usado), que ejecuta la misma operación: createdb nombre_base de datos Para crear nuestra base de datos bibliográfica, usaremos pues la orden: createdb biblio Una vez creada la base de datos, se pueden crear las tablas que la componen. La instrucción SQL propuesta para este fin es: CREATE TABLE nombre_tabla ( nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] [, nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ]... ] [, [ vínculo_de tabla]... ] ) nombre_columna: es el nombre de la columna que compone la tabla. Sería mejor no exagerar con la longitud de los identificadores de columna, puesto que SQL Entry Level prevé nombres con no más de 18 caracteres. Consúltese, de todos modos, la documentación de la base de datos específica. Los nombres tienen que comenzar con un carácter alfabético. tipo_columna: es la indicación del tipo de dato que la columna podrá contener. Los principales tipos previstos por el estándar SQL son: CHARACTER(n) Una cadena de longitud fija con exactamente n caracteres. CHARACTER se puede abreviar con CHAR CHARACTER VARYING(n) Una cadena de longitud variable con un máximo de n caracteres. CHARACTER VARYING se puede abreviar con VARCHAR o CHAR VARYING. INTEGER Un número estero con signo. Se puede abreviar con INT. La precisión, es decir el tamaño

2 del número entero que se puede memorizar en una columna de este tipo, depende de la implementación de la DBMS en cuestión. SMALLINT Un número entero con signo y una precisión que no sea superior a INTEGER. FLOAT(p) Un número con coma móvil y una precisión p. El valor máximo de p depende de la implementación de la DBMS. Se puede usar FLOAT sin indicar la precisión, empleando, por tanto, la precisión por defecto, también ésta dependiente de la implementación. REAL y DOUBLE PRECISION son sinónimo para un FLOAT con precisión concreta. También en este caso, las precisiones dependen de la implementación, siempre que la precisión del primero no sea superior a la del segundo. DECIMAL(p,q) Un número con coma fija de por lo menos p cifras y signo, con q cifras después de la coma. DEC es la abreviatura de DECIMAL. DECIMAL(p) es una abreviatura de DECIMAL(p,0). El valor máximo de p depende de la implementación. INTERVAL Un periodo de tiempo (años, meses, días, horas, minutos, segundos y fracciones de segundo). DATE, TIME y TIMESTAMP Un instante temporal preciso. DATE permite indicar el año, el mes y el día. Con TIME se pueden especificar la hora, los minutos y los segundos. TIMESTAMP es la combinación de los dos anteriores. Los segundos son un número con coma, lo que permite especificar también fracciones de segundo. cláusula_defecto: indica el valor de defecto que tomará la columna si no se le asigna uno explícitamente en el momento en que se crea la línea. La sintaxis que hay que usar es la siguiente: DEFAULT { valor NULL } donde valor es un valor válido para el tipo con el que la columna se ha definido. vínculos_de_columna: son vínculos de integridad que se aplican a cada atributo concreto. Son: NOT NULL, que indica que la columna no puede tomar el valor NULL. PRIMARY KEY, que indica que la columna es la llave primaria de la tabla. una definición de referencia con la que se indica que la columna es una llave externa hacia la tabla y los campos indicados en la definición. La sintaxis es la siguiente: REFERENCES nombre_tabla [ ( columna1 [, columna2... ] ) ] [ ON DELETE { CASCADE SET DEFAULT SET NULL } ] [ ON UPDATE { CASCADE SET DEFAULT SET NULL } ] Las cláusulas ON DELETE y ON UPDATE indican qué acción hay que ejecutar en el caso en que una tupla en la tabla referenciada sea eliminada o actualizada. De hecho, en dichos casos en la columna referenciante (que es la que se está definiendo) podría haber valores inconsistentes. Las acciones pueden ser: o CASCADE: eliminar la tupla que contiene la columna referenciante (en el caso de ON DELETE) o también actualizar la columna referenciante (en el caso de ON UPDATE).

3 o o SET DEFAULT: asignar a la columna referenziante su valor de defecto. SET NULL: asignar a la columna referenciante el valor NULL. un control de valor, con el que se permite o no asignar un valor a la columna en función del resultado de una expresión. La sintaxis que se usa es: CHECK (expresión_condicional) donde expresión_condicional es una expresión que ofrece verdadero o falso. Por ejemplo, si estamos definiendo la columna COLUMNA1, con el siguiente control: CHECK ( COLUMNA1 < 1000 ) en dicha columna se podrán incluir sólo valores inferiores a vínculo_de_tabla: son vínculos de integridad que se pueden referir a más columnas de la tabla. Son: la definición de la llave primaria: PRIMARY KEY ( columna1 [, columna2... ] ) Véase que en este caso, a diferencia de la definición de la llave primaria como vínculo de columna, ésta se puede formar con mas de un atributo. las definiciones de las llaves externas: FOREIGN KEY ( columna1 [, columna2... ] ) definiciones_de_referencia La definición_de_referencia tiene la misma sintaxis y significado que la que puede aparecer como vínculo de columna. un control de valor, con la misma sintaxis y significado que el que se puede usar como vínculo de columna. Para aclarar mejor el uso de la instrucción CREATE TABLE, veamos algunas órdenes que implementan la base de datos bibliográfica ejemplificada. CREATE TABLE Publication ( ID INTEGER PRIMARY KEY, type CHAR(18) NOT NULL ); La instrucción anterior crea la tabla Publication, formada por las dos columna ID de tipo INTEGER, y type de tipo CHAR(18). ID es la llave primaria de la relación. En el atributo type hay un vínculo de no nulidad. CREATE TABLE Book ( ID INTEGER PRIMARY KEY REFERENCES Publication(ID), title VARCHAR(160) NOT NULL, publisher INTEGER NOT NULL REFERENCES Publisher(ID), volume VARCHAR(16), series VARCHAR(160), edition VARCHAR(16),

4 pub_month CHAR(3), pub_year INTEGER NOT NULL, note VARCHAR(255) ); Crea la relación Book, formada por nueve atributos. La llave primaria es el atributo ID, que es también una llave externa hacia la relación Publication. Sobre los atributos title, publisher y pub_year hay vínculos de no nulidad. Además, el atributo publisher es una llave externa hacia la tabla Publisher. CREATE TABLE Author ( publicationid INTEGER REFERENCES Publication(ID), personid INTEGER REFERENCES Person(ID), PRIMARY KEY (publicationid, personid) ); Crea la relación Author, compuesta por dos atributos: publicationid y personid. La llave primaria en este caso está formada por la combinación de los dos atributos, como está indicado por el vínculo de tabla PRIMARY KEY. PublicationID es una llave externa hacia la relación Publication, mientras que personid lo es hacia la relación Person. NOTA SOBRE POSTGRESQL En PotgreSQL, por lo menos hasta la versión 6.5.1, no se han implementado todavía los vínculos sobre las llaves externas. El parser acepta, de todos modos, las sintaxis SQL que le afectan, y por tanto los constructos FOREIGN KEY y REFERENCES no producen un error, sino sólo un warning. INSERTAR DATOS Con la expresión "población de la base de datos" se entiende la actividad de inclusión de los datos dentro de ella. En una base de datos relacional esto corresponde a la creación de las líneas que componen las tablas que constituyen la base de datos. Normalmente, la memorización de una información concreta corresponde a la inclusión de una o más líneas en una o más tablas de la base de datos. Tómese, por ejemplo, la siguiente información bibliográfica: M. Agosti, L. Benfante, M. Melucci. OFAHIR: "On-the-Fly" Automatic Authoring of Hypertexts for Information Retrieval. In S. Spaccapietra, F. Maryansky (Eds), Searching for Semantics: Data Mining, Reverse Engineering. Proc. of the 7th IFIP 2.6 Working Conference on Database Semantics (DS-7), Leysin, Switzerland, October 1997, Suponiendo que en la base de datos no esté ya presente ninguna de las informaciones que le afectan (como por ejemplo alguno de los autores o las actas del congreso al que se refiere), su inclusión en nuestra base de datos de ejemplo corresponde a la inclusión de las siguientes líneas: cinco líneas en la tabla Person, que corresponden a cada uno de los autores y de los coordinadores; una línea en la tabla Institution;

5 dos líneas en la tabla Publication: una para las actas del congreso y una para el artículo contenido en esas actas; una línea en la tabla Proceedings; una línea en la taba InProceedings; tres líneas en la tabla Author, una para cada autor de la publicación. dos líneas en la tabla Editor, una para cada coordinador de la publicación. El orden de las operaciones anteriores no es puramente casual; de hecho, la inserción de las líneas tiene que hacerse de modo que se respeten los vínculos impuestos en las tablas. Por ejemplo, dado que no podrá existir una llave externa sin que antes se haya incluido la línea a la que se refiere, antes de poder meter una línea en la tabla InProceedings se tendrá que haber puesto la línea correspondiente en la tabla Proceedings. En el caso en que un vínculo sea violado, la DBMS impedirá la operación de inclusión abortándola. Véase la lección anterior (Crear la base de datos) para la descripción de los vínculos que se les pueden imponer a una tabla y a sus columnas. La instrucción SQL que lleva a cabo la inclusión de una nueva línea en una tabla es INSERT. La sintaxis con la que ésta se usa comunmente es: INSERT INTO nombre_tabla [ ( lista_campos ) ] VALUES ( lista_valores ) nombre_tabla es el nombre de la tabla en la que se tiene que incluir la nueva línea. lista_campos es la lista de los nombres de los campos a los que hay que asignar un valor, separados entre sí por una coma. Los campos no incluidos en la lista tomarán su valor por defecto o NULL si no lo tienen por defecto. Es un error no incluir en la lista un campo que no tenga un valor por defecto y que no pueda tomar el valor NULL. En el caso en que no se especifique la lista, habrá que especificar los valores de todos los campos de la tabla. lista_valores es la lista de los valores que se les darán a los campos de la tabla en el orden y número especificados por la lista_campos o en la de la definición de la tabla (si no se especifica lista_campos). Los valores pueden ser una expresión escalar del tipo apropiado para el campo o las keyword DEFAULT o NULL, si el campo prevé un valor por defecto o admite el valor NULL. El ejemplo anterior de inclusión se ejecuta a través de las siguientes instrucciones SQL: INSERT INTO Person VALUES ( 1, 'Agosti', 'Maristella' ); INSERT INTO Person VALUES ( 2, 'Benfante', 'Lucio' ); INSERT INTO Person VALUES ( 3, 'Melucci', 'Massimo' ); INSERT INTO Person VALUES ( 4, 'Spaccapietra', 'S.' ); INSERT INTO Person VALUES ( 5, 'Maryansky', 'F.' ); INSERT INTO Institution ( ID, name, city, country ) VALUES ( 1, '7th IFIP 2.6 Working Conference on Database Semantics (DS-7)',

6 'Leysin', 'Switzerland' ); INSERT INTO Publication VALUES ( 1, 'Proceedings' ); INSERT INTO Publication VALUES ( 2, 'InProceedings' ); INSERT INTO Proceedings ( ID, title, organization, pub_month, pub_year ) VALUES ( 1, 'Searching for Semantics: Data Mining, Reverse Engineering', 1, 'Oct', 1997 ); INSERT INTO InProceedings ( ID, proceedingsid, title, pages ) VALUES ( 2, 1, 'OFAHIR: "On-the-Fly" Automatic Authoring of Hypertexts for Information Retrieval', ' ' ); INSERT INTO Author VALUES ( 2, 1 ); INSERT INTO Author VALUES ( 2, 2 ); INSERT INTO Author VALUES ( 2, 3 ); INSERT INTO Editor VALUES ( 1, 4 ); INSERT INTO Editor VALUES ( 1, 5 ); Otra forma bastante usada de la instrucción INSERT sigue la siguiente sintaxis: INSERT INTO nombre_tabla [ ( lista_campos ) ] instrucción_select La única diferencia con la sintaxis anterior consiste en la sustitución de la cláusula VALUES por la instrucción SELECT. La instrucción SELECT se examinará con detalle en la siguiente lección (Interrogar a la base de datos). Por el momento, es suficiente saber que SELECT permite extraer de las tablas de la base de datos datos que se organizan en una nueva relación. La anterior instrucción INSERT permite incluir en la tabla y en los campos especificados datos provenientes de otras tablas. Obviamente, para que la instrucción se ejecute con éxito, los datos producidos por la instrucción SELECT tendrán que ser compatibles con los vínculos y los dominios de los campos de la tabla en la que se esta efectuando la inserción. CONSULTAS La instrucción SQL que se propone para dicho fin es SELECT. Desde el momento en que la interrogación es quizá la función más usada de una base de datos, las opciones de la instrucción SELECT son numerosas y a veces bastante complicadas. Por esta razón vamos a describirlas simplificadas, utilizando ejemplos para la presentación de las características más complejas, en concreto las que se refieren a la especificación de las expresiones condicionales. La sintaxis con que la instrucción SELECT se tiene que usar es la siguiente: SELECT [ ALL DISTINCT ] lista_elementos_selección FROM lista_referencias_tabla [ WHERE expresión_condicional ]

7 [ GROUP BY lista_columnas ] [ HAVING expresión_condicional ] [ ORDER BY lista_columnas ] La instrucción SELECT produce una tabla que se obtiene aplicando el siguiente procedimiento (por lo menos desde el punto de vista lógico, cada DBMS optimiza la ejecución de las interrogaciones según las propias estrategias): 1. produce una tabla que se obtiene como producto cartesiano de las tablas especificadas en la cláusula FROM. Cada elemento de la lista_referencias_tabla sigue la siguiente sintaxis: referencia_tabla [ [ AS ] alias_tabla ] La referencia puede ser el nombre de una tabla o una expresión (puesta entre paréntesis) cuyo resultado es una tabla, y por lo tanto incluso otra SELECT. El alias es un nombre que sirve para indicar brevemente una referencia de tabla. En el caso en que la referencia de tabla sea una expresión, es obligatorio especificar un alias. 2. de la tabla anterior elimina todas las líneas que no satisfacen la expresión condicional (es decir las líneas por las cuales la expresión condicional devuelve falso como resultado) de la cláusula WHERE. 3. (si está presente la cláusula GROUP BY) las líneas de la tabla resultante del paso 2 se reagrupan según los valores presentes en las columnas especificadas en la cláusula GROUP BY. Líneas con valores iguales se unen en una única línea. Las columnas no comprendidas en la cláusula tienen que comprender expresiones con funciones de agregación (como por ejemplo AVG, que calcula la media) que, por tanto, se calculan produciendo un único valor para cada grupo. 4. (si está presente la cláusula HAVING) del resultado del punto 3 se eliminan las líneas que no satisfacen la expresión condicional de la cláusula HAVING. 5. Se claculan las columnas presentes en la cláusula SELECT (las de la lista_elementos_selección). En concreto, se calculan las columnas con las funciones de agregación que derivan del reagrupamiento que se ha producido en el punto 3. Cada elemento de la lista_elementos_selección sigue la siguiente sintaxis: expresión_escalar [ [ AS ] alias_columna ] Una expresión escalar es una expresión que produce como resultado un valor escalar. Los tipos de datos escalares del lenguaje SQL son principalmente los descritos en la lección 6 (Crear la base de datos), excepto INTERVAL, DATE, TIME y TIMESTAMP. Las expresiones escalares de los elementos de SELECT normalmente afectan a las columnas de la tabla resultante del punto 4. En el caso en que se den ambigüedades, por la presencia de columnas con los mismos nombres en dos o más tablas incluidas en la cláusula FOR, se pueden resolver prefijando el nombre o el alias de la columna con el nombre o el alias de la tabla, separados por un punto. Por ejemplo, T.C indica la columna C de la tabla T. El alias de columna es el nombre que se le da a la columna. Toda la lista de las columnas de una tabla puede especificarse usando el carácter '*'. 6. (si está presente la opción DISTINCT) se eliminan las líneas que resultan duplicadas. En el caso en que no estén presentes ni ALL ni DISTINCT, se asume ALL. 7. (si está presente la cláusula ORDER BY) las líneas de la tabla se ordenan según los valores presentes en las columnas especificadas en la cláusula. La sintaxis que hay que usar es la siguiente:

8 ORDER BY nombre_columna [ ASC DESC ] [, nombre_columna [ ASC DESC ]... ] El orden por defecto es ascendente. En el caso en que se quiera efectuar el decreciente hay que especificar la opción DESC. Si no se especifica la cláusula ORDER BY, hay que considerar la tabla sin ningún orden; de hecho, para la definición de relación del modelo relacional, las líneas de la tabla forman un conjunto: en el sentido matemático y para los elementos de un conjunto no se ha definido ninguna propiedad de orden. En la práctica, sin embargo, el orden que se obtiene no especificando la cláusula de orden es casi siempre el que refleja su memorización física y por tanto, a menudo, al que se debe que las líneas hayan sido incluidas en la tabla. La secuencia de operaciones que acabamos de presentar hay que considerarla válida sólo desde el punto de vista conceptual. Efectivamente, no está escrito que se ejecuten exactamente de este modo y en este orden, sobre todo desde el momento en que cada DBMS optimizará las interrogaciones según las estrategias más oportunas. Examinaremos ahora algunos ejemplos de la instrucción SELECT. Se supone que los datos presentes en la base de datos de ejemplo son sólo los que se han incluido gracias al archivo [poblad_biblio.sql] presentado en la lección 7 (Poblar la base de datos). En caso contrario, las interrogaciones ofrecerán resultados diferentes. EJEMPLO 1 SELECT surname FROM Person ORDER BY surname Extrae de la tabla Person los apellidos y los ordena alfabéticamente. En nuestro caso, el resultado es el siguiente: surname Agosti Batini Bayer Benfante Carey Cochowsky DeWitt Kim Knuth Lenzerini Maryansky McCreight McGill Melucci Richardson Salton Santucci Shekita Spaccapietra de Petra Véase el orden errado de la última línea, debido a que se ha usado el carácter ASCII minúsculo. La query anterior devolvería líneas duplicadas en el caso en que en la tabla estuviesen presentes personas con el mismo apellido. Para evitarlo hay que especificar la opción DISTINCT:

9 SELECT DISTINCT surname FROM Person ORDER BY surname ESEMPIO 2 SELECT * FROM Person WHERE surname LIKE 'B%' Produce una tabla que tiene todas las columnas de la tabla Person. Las líneas se filtran para que estén presentes sólo las que tienen el apellido que empieza con el carácter 'B'. El operador LIKE permite una comparación entre cadenas de caracteres usando pattern construidos con los caracteres '%' e '_'. El primero sustituye un número no precisado de caracteres (también 0), mientras que el segundo sustituye uno solo. ESEMPIO 3 SELECT PUB.*, PER.surname AS S, PER.given_names FROM Publication PUB, Author AUT, Person PER WHERE PUB.ID = AUT.publicationID AND AUT.personID = PER.ID AND PUB.type = 'Book' ORDER BY S En este caso, la tabla resultante contiene todas las columnas de la tabla Publication (indicada con el alias PUB definido en la cláusula FROM) y las columnas surname y given_names de la tabla Person. La cláusula FROM genera el producto cartesiano de las tablas Publication, Author y Person, de las que se seleccionan sólo las líneas en que el identificativo de la publicación y el del autor se corresponden. Además, se limita a considerar sólo las publicaciones del tipo 'Book'. Para acabar, la tabla se ordena según los apellidos del autor, indicado mediante el alias S, definido en la cláusula SELECT. ESEMPIO 4 SELECT title, volume, pub_year

10 FROM Book WHERE ID IN ( SELECT PUB.ID FROM Publication PUB, Author AUT, Person PER WHERE PUB.ID = AUT.publicationID AND AUT.personID = PER.ID AND PUB.type = 'Book' AND PER.surname = 'Knuth' ) En este ejemplo, se ve el uso de una expresión condicional que contiene el operador IN, que devuelve el valor verdadero si el valor del operando a su izquierda está incluido en la tabla resultado de la expresión a su derecha. La query entre paréntesis produce una tabla de una única columna, que contiene los identificativos de las publicaciones del tipo 'Book' de las que Knuth es autor. La query más externa extrae, por tanto, de la tabla Book las informaciones de los libros con esos identificativos. EJEMPLO 5 SELECT COUNT(*) FROM Publication count Cuenta el número de líneas presentes en la tabla Publication. ESEMPIO 6 SELECT type, COUNT(ID) FROM Publication GROUP BY type Cuenta el número de publicaciones presentes en la base de datos subdividiéndolas por tipos. Las funciones de agregación previstas por el estándar SQL son COUNT, SUM, AVG, MAX y MIN, las cuales calculan respectivamente los números, la suma, la media aritmética, el máximo y el mínimo de los valores escalares presentes en la columna a la que se aplican.

11 ACTUALIZAR UNA BD Normalmente, las informaciones presentes en una base de datos no son estáticas, sino que evolucionan en el tiempo. Existe, por tanto, la necesidad no sólo de añadir nuevos datos, sino de modificar los que están ya incluidos en las tablas de la base de datos. Las instrucciones SQL que se usan para este fin son UPDATE y DELETE. La primera modifica los valores presentes en una o más columnas de una o más líneas de una tabla. La segunda elimina una o más líneas de una tabla. La sintaxis de UPDATE es la siguiente: UPDATE nombre_tabla SET lista_asignaciones [ WHERE expresión_condicional ] Las asignaciones se especifican del modo: nombre_columna = expresión_escalar La instrucción UPDATE actualiza las columnas de la tabla que se han especificado en la cláusula SET, utilizando los valores que son calculados por las correspondientes expresiones escalares. Si se expresa también la cláusula WHERE, se actualizan sólo las líneas que satisfacen la expresión condicional. Véase que la expresión escalar usada para actualizar una columna puede ser también el resultado de una query escalar, es decir una query que devuelve una sola línea y una sola columna. Veamos un ejemplo: UPDATE Person SET given_names = 'Stefano' WHERE surname = 'Spaccapietra' La instrucción anterior cambia el valor de la columna given_name de la tabla Person en las líneas (en nuestro caso es una sola) en que la columna surname tiene valor 'Spaccapietra'. La sintaxis de DELETE es: DELETE FROM nombre_tabla [ WHERE expresión_condicional ] La instrucción delete elimina de una tabla todas las líneas que satisfacen la expresión condicional de la cláusula WHERE. Si WHERE no se especifica, se cancelan todas las líneas de la tabla. Si en la definición de la tabla se han especificado las cláusulas ON UPDATE u ON DELETE, en el momento en que se ejecutan estas operaciones también se ejecutan las que habían estado previstas en las columnas referenciadas (CASCADE, SET DEFAULT o SET NULL).

12 MODIFICAR LA ESTRUCTURA DE BD no basta con modificar los datos, sino que es necesario actualizar la estructura misma de la base de datos para conseguir que se puedan representar nuevas informaciones. Desde el momento en que la estructura de la base de datos se da sustancialmente por la unión de las tablas que la componen, su actualización corresponde a la eliminación de tablas o al cambio de sus características. Para eliminar una tabla de una base de datos la orden SQL que hay que usar es DROP TABLE: DROP TABLE nombre_tabla { RESTRICT CASCADE } nombre_tabla es el nombre de la tabla que tiene que se eliminada. Si se especifica la cláusula CASCADE, se eliminan automáticamente los vínculos de integridad y las vistas (view) en que la tabla está implicada. Y viceversa: si se especifica la cláusula RESTRICT y existen vínculos de integridad o vistas que se refieran a la tabla, la operación fracasa. Por ejemplo, se han definido las dos siguientes tablas: CREATE TABLE Prueba1 ( Id INTEGER PRIMARY KEY, Nombre VARCHAR(50)) CREATE TABLE Prueba2 ( Id INTEGER PRIMARY KEY, Nombre VARCHAR(50), toprueba1 INTEGER REFERENCES Prueba1(Id)) Si se quiere eliminar la tabla Prueba1, la instrucción: DROP TABLE Prueba1 RESTRICT fracasará desde el momento en que existe un vínculo de integridad que liga una llave externa de la tabla Prueba2 con la tabla Prueba1. Sin embargo, la instrucción: DROP TABLE Prueba1 CASCADE se ejecutará con éxito y producirá también la eliminación del vínculo de integridad referencial presente en la tabla Prueba2. En el caso en que se quiera modificar una tabla existente en la base de datos, la instrucción que se tiene que usar es ALTER TABLE. Desde el momento en que la sintaxis de esta instrucción resulta más bien complicada, se explicará descomponiéndola de acuerdo a las funciones que se quieren obtener: Adición de una nueva columna a la tabla ALTER TABLE nombre_tabla ADD [ COLUMN ] definición_columna

13 nombre_tabla es el nombre de la tabla que se quiere modificar. La definición de la columna sigue la misma sintaxis que se ha visto en la lección "Crear la base de datos" en la explicación de la instrucción CREATE TABLE. Por lo tanto, habrá que especificar el nombre de la columna, su tipo y, eventualmente, su valor por defecto y los vínculos impuestos en la columna. La la palabra clave COLUMN se puede omitir (aquí y en todos los casos sucesivos). Eliminación de una columna de la tabla ALTER TABLE nombre_tabla DROP [ COLUMN ] nombre_columna { RESTRICT CASCADE } nombre_columna es el nombre de la columna que se quiere eliminar. Las cláusulas RESSTRIC y CASCADE se comportan exactamente como en la instrucción DROP TABLE que se ha visto anteriormente. La instrucción fallará, además de en los casos ya vistos para RESTRICT, si se intenta eliminar una columna que es la única de una tabla. Cambio del valor por defecto de una columna ALTER TABLE nombre_tabla ALTER [ COLUMN ] nombre_columna { SET cláusula_defecto DROP DEFAULT } La sintaxis y el significado de la cláusula que define el nuevo valor de defecto son idénticos a los de la cláusula_defecto que se usa en la orden CREATE TABLE. Eliminación de un vínculo de la tabla ALTER TABLE nombre_tabla DROP CONSTRAINT nombre_vínculo { RESTRICT CASCADE } Elimina el vínculo identificado por el nombre especificado. La operación falla si se ha especificado la cláusula RESTRICT y existen otros vínculos que dependen del que se intenta eliminar. Especificando la cláusula CASCADE la operación se completará siempre con éxito, borrando además los vínculos que dependen de que se ha eliminado. A menudo se quiere eliminar un vínculo al que no se le ha dado un nombre explícitamente, poniendo antes de la definición del vínculo la cláusula opcional [CONSTRAINT nombre_vínculo]. En ese caso, desde el momento que la DBMS habrá asignado de todos modos un nombre al vínculo para poderlo identificar, será necesario interrogar a las tablas de sistema de la DBMS y que nos dé su nombre. La particular interrogación solicitada depende de la DBMS específica que se haya usado. Adición de un vínculo a la tabla ALTER TABLE nombre_columna ADD vínculo_de_tabla

14 La sintaxis que hay que usar para la definición del vínculo es la misma que se usa en la orden CREATE TABLE para los vínculos de tabla.

SQL Sintaxis. Ejemplo de Alumno, Curso, Profesor. Esquemas de Alumno, Curso, Profesor. Andrés Moreno S.

SQL Sintaxis. Ejemplo de Alumno, Curso, Profesor. Esquemas de Alumno, Curso, Profesor. Andrés Moreno S. SQL Sintaxis Andrés Moreno S. 1 Ejemplo de Alumno, Curso, Profesor RutAlumno Nombre Apellido Carrera Alumno Apellido2 Créditos SiglaCurso Toma Curso Dicta NomProfesor Profesor ApellidoP Apellido2P NombreCurso

Más detalles

SQL Sintaxis. OpenOffice. Ejemplo de Alumno, Curso, Profesor. Ejemplo de Alumno, Curso, Profesor. Andrés Moreno S. Nombre. Apellido. RutAlumno.

SQL Sintaxis. OpenOffice. Ejemplo de Alumno, Curso, Profesor. Ejemplo de Alumno, Curso, Profesor. Andrés Moreno S. Nombre. Apellido. RutAlumno. SQL Sintaxis OpenOffice Andrés Moreno S. 1 Ejemplo de Alumno, Curso, Profesor RutAlumno Carrera Nombre Alumno Apellido Apellido2 Créditos SiglaCurso Toma Curso Dicta NomProfesor Profesor ApellidoP Apellido2P

Más detalles

SQL, Consultas. Son Importantes las Consultas? Cuál es el Resultado de SELECT? Andrés Moreno S.

SQL, Consultas. Son Importantes las Consultas? Cuál es el Resultado de SELECT? Andrés Moreno S. SQL, Consultas Andrés Moreno S. 1 Son Importantes las Consultas? Una cosa es guardar la información en forma estructurada y ordenada. Pero el utilizar la información y entender su relevancia son la clave

Más detalles

3.2. Construcción de la base de datos Introducción al lenguaje SQL

3.2. Construcción de la base de datos Introducción al lenguaje SQL 3.2. Construcción de la base de datos 3.2.1. Introducción al lenguaje SQL El Lenguaje de Consulta Estructurado (Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales

Más detalles

Modulo I: Introducción Gestores de Bases De Datos

Modulo I: Introducción Gestores de Bases De Datos Modulo I: Introducción Gestores de Bases De Datos El SQL El SQL (Lenguaje de Consulta Estructurado Structure Query Language), es un lenguaje de consulta estructurado establecido claramente como el lenguaje

Más detalles

Manejo de Tablas y Llaves Foráneas

Manejo de Tablas y Llaves Foráneas Manejo de Tablas y Llaves Foráneas Llaves Foráneas Para manejar las llaves foráneas, deben crearse al menos dos tablas, la primera tal y como se ha hecho anteriormente CREATE TABLE nombre_tabla ( nombre_columna_1

Más detalles

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 Página 1 de 6 GUIA N 5 LINEA DE COMANDOS MYSQL I. CREAR, SELECCIONAR, VISUALIZAR 1. CREAR BASE DE DATOS CREATE DATABASE Nombre_Base_Datos; 2. VER LISTADO DE BASES DE DATOS SHOW DATABASES; 3. USAR UNA BASE

Más detalles

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA Página 1 de 6 GUIA N 7 COMANDOS MYSQL I. CREAR, SELECCIONAR, VISUALIZAR 1. CREAR BASE DE DATOS CREATE DATABASE Nombre_Base_Datos; 2. VER LISTADO DE BASES DE DATOS SHOW DATABASES; 3. USAR UNA BASE DE DATOS

Más detalles

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo SQL. DDL (Data Definition Language) BASES DE DATOS (I.T.I. Gestión) Tipo boolean character Bit Numéricos Tipos de datos en SQL Declaración estándar Declaración en ORACLE BOOLEAN CHAR (longitud) char(longitud),

Más detalles

SQL: Lenguaje de Interrogación Estructurado

SQL: Lenguaje de Interrogación Estructurado SQL: Lenguaje de Interrogación Estructurado SQL Es el lenguaje para Bases de Datos Relacionales más usado Es un lenguaje declarativo: QUÉ no CÓMO El núcleo fundamental se basa en el Algebra Relacional,

Más detalles

Insertar Datos en Tablas

Insertar Datos en Tablas Insertar Datos en Tablas La instrucción básica para insertar valores a los atributos (columnas) de una tabla es la instrucción INSERT INTO Insertar una sola tupla Para insertar una tupla en la tabla, se

Más detalles

Tablas -SQL Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS

Tablas -SQL Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS Tablas -SQL Curso Bases de Datos Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS SQL (Structured Query Language) SQL lenguaje usado para definir, manipular,

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

Introducción a SQL (DDL)

Introducción a SQL (DDL) Introducción a SQL (DDL) Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2012 Introducción a SQL Objetivos de este tema

Más detalles

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT Introducción Objetivos I-2 Objetivos del Curso I-3 Oracle11g - 12cI-5 Oracle Database 11g - 12cI-6 Oracle Application Server 11g - 12cI-7 Oracle Enterprise Manager 11g - 12cGrid Control I-8 Sistema de

Más detalles

SQL. Amparo López Gaona. México, D.F. Noviembre 2003

SQL. Amparo López Gaona. México, D.F. Noviembre 2003 Amparo López Gaona México, D.F. Noviembre 2003 Introducción El lenguaje SQL (Structured Query Language) es el lenguaje estándar para trabajo con bases de datos relacionales. Permite la definición, acceso

Más detalles

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL.

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL. CONTENIDO: 1. Lenguaje SQL 1. Componentes 2. Comandos 3. Clausulas 4. Operadores lógicos 5. Operadores de comparación 6. Funciones de agregado 2. MYSQL 1. Como entrar a MySQL 2. Comandos generales 3. Sintaxis

Más detalles

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD)

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD) TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD 6.1 Introducción Hasta ahora hemos estudiado las sentencias que forman parte del DML (Data Management Language lenguaje de manipulación de datos, todas esas

Más detalles

Bases de Datos Geográficos

Bases de Datos Geográficos Bases de Datos Geográficos SQL - Lenguaje de Bases de Datos Relacionales Instituto de Agrimensura - Facultad de Ingeniería Universidad de la República Introducción El nombre SQL (Structured Query Language)

Más detalles

Lenguaje de manipulación de datos

Lenguaje de manipulación de datos Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación de la BD. El más popular es SQL. Tablas de ejemplo

Más detalles

Bases de Datos 1. Teórico: Structured Query Language

Bases de Datos 1. Teórico: Structured Query Language Bases de Datos 1 Teórico: Structured Query Language Historia Los orígenes del SQL están ligados a los orígenes de las bases de datos relacionales Estandarizado por ANSI en 1986 (SQL-86) Hubieron varias

Más detalles

Unidad III. Bases de Datos

Unidad III. Bases de Datos Clase:11 1 Unidad III Bases de Datos 2 SQL. Comandos de DDL. Comandos de DML. Agenda 3 SQL Structured Query Language SQL Los comandos del SQL pueden dividirse en tres grupos: Comandos de definición de

Más detalles

Ambos conjuntos son completamente distintos: propósito, acciones,... L M D. datos

Ambos conjuntos son completamente distintos: propósito, acciones,... L M D. datos 4. Lenguaje SQL Instrucciones del Lenguaje SQL: divididas en dos tipos para la definición de los objetos: Lenguaje de Definición de Datos para el manejo de la información: Lenguaje de Manipulación de Datos

Más detalles

SQL: Lenguaje de definición de datos (DDL) (*) DBMS: DATA BASE MANAGEMENT SYSTEM. SGBD: SISTEMAS GESTOR DE BASE DE DATOS

SQL: Lenguaje de definición de datos (DDL) (*) DBMS: DATA BASE MANAGEMENT SYSTEM. SGBD: SISTEMAS GESTOR DE BASE DE DATOS SQL: Lenguaje de definición de datos (DDL) (*) DBMS: DATA BASE MANAGEMENT SYSTEM. SGBD: SISTEMAS GESTOR DE BASE DE DATOS Objetivos Enseñar al alumno las sentencias que forman el lenguaje de definición

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL) Qué es una base de datos? Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y

Más detalles

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 ÍNDICE Introducción... XI Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 Características y novedades de Access 2010... 1 Comienzo rápido del trabajo y seguimiento de la información...

Más detalles

SQL JULIO CESAR CANO R

SQL JULIO CESAR CANO R SQL JULIO CESAR CANO R Introducción a SQL Qué significa SQL? Qué es el SQL? Significado de SQL Ingles Structured Query Language Español Lenguaje Estructurado de Consultas Qué es SQL? Es un lenguaje de

Más detalles

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 1 SQL Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 2 Structured Query Language Lenguaje de consulta para bases de datos comerciales. Originalmente llamado

Más detalles

se menciona la clasificación de los diversos modelos que existen para manejar

se menciona la clasificación de los diversos modelos que existen para manejar 4. SQL Este capítulo 3 contiene todo lo relativo a las características de las bases de datos, se menciona la clasificación de los diversos modelos que existen para manejar bases de datos. Se explica de

Más detalles

1. DML. Las consultas de resumen

1. DML. Las consultas de resumen 1.1 Introducción 1. DML. Las consultas de resumen Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes de los datos contenidos en las columnas de las tablas. Para poder llevarlo

Más detalles

RESUMEN DEL LENGUAJE SQL

RESUMEN DEL LENGUAJE SQL RESUMEN DEL LENGUAJE SQL AUTORÍA JOSEFA PÉREZ DOMINGUEZ TEMÁTICA INFORMATICA ETAPA CICLO FORMATIVO DE GRADO SUPERIOR Y MEDIO DE INFORMATICA Resumen Con esta publicación muestra un resumen de la sintaxis

Más detalles

MATERIAL SOBRE SENTENCIAS SQL

MATERIAL SOBRE SENTENCIAS SQL MATERIAL SOBRE SENTENCIAS SQL Retomado este esquema Relacional obtenido en el ejemplo de normalización): EDITOR Editor_Nombre, Editor_Direccion, Editor_Telefono ) LIBRO Libro_ID, Titulo, Editor_Nombre

Más detalles

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez INFORMÁTICA MÉDICA Profesor: MsC. Liz Armenteros Chávez Tema No.2: Gestión de la Información Biomédica Conferencia No.3 DDL (Data Definition Language) Lenguaje de definición de datos Marzo, 2014 Definir

Más detalles

6.1. Introducción. Guía 5. SQL.

6.1. Introducción. Guía 5. SQL. 6.1. Introducción. Guía 5. SQL. 1 6.2. Lenguaje de Definición de Datos (Data Definition Language DDL-). 2 3 4 5 -------------------------------------------------------------------------------------------------------------------------

Más detalles

RESUMEN SQL. Tipo de coincidencia Modelo Planteado Coincide No coincide. Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab'

RESUMEN SQL. Tipo de coincidencia Modelo Planteado Coincide No coincide. Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab' RESUMEN SQL Agustina Botas May COMO SE ESCRIBE UNA CONSULTA SELECT : campos WHERE : criterios que se aplican directamente a los datos (aplica a TODOS los registros) GROUP BY: agrupación de los datos seleccionados

Más detalles

SQL. Orígenes y Evolución

SQL. Orígenes y Evolución SQL 1 SQL. Orígenes y Evolución 2 SQL: Estándar oficial 3 Funciones de SQL DDL Data Definition Language Creación n de estructuras de la base de datos Integridad de los datos DML Data Manipulation Language

Más detalles

1 2 3 ( /! 3 ) +, 1& 3 0))) % &! ( ) +,. / & 0)))

1 2 3 ( /! 3 ) +, 1& 3 0))) % &! ( ) +,. / & 0))) ! !! # ! 1 2 3 ( 1 2 3. /! 3 ) +, 1& 3 0))) % &! ( ) +,. / & 0))) 4 2 5! 4 /! 4 # 2 / # %! # ( # %! #!! # %! #! )! & ,,, #./ 0 + . 4 # 4. 0! 2! ) 3! 1 ,! 2 % % 7 0! 2 % &! ) 3! 56 %&! #! 55 ( ) 58 ( )

Más detalles

Bases de Datos Relacionales y SQL: Una Introducción

Bases de Datos Relacionales y SQL: Una Introducción 1 Bases de Datos Relacionales y SQL: Una Introducción Protein Design Group, CNB CSIC 2 Sumario Qué es un SGBDR? Usuarios de base de datos Tablas: creación y definición de restricciones Manipulación de

Más detalles

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón 1. Lenguaje de Definición de Datos 2. Lenguaje de Manipulación de Datos M. C. Gustavo Alfonso Gutiérrez Carreón Los 'sistemas de gestión de bases de datos (en inglés database management system, abreviado

Más detalles

Integridad Referencial. Restricciones (constraints)

Integridad Referencial. Restricciones (constraints) Integridad Referencial Restricciones (constraints) Integridad de Referencial Integridad referencial: asegura la integridad entre las llaves foráneas y primarias (relaciones padre/hijo). Existen cuatro

Más detalles

Modificar estructura Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, etc.

Modificar estructura Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, etc. EL lenguaje SQL(Structured Query Language) El Lenguaje de Consulta Estructurado (Structured Query Language) es unlenguaje de acceso a bases de datos relacionales que permite especificar diversos tipos

Más detalles

UNIVERSIDADE DE VIGO ESCOLA TÉCNICA SUPERIOR DE ENXEÑEIROS DE MINAS MÉTODOS COMPUTACIONALES. Transparencias

UNIVERSIDADE DE VIGO ESCOLA TÉCNICA SUPERIOR DE ENXEÑEIROS DE MINAS MÉTODOS COMPUTACIONALES. Transparencias UNIVERSIDADE DE VIGO ESCOLA TÉCNICA SUPERIOR DE ENXEÑEIROS DE MINAS MÉTODOS COMPUTACIONALES Transparencias Índice de la asignatura Niveles de abstracción en una base de datos Funciones de un Sistema Gestor

Más detalles

Tutorial MySql - 1 -

Tutorial MySql - 1 - Tutorial MySql - 1 - Índice 1 - Introducción...4 2 - show databases...5 3 - Creación de una tabla y mostrar sus campos (create table - show tables - describe - drop table)...6 4 - Carga de registros a

Más detalles

El SQL es un lenguaje estándar de programación para el acceso a bases de datos.

El SQL es un lenguaje estándar de programación para el acceso a bases de datos. El SQL es un lenguaje estándar de programación para el acceso a bases de datos. El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base de datos del mercado, como por ejemplo, para

Más detalles

Introducción SQL. Ges2ón y Modelación de Datos María Constanza Pabón

Introducción SQL. Ges2ón y Modelación de Datos María Constanza Pabón Introducción SQL Ges2ón y Modelación de Datos María Constanza Pabón PostgreSQL Es un ORDBMS (object rela2onal database management system) Derivado de Postgres, que fue desarrollado en la Universidad de

Más detalles

Bases de Datos: Structured Query Language (SQL)

Bases de Datos: Structured Query Language (SQL) Structured Query Language (SQL): Introducción Bases de Datos: Structured Query Language (SQL) Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile

Más detalles

TEMA 4.. CONSULTA DE DATOS I.

TEMA 4.. CONSULTA DE DATOS I. TEMA 4.. CONSULTA DE DATOS I. 4.1 El lenguaje DML (Lenguaje de manipulación de datos) Las sentencias DML(Data Manipulation Language) del lenguaje SQL (Structured Query Language o Lenguaje de peticiones

Más detalles

Oracle Database 12c SQL and PLSQL Fundamentals

Oracle Database 12c SQL and PLSQL Fundamentals Oracle Database 12c SQL and PLSQL Fundamentals DESCRIPCION MODULOS DE CAPACITACION Introducción Información general sobre 12c de base de datos Oracle y productos afines Descripción de los conceptos y la

Más detalles

Bases de Datos 2. Teórico

Bases de Datos 2. Teórico Bases de Datos 2 Teórico Structured Query Language (SQL) Características de SQL Standard Opera sobre conjuntos de tuplas: incluso para las operaciones de inserción, borrado y actualización. No elimina

Más detalles

Anexo 3 COMPONENTES DE SQL SERVER. Los DDL (Data Definition Languaje) que permiten crear y definir nuevas

Anexo 3 COMPONENTES DE SQL SERVER. Los DDL (Data Definition Languaje) que permiten crear y definir nuevas Anexo 3 COMPONENTES DE SQL SERVER COMANDOS Existen tres tipos de comandos SQL [5]: Los DDL (Data Definition Languaje) que permiten crear y definir nuevas bases de datos, campos e índices. En la tabla se

Más detalles

Manejo de Tablas y Llaves Sencillas

Manejo de Tablas y Llaves Sencillas Manejo de Tablas y Llaves Sencillas El Motor de Almacenamiento El motor de almacenamiento (storage-engine) se encarga de almacenar, manejar y recuperar información de una tabla. Los motores más conocidos

Más detalles

Tema 5. Lenguaje de Definición de Datos

Tema 5. Lenguaje de Definición de Datos Tema 5 Lenguaje de Definición de Datos Índice Tema 5 1. Creación de tablas. Restricciones 2. Consultas de creación de tablas. 3. Modificación de la estructura de una tabla. 4. Borrado de tablas. 5. Creación

Más detalles

SQL Básico. José Muñoz Jimeno Febrero 2015

SQL Básico. José Muñoz Jimeno Febrero 2015 SQL Básico José Muñoz Jimeno Febrero 2015 Control de cambios Version Fecha Comentarios 1.0 13/02/2015 Primera versión para el curso Introducción a las bases de datos con MySQL en el COITCV La última versión

Más detalles

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ] SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje

Más detalles

Bases de datos. Lenguajes de consulta. SQL básico

Bases de datos. Lenguajes de consulta. SQL básico Bases de datos Lenguajes de consulta SQL básico SQL Structured Query Language Lenguaje de consulta estructurado Lenguaje declarativo de alto nivel Lenguaje estándar para los SGBD relacionales comerciales

Más detalles

Conexiones a BD. Juan Manuel Espinoza Marquez CFT San Agustín Linares -2012

Conexiones a BD. Juan Manuel Espinoza Marquez CFT San Agustín Linares -2012 Conexiones a BD Juan Manuel Espinoza Marquez juanmanuel.espinoza@gmail.com CFT San Agustín Linares -2012 Bases de datos en la Web Las bases de datos permiten almacenar de una forma estructurada y eficiente

Más detalles

SQL - DDL y consultas de actualización. José Muñoz Jimeno Febrero 2015

SQL - DDL y consultas de actualización. José Muñoz Jimeno Febrero 2015 SQL - DDL y consultas de actualización José Muñoz Jimeno Febrero 2015 Control de cambios Versión Fecha Comentarios 1.0 13/02/2015 Primera versión para el curso Introducción a las bases de datos con MySQL

Más detalles

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos Grupo de Bases de Datos Avanzadas Univ. Carlos III de Madrid Índice V.1 Introducción V.1 SQL como Lenguaje de V.1.1 Definición del esquema V.1.2 Evolución del esquema V.2 SQL como Lenguaje de Manipulación

Más detalles

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1 ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1 TEMA 1. CONSULTAS BÁSICAS Fundamentos de SQL Tipos de datos, operadores y literales Sentencia SELECT Limitación de filas y operadores Ordenación

Más detalles

Temario. Índices simples Árboles B Hashing

Temario. Índices simples Árboles B Hashing Temario Introducción y fundamentos Introducción a SQL Modelo Entidad / Relación Modelo relacional Diseño relacional: formas normales Consultas Cálculo relacional Álgebra relacional Implementación de bases

Más detalles

SQL SQL. Índice. Componentes. Objetivos

SQL SQL. Índice. Componentes. Objetivos Estándar En 1986, ANSI (American National Standard Institute) definión un estándar para (Structured Query Language) que fue posteriormente adoptado en 1987 como estándar internacional por ISO (International

Más detalles

Computación Web (Curso 2015/2016)

Computación Web (Curso 2015/2016) Bases de Datos (I) Computación Web (Curso 2015/2016) Jesús Arias Fisteus // jaf@it.uc3m.es Bases de Datos (I) p. 1 Bases de datos relacionales Colección de datos almacenados en una o más tablas. Las tablas

Más detalles

2 - Para instalar PostgreSQL. # apt-get install postgresql

2 - Para instalar PostgreSQL. # apt-get install postgresql La base de datos es el corazón de toda empresa, en ella se almacena y se gestiona toda la información que se necesita para operar y crecer. Las (buenas) bases de datos se manejan a través de SQL (Standar

Más detalles

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos. SGBD y SQL Access SQL: DDL y DML Ejercicio Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos. Necesita almacenar información acerca de sus empleados y los proyectos en

Más detalles

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE ING. INDUSTRIAL Base de Datos Resultados Internet Requerimientos BASE DATOS Docente: Ing. Francisco Rodríguez Base de Datos Tema 6: El Lenguaje Estándar SQL

Más detalles

T07 Opciones de integridad referencial

T07 Opciones de integridad referencial 1 de 9 17/05/2013 13:48 Lecciones SQL > T07 Opciones de integridad referencial Contenidos 1 Las opciones para mantener la integridad Las opciones para mantener la integridad referencial 2 On delete referencial

Más detalles

INTRODUCCIÓN A LAS BASES DE DATOS. L.I Gerardo Benavides Pérez

INTRODUCCIÓN A LAS BASES DE DATOS. L.I Gerardo Benavides Pérez INTRODUCCIÓN A LAS BASES DE DATOS L.I Gerardo Benavides Pérez SISTEMA GESTOR DE BASE DE DATOS Un sistema gestor de bases de datos (SGBD) consiste en una colección de datos interrelacionados y un conjunto

Más detalles

MANUAL BÁSICO DE MYSQL

MANUAL BÁSICO DE MYSQL MANUAL BÁSICO DE MYSQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO MANUAL BÁSICO DE MYSQL... 1 INTRODUCCIÓN... 3 1. CONECTARSE CON

Más detalles

- 1 - Mg. Abril Saire Peralta

- 1 - Mg. Abril Saire Peralta MYSQL LENGUAJE DE DEFINICIÓN DE DATOS (LDD) Permite definir la estructura y relaciones entre los objetos de la base de datos. Define el esquema interno de la base de datos a través de los siguientes comandos:

Más detalles

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011 Structured Query Language () Fundamentos de Bases de Datos InCo - Un poco de historia Lenguajes de consulta relacionales: SEQUEL (IBM-1970) QUEL (Ingres-1970) QBE (IBM-1970) es el lenguaje comercial más

Más detalles

GBD Diseño físico de DDBB

GBD Diseño físico de DDBB GBD Diseño físico de DDBB Mª Carmen Gabarrón Manual SQL de Oracle 10g http://download.oracle.com/docs/cd/b19306_01/server.102/b14200/index.htm SQL SQL es el lenguaje de consulta universal para bases de

Más detalles

FUNDAMENTOS ORACLE 12C

FUNDAMENTOS ORACLE 12C FUNDAMENTOS ORACLE 12C Introducción a Oracle Fundamentos 12c Aprende a programar en SQL con la base de datos más poderosa del mercado. Diseña y modela bases de datos corporativas utilizando las herramientas

Más detalles

Bases de datos relacionales y SQL

Bases de datos relacionales y SQL Bases de datos relacionales y SQL Jesús Arias Fisteus Aplicaciones Web (2016/17) Aplicaciones Web (2016/17) Bases de datos relacionales y SQL 1 Parte I Introducción a las bases de datos relacionales Aplicaciones

Más detalles

El lenguaje SQL III: Creación de bases de datos y seguridad. Introducción

El lenguaje SQL III: Creación de bases de datos y seguridad. Introducción Introducción La estructura de la base de datos se maneja mediante las sentencias denominadas lenguaje de definición de datos El lenguaje de definición de datos permite: Definir y crear nuevas tablas: CREATE

Más detalles

Tema 1. Introducción a MySQL. José Muñoz Jimeno Octubre 2015

Tema 1. Introducción a MySQL. José Muñoz Jimeno Octubre 2015 Tema 1. Introducción a MySQL José Muñoz Jimeno Octubre 2015 Control de cambios Versión Fecha Comentarios 1.0 21/05/2015 Primera versión para el curso Introducción a la administración de MySQL en el COITCV

Más detalles

LENGUAJE DE MANIPULACIÓN DE DATOS

LENGUAJE DE MANIPULACIÓN DE DATOS LENGUAJE DE MANIPULACIÓN DE DATOS Las instrucciones de DML funcionan con los datos de la base de datos. Mediante estas instrucciones puede cambiarlos o recuperar información. Las instrucciones de DML incluyen:

Más detalles

Clase 4: SQL DDL DML Consultas Simples y Multitablas. BASE DE DATOS FAC.DE INGENIERIA - UNJu

Clase 4: SQL DDL DML Consultas Simples y Multitablas. BASE DE DATOS FAC.DE INGENIERIA - UNJu Clase 4: SQL DDL DML Consultas Simples y Multitablas BASE DE DATOS FAC.DE INGENIERIA - UNJu SQL (Structured query language) Es un lenguaje de consulta estructurado, surgido de un proyecto de investigación

Más detalles

Tema 4. DML (Parte I)

Tema 4. DML (Parte I) Tema 4 DML (Parte I) IES Francisco Romero Vargas Departamento de Informática Tema 4. DML (I). Página 1 de 9 1. Introducción Un Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un

Más detalles

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD Ligaduras de Integridad y Restricciones sobre la BD Outline 1 Introducción 2 Ligaduras de Dominio 3 Llaves Primarias 4 Llaves de Unicidad 5 Integridad Referencial Introducción y Motivación Por qué se deben

Más detalles

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127 I. DATOS INFORMATIVOS Carrera Especialidad Curso Código Ciclo : Tercero Requisitos Duración Horas Semana : 06 horas Versión : v.0110 II. SUMILLA : COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería

Más detalles

Prácticas EDAT Curso 12/13

Prácticas EDAT Curso 12/13 Prácticas EDAT Curso 12/13 Alejandro Bellogín Escuela Politécnica Superior Universidad Autónoma de Madrid Septiembre 2012 http://www.eps.uam.es/~abellogin Esquema Parte I Contacto Organización de las prácticas

Más detalles

MATERIAL INTRODUCTORIO ORACLE 11G

MATERIAL INTRODUCTORIO ORACLE 11G MATERIAL INTRODUCTORIO ORACLE 11G Esp. JONATHAN GUERRERO ASTAIZA Capacidades de una sentencia SELECT La sentencia SELECT recibe información a partir de una base de datos. Con la sentencia SELECT usted

Más detalles

Manual de Sentencias Básicas en SQL

Manual de Sentencias Básicas en SQL Manual de Sentencias Básicas en SQL Pues hoy que he estado enredando un rato con MySQl, y me he acordado de aquellos comienzos en los que tenía que volver a mis antiguos apuntes para lograr entender las

Más detalles

Consultas Complejas:

Consultas Complejas: Consultas Complejas: SELECCIÓN-AGRUPAMIENTO Un grupo se puede entender como un conjunto de filas con el mismo valor para el conjunto de columnas por las que se agrupa (las incluidas en la cláusula GROUP

Más detalles

Usando los operadores SET (Conjunto)

Usando los operadores SET (Conjunto) Usando los operadores SET (Conjunto) Objetivos del capítulo Describir los operadores SET (Conjunto) Usar un operador SET (Conjunto) para combinar múltiples consultas en una consulta simple Controlar el

Más detalles

Operadores. Además se pueden emplear en sentencias SET.

Operadores. Además se pueden emplear en sentencias SET. Operadores MySQL dispone de multitud de operadores diferentes para cada uno de los tipos de columna. Esos operadores se utilizan para construir expresiones que se usan en cláusulas ORDER BY y HAVING de

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

Unidad. Lenguaje SQL. (Structured Query Language)

Unidad. Lenguaje SQL. (Structured Query Language) Unidad Lenguaje SQL (Structured Query Language) 1 SQL Definición DDL Consulta y Actualización DML Create Alter Drop Select Insert Update Delete 2 SQL DDL CREATE TABLE nombre_tabla (nombre_columna tipo_dato/dominio

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DML. Ing. Alfonso Vicente, PMP

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DML. Ing. Alfonso Vicente, PMP Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: DML Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda DML Sentencias Modificando la instancia Agenda DML Sentencias

Más detalles

Fundamentos de Bases de Datos. Práctica 8.

Fundamentos de Bases de Datos. Práctica 8. Fundamentos de Bases de Datos. Práctica 8. Profesor: M.I. Gerardo Avilés Rosas gar@ciencias.unam.mx Laboratorio: Carlos Augusto Escalona Navarro caen@ciencias.unam.mx 8 de octubre de 2018 Se dan a conocer

Más detalles

Máster en Data Analytics SQL

Máster en Data Analytics SQL Máster en Data Analytics SQL SQL Structured Query Language = Lenguaje de consulta estructurada Lenguaje que permite: - Definición - Manipulación Datos - Control Hoy vamos a trabajar con MySQL Toda la

Más detalles

SUBCONSULTAS SQL. Cuando se ejecuta una consulta que contiene una subconsulta, la subconsulta se ejecuta por cada fila de la consulta principal.

SUBCONSULTAS SQL. Cuando se ejecuta una consulta que contiene una subconsulta, la subconsulta se ejecuta por cada fila de la consulta principal. SUBCONSULTAS SQL DEFINICION. Una subconsulta es una sentencia SELECT que aparece dentro de otra sentencia SELECT que llamaremos consulta principal. Se puede encontrar en la lista de selección, en la cláusula

Más detalles

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

Más detalles

SQL SERVER Curso Teórico-Práctico

SQL SERVER Curso Teórico-Práctico SQL SERVER 2008-2012 Curso Teórico-Práctico IMPLEMENTACION DE LA BASE DE DATOS Nomenclatura Todas las tablas tendrán: - Un identificador de tipo entero auto numérico. Ésta será la clave primaria. La denominamos

Más detalles

BASES DE DATO TO I VISTAS curso 2008

BASES DE DATO TO I VISTAS curso 2008 BASES DE DATOS I VISTAS curso 2008 Vistas: conceptos Una VISTA es una tabla virtual derivada de otras tablas (que pueden ser tablas base o también otras vistas). Sus tuplas no se almacenan sino que se

Más detalles

Guía práctica SQL. (c) Francisco Charte Ojeda

Guía práctica SQL. (c) Francisco Charte Ojeda Guía práctica SQL Introducción Qué es SQL? Aplicaciones de SQL Intérpretes de SQL Tipos de RDBMS (c) Francisco Charte Ojeda Cómo usar este libro Convenciones tipográficas 1. El modelo relacional 1.1. Introducción

Más detalles

Una tabla está en 5ta. Forma normal (5FN) o Forma Normal de Proyección-unión si está en 4FN y las únicas dependencias que existen son las

Una tabla está en 5ta. Forma normal (5FN) o Forma Normal de Proyección-unión si está en 4FN y las únicas dependencias que existen son las 5ta. Forma normal Una tabla está en 5ta. Forma normal (5FN) o Forma Normal de Proyección-unión si está en 4FN y las únicas dependencias que existen son las dependencias de unión de una tabla con sus proyecciones

Más detalles