Taller
Introducción al SQL
CURSOS DE VERANO 2016 FaCENA.
Carga horaria de 20hs.
Res. 1097/15 CD
Introducción al SQL - año 2016
Objetivos de la Clase
Sentencias SQL Select, Create, Insert, update,
delete, truncate, drop.
Modificar definiciones de tablas.
Valores nulos
Restricciones.
Introducción al SQL. Año 2016
Sentencia Create
CREATE TABLE table_name ( { < column_definition > | < table_constraint > } [ ,...n ] )
Donde:
< column_definition > ::=
{ column_name data_type }
[ { DEFAULT constant_expression
| [ IDENTITY [ ( seed , increment ) ] ]
}]
[ ROWGUIDCOL ]
[ < column_constraint > [ ...n ] ]
………………………….
[Link]
Introducción al SQL. Año 2016
Lenguaje SQL
CREATE
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr][, ...]);
CREATE TABLE Empleado (documento INT PRIMARY KEY,
apellido varchar(20) not null);
Introducción al SQL. Año 2016
Lenguaje SQL
INSERT
INSERT [ INTO ] objeto [ ( lista de columnas ) ]
VALUES ( ( { DEFAULT | NULL | expresión } [ ,...n ] ) [
,...n ] )
INSERT INTO Empleado VALUES (20111333,'GOMEZ');
Introducción al SQL. Año 2016
Lenguaje SQL
INSERT DESDE UN SELECT
INSERT [ INTO ] objeto [ ( lista de columnas ) ]
(SELECT [(lista columnas)] FROM Tabla
INSERT INTO Empleado
SELECT ContactID, LastName
FROM [Link]
WHERE EmailPromotion = 2;
Introducción al SQL. Año 2016
Lenguaje SQL
UPDATE
UPDATE objeto
SET nombre columna = { expresión | DEFAULT |
NULL } [ ,...n ]
[ FROM{ <tabla> } [ ,...n ] ]
[ WHERE { <condición> ]
UPDATE Empleado set apellido ='PEREZ'
WHERE apellido ='Achong';
Introducción al SQL. Año 2016
Sentencia Alter table
Modifica una definición de tabla, agrega o quita columnas y
restricciones.
Ejemplos:
Agrega nueva columna:
ALTER TABLE Empleado ADD nombre VARCHAR(20) NULL ;
Quita una Columna:
ALTER TABLE Empleado DROP COLUMN column_a;
Cambia el tipo de datos:
ALTER TABLE doc_exy ALTER COLUMN column_a DECIMAL (5, 2) ;
Agrega una columna con una restricción:
ALTER TABLE doc_exc ADD column_b VARCHAR(20) NULL CONSTRAINT
exb_unique UNIQUE ;
Agrega una restricción no comprobada:
ALTER TABLE doc_exd WITH NOCHECK
ADD CONSTRAINT exd_check CHECK (column_a > 1)
Agrega una restricción default:
ALTER TABLE doc_exz ADD CONSTRAINT col_b_def
DEFAULT 50 FOR column_b ;
Introducción al SQL. Año 2016
Sentencias Delete y truncate
La instrucción DELETE quita una o varias filas de una tabla o vista.
Ej:
1) DELETE
[FROM] tablax
WHERE col1 = 100
2) DELETE FROM [Link]
WHERE SalesPersonID IN
(SELECT SalesPersonID FROM [Link]
WHERE SalesYTD > 2500000.00 )
La instrucción TRUNCATE TABLE es un método rápido y no registrado para eliminar
todas las filas de una tabla. TRUNCATE TABLE es funcionalmente equivalente a la
instrucción DELETE sin una cláusula WHERE. Sin embargo, TRUNCATE TABLE es más
rápida y utiliza menos recursos de registro de sistema y de transacciones.
La instrucción DELETE quita una a una las filas y graba una entrada en el registro de
transacciones por cada fila eliminada.
Ej:
TRUNCATE table
Introducción al SQL. Año 2016
Sentencia Drop Table
Elimina la definición de una tabla y todos los datos, índices,
restricciones y especificaciones de permisos asociados.
Realiza un borrado físico de la tabla.
DROP TABLE < table_name >
Ejemplo:
DROP TABLE doc_exz
Introducción al SQL. Año 2016
VALORES NULOS
NULL = NULL ?
Funcion ISNULL()
Ej: Create table persona (id int, apellido varchar(20))
Insert into persona (id, apellido)
Values (1,null)
Create table historico_persona (id int, apellido varchar(20))
Insert into historico_persona (id, apellido)
Values (2,null)
select *
from persona a
inner join historico_persona h on [Link] = [Link]
Introducción al SQL. Año 2016
¿Qué Son las Restricciones?
Las restricciones fuerzan las reglas a nivel de tabla.
Las restricciones evitan la supresión de un registro si
hay dependencias.
Son válidos los siguientes tipos de restricción:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
Introducción al SQL. Año 2016
La Restricción FOREIGN KEY
DEPARTMENTS
PRIMARY
KEY
EMPLOYEES
FOREIGN
KEY
… No permitido
INSERT INTO
(9 no existe)
Permitido
Introducción al SQL. Año 2016
La Restricción FOREIGN KEY
Definida a nivel de tabla o de columna:
CREATE TABLE employees(
employee_id int,
last_name VARCHAR(25) NOT NULL,
email VARCHAR(25),
salary decimal(8,2),
commission_pct decimal(2,2),
hire_date DATETIME NOT NULL,
department_id int,
CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
REFERENCES departments(department_id),
CONSTRAINT emp_email_uk UNIQUE(email));
Introducción al SQL. Año 2016
Palabras Clave de la
Restricción FOREIGN KEY
• FOREIGN KEY: Define la columna de la tabla
secundaria a nivel de restricción de tabla.
• REFERENCES: Identifica la tabla y la columna en la
tabla principal.
Introducción al SQL. Año 2016
BIBLIOGRAFIA
Un Enfoque Practico del SQL.
ISBN 9789871076611. Morteo Francisco A. y Bocalandro
Nicolas L.E. Editorial COOPERATIVAS
ORACLE 11g. SQL, PL/SQL, SQL*PLUS.
ISBN 9782746053601. Gabillaud Jerome.
Oracle SQL and PL/SQL Handbook.
ISBN 9780201752946. John Adolph Palinski
SQL: Guia práctica para usuarios.
ISBN 9788441519152. Charte Ojeda, Francisco. Editorial
ANAYA
E. F. Codd, The Relational Model for Database
Management Version 2 (Reading, Mass.: Addison-Wesley,
1990).
Varios Sitios WEB.
Introducción al SQL. Año 2016
ESPACIO PARA PREGUNTAS
Introducción al SQL. Año 2016