0% encontró este documento útil (0 votos)
36 vistas19 páginas

1 SQL Tec 2023

SQL es un lenguaje estándar para la manipulación de bases de datos relacionales. Permite definir la estructura y los datos de las tablas, y realizar consultas, inserciones, actualizaciones y eliminaciones sobre los datos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
36 vistas19 páginas

1 SQL Tec 2023

SQL es un lenguaje estándar para la manipulación de bases de datos relacionales. Permite definir la estructura y los datos de las tablas, y realizar consultas, inserciones, actualizaciones y eliminaciones sobre los datos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

SQL

Structured Query Language


Parte 1

Bases de Datos
Tecnicatura en Web –Tecnicatura en Geoinformática
Profesorado en Computación –Profesorado en Matemáticas
Introducción
SQL: Strucured Query Language

 Es un lenguaje de consulta estructurado para bases de datos


relacionales.

 SQL proporciona una interfaz de alto nivel, el usuario especifica

Bases de Datos – 2023


solamente cuál es el resultado esperado y el SGBD se encarga de
la optimización y resolución de la consultas.

 SQL cuenta con sentencias de definición, consultas, manipulación,


actualización y control de datos.

 SQL utiliza los términos tabla, fila y columna para los términos
relación, nupla y atributo del modelo relacional formal, 2
respectivamente. Utilizaremos todos estos términos indistintamente.
Introducción
Un poco de historia…

 1970 - Edgar Codd propone el modelo relacional y asociado a este un lenguaje de


consulta basado en el algebra relacional y cálculo relacional orientado a tuplas.
 1977- IBM desarrolló uno de los primeros sistemas de gestión de bases de datos
relacionales, llamado System R y se creó un lenguaje de consulta llamado SEQUEL
(Structured English QUEry Language), precursor del SQL.

Bases de Datos – 2023


 1986- Primera versión estándar de SQL propiciada por Instituto Nacional
Estadounidense de Estándares (ANSI -American National Standards Institute) y
por la Organización Internacional de Normalización (ISO -International Standard
Organization). Esta estandarización permitió que SQL fuera adoptado de manera
más amplia en la industria.
 En la década del 90, se desarrollaron sistemas de gestión de bases de datos
relacionales que implementaban SQL. Ejemplos son Oracle, IBM DB2 y Microsoft
SQL Server, entre otras.
3
 SQL continuó evolucionando con nuevas versiones y hasta la actualidad es el
lenguaje estándar para la manipulación y gestión de datos en bases de datos
relacionales.
Introducción

Lenguaje de Definición de Datos  CREATE


(DDL)  ALTER
Sentencias que permiten definir el esquema de la base de
datos, creando, modificando y borrando la estructura de  DROP
sus objetos, sin tocar la información contenida en ellos.

Bases de Datos – 2023


Lenguaje de Manipulación de Datos  SELECT
SQL (DML)  INSERT
Sentencias que permiten acceder a las instancias de la
base de datos, mediante consultas, inserción,  DELETE
actualización y borrado de datos.
 UPDATE

Lenguaje de Control de Datos


(DCL) 4
Sentencias que permiten administrar permisos
sobre los datos.
CREATE SCHEMA (DDL)
 Un esquema en SQL es una colección lógica de objetos de la base de
datos, que se agrupan para facilitar la administración y la organización
de la base de datos.

 La sentencia CREATE SCHEMA se utiliza para crear un esquema que se


identifica con un nombre de esquema.

Bases de Datos – 2023


Sintaxis:
CREATE SCHEMA Nombre-Esquema;

Ejemplo :
CREATE SCHEMA Empresa;

5
CREATE TABLE (DDL)
 La sentencia CREATE TABLE permite crear una nueva relación (tabla)
en la base de datos asignándole un nombre y especificando sus
atributos (columnas) y sus claves.
 Para cada atributo se da un nombre, se debe especificar su tipo de
datos (dominio del atributo) y opcionalmente se pueden definir
algunas restricciones.

Bases de Datos – 2023


Sintaxis:
CREATE TABLE NombreTabla
(
NombreAtributo TIPO [ Lista de restricciones ]
……
NombreAtributo TIPO [ Lista de restricciones ]

[ PRIMARY KEY ( NombreAtributo [,NombreAtributo,...] ) ] 6

);
* La notación [...] indica que lo que hay entre los corchetes es opcional
CREATE TABLE (DDL)
Modelo Relacional
EMPLEADOS = { E-Cod, E-NbreApellido, E-Domicilio, E-CantHijos}
dom(E-Cod )=|N
dom(E-NbreApellido )=Alfa+
dom(E-Domicilio )=Alfa*
dom(D-CantHijos )=|N

Bases de Datos – 2023


Sentencia SQL

CREATE TABLE EMPLEADOS (


E-Cod INT NOT NULL,
E-NbreApellido VARCHAR (50) NOT NULL,
E-Domicilio VARCHAR (60),
E-CantHijos INT DEFAULT 0,
PRIMARY KEY (E-Cod )
); 7
CREATE TABLE (DDL)

Tipos de Datos

 Numéricos enteros: INT, SMALLINT

 Numéricos reales: FLOAT, REAL, DOUBLE PRECISION

Bases de Datos – 2023


 Secuencias de caracteres de largo fijo: CHAR (n)

 Secuencias de caracteres de largo variable: VARCHAR (n)

 Fecha : DATE, 10 posiciones AAAA-MM-DD

 Hora: TIME, 8 posiciones HH:MM:SS

8
CREATE TABLE (DDL)
Restricciones

 NOT NULL: no permite valores nulos.

 PRIMARY KEY: define el/los atributos que forman la clave


primaria de la tabla.

Bases de Datos – 2023


 UNIQUE: define los claves alternativas de la tabla.

 FOREIGN KEY: define el/los atributos de una tabla que identifican


unívocamente filas de otra tabla. Esta restricción es usada para
establecer e imponer una vinculación entre dos tablas.
9
CREATE TABLE (DDL)
PRIMARY KEY (Clave Principal)
 En una tabla puede existir una única declaración PRIMARY KEY
 La restricción PRIMARY KEY siempre implica una restricción NOT NULL

CREATE TABLE Docentes (


D-Cod INT NOT NULL,
D-NbreyApellido VARCHAR (50) NOT NULL,

Bases de Datos – 2023


D-Domicilio VARCHAR (60)
PRIMARY KEY (D-Cod)
);

Otra manera de hacer esta misma declaración:


CREATE TABLE Docentes (
D-Cod INT NOT NULL PRIMARY KEY,
D-NbreyApellido VARCHAR (50) NOT NULL,
D-Domicilio VARCHAR (60) 10
);
CREATE TABLE (DDL)
PRIMARY KEY (Clave Principal)
CREATE TABLE Facturas (
Tipo-F CHAR(1) NOT NULL,
Número-F INT NOT NULL,
Monto-F FLOAT DEFAULT 0,
PRIMARY KEY (Tipo-F, Número-F ) Declaración de una
); clave compuesta

Bases de Datos – 2023


En este caso sería erróneo hacer la siguiente declaración:

CREATE TABLE Facturas (


Tipo-F CHAR(1) NOT NULL PRIMARY KEY , Declaración de
Número-F INT NOT NULL PRIMARY KEY , dos claves
Monto-F FLOAT DEFAULT 0, simples
); 11
CREATE TABLE (DDL)
Claves Alternativas: UNIQUE

 La palabra UNIQUE puede aparecer exactamente en los mismos lugares en los


que puede aparecer la palabra PRIMARY KEY.

 En una tabla puede existir varias declaraciones UNIQUE pero sólo una
declaración PRIMARY KEY.

Bases de Datos – 2023


CREATE TABLE Docentes (
D-Cod INT NOT NULL,
D-CUIL INT NOT NULL UNIQUE,
D-NroLegajo INT NOT NULL UNIQUE,
D-NombreApellido VARCHAR (50) NOT NULL,
D-Domicilio VARCHAR (60),
PRIMARY KEY (D-Cod)
); 12
CREATE TABLE (DDL)
Restricciones de Integridad Referencial: FOREING KEY

 Durante la creación de la tabla se especifican las restricciones de integridad


mediante la cláusula FOREIGN KEY.

CREATE TABLE NombreTabla

Bases de Datos – 2023


(
NombreAtributo TIPO [ NOT NULL ] [ DEFAULT valor ] [ PRIMARY KEY ] ,
………………..
NombreAtributo TIPO [ NOT NULL ] [ DEFAULT valor ] [ PRIMARY KEY ] ,
[ PRIMARY KEY (NbreAtributo [,NbreAtributo,...]) ],
FOREIGN KEY (NbreAtributo) REFERENCES NbreTabla (NbreAtributo)
);
13
CREATE TABLE (DDL)
Restricciones de Integridad Referencial: FOREING KEY

Docentes = { D-Cod, D-DNI, D-NbreApellido, D-Domicilio}

Cursos = { C-Cod, C-Nombre, C-Duración, D-Cod-Supervisa}

Bases de Datos – 2023


CREATE TABLE Cursos (
C-Cod INT P RIMARY KEY,
C-Nombre VARCHAR (50) NOT NULL,
C-Duracion INT,
D-Cod-Supervisa INT NOT NULL,

FOREIGN KEY (D-Cod-Supervisa) REFERENCES Docentes (D-Cod) 14


);
CREATE TABLE (DDL)
Restricciones de Integridad Referencial: FOREING KEY

CREATE TABLE Docentes (


Docentes
D-Cod INT NOT NULL, D-Cod …..
D-NbreyApellido VARCHAR (50) NOT NULL,
D-Domicilio VARCHAR (60)
PRIMARY KEY (D-Cod)

Bases de Datos – 2023


);
Cursos
CREATE TABLE Cursos ( C-Cod ….. D-Cod-Supervisa
C-Cod INT PRIMARY KEY,
C-Nombre VARCHAR (50) NOT NULL,
C-Duracion INT,
D-Cod-Supervisa INT NOT NULL
FOREIGN KEY (D-Cod-Supervisa) REFERENCES Docentes (D-Cod) 15
);
CREATE TABLE (DDL)
Sintaxis completa de la sentencia:

CREATE TABLE NombreTabla


(
NombreAtributo TIPO [ NOT NULL ] [ DEFAULT valor ] [ PRIMARY KEY ] , [ UNIQUE ] ,
...

Bases de Datos – 2023


NombreAtributo TIPO [ NOT NULL ] [ DEFAULT valor ] [ PRIMARY KEY ] , [ UNIQUE ] ,

[ PRIMARY KEY ( NombreAtributo [,NombreAtributo,...] ) ]

[ UNIQUE ( NombreAtributo [,NombreAtributo,...] ) ]

[FOREIGN KEY (NombreAtributo) REFERENCES NombreTabla (NbreAtributo) ]

);
16
* La notación [...] indica que lo que hay entre los corchetes es opcional , se podría poner o no.
CREATE TABLE (DDL)
Se desea diseñar una base de datos que permita mantener información sobre
cursos de formación que realiza el personal docente de una universidad.
Por cada docente se registra su DNI, nombre, domicilio y un código único que
también lo identifica .
Por cada curso se registra un código único, el nombre del curso y la duración.
También se almacena para cada docente qué cursos tomó y en qué fecha.
Por cada curso hay un docente encargado de supervisar el dictado del mismo.

Bases de Datos – 2023


Puede suceder que un docente supervise más de un curso.

Docentes = { D-Cod, D-DNI, D-NbreApellido, D-Domicilio}

Cursos = { C-Cod, C-Nombre, C-Duración, D-Cod-Supervisa}

Tomó = { D-Cod-Tomó, C-Cod-Tomó, Fecha-Tomó} 17


CREATE TABLE (DDL)
CREATE TABLE Docentes (
D-Cod INT NOT NULL PRIMARY KEY,
D-DNI INT NOT NULL UNIQUE,
D-NbreApellido VARCHAR (50) NOT NULL,
D-Domicilio VARCHAR (60),
);

CREATE TABLE Cursos (


C-Cod INT NOT NULL PRIMARY KEY,

Bases de Datos – 2023


C-Nombre VARCHAR (50) NOT NULL,
D-Duracion INT,
D-Cod-Supervisa INT NOT NULL,
FOREIGN KEY (D-Cod-Supervisa) REFERENCES Docentes(D-Cod)
);

CREATE TABLE Tomo (


D-Cod-Tomo INT NOT NULL,
C-Cod-Tomo INT NOT NULL, El SGBD controla que se
Fecha-Tomo DATE NOT NULL, mantengan las
PRIMARY KEY (D-Cod, C-Cod-Tomo ) restricciones establecidas
FOREIGN KEY (D-Cod-Tomo) REFERENCES Docentes(D-cod) 18
por PRIMARY KEY,
FOREIGN KEY (C-Cod-Tomo) REFERENCES Cursos(C-cod)
); UNIQUE y FOREING KEY
Bases de Datos – 2023
19

También podría gustarte