Está en la página 1de 34

Comandos de Definición y

Manipulación del Lenguaje


Tipos de Comandos
• Los comandos SQL son instrucciones que se utilizan para comunicarse
con la base de datos y para realizar tareas específicas con datos por estas
contenidos.

Los comandos SQL se agrupan en cuatro grandes categorías


según su funcionalidad:

1. Data Definition Language (DDL).


2. Lenguaje de manipulación de datos (DML)
3. Transaction Control Language (TCL)
4. Data Control Language (DCL)

Prof. Jeannette Johnson de Herrera


Tipos de Comandos
1. Data Definition Language (DDL) - Estos comandos SQL se utilizan para crear,
modificar y quitar la estructura de los objetos de base de datos. Los comandos
son CREATE, ALTER, DROP, RENAME, y TRUNCATE

2 Lenguaje de manipulación de datos (DML) - Estos comandos SQL se utilizan


para almacenar, recuperar, modificar y eliminar datos. Estos comandos son
SELECT, INSERT, UPDATE y DELETE.

3. Transaction Control Language (TCL) - Estos comandos SQL se utilizan para


gestionar los cambios que afectan a los datos. Estos comandos son ROLLBACK,
COMMIT, y SAVEPOINT.

4. Data Control Language (DCL) - Estos comandos SQL se utilizan para


proporcionar seguridad a los objetos de base de datos. Sólo el administrador de
la base de datos o propietario del objeto de base de datos puede proporcionar o
quitar privilegios a un objeto de base de datos.

Prof. Jeannette Johnson de Herrera


Lenguaje de Definición de Datos
DDL
• Los DDL permiten crear objetos de la Base de Datos.
• Tablas ▪ Funciones
• Índices ▪ Vistas
• Usuarios ▪ Secuencias
• Procedimientos

• Son sentencias que afectan directamente la estructura de los


objetos.

• SQL cuenta con las siguientes instrucciones DDL el


• CREATE
• ALTER
• DROP
Prof. Jeannette Johnson de Herrera
D
D

CREATE TABLE
L

CREATE TABLE [nombreBD] . NombreTabla


(
Nombre_columna1 tipoDato
[PRIMARY KEY] [NOT NULL] [UNIQUE][DEFAULT defaultOption]
Nombre_columna2 tipoDato
[PRIMARY KEY] [NOT NULL] [UNIQUE][DEFAULT defaultOption]
….
[REFERENCES ParentTableName] [CHECK searchCondition] [,...]
[PRIMARY KEY (listOfColumns),]
[UNIQUE (listOfColumns),] […,]
[FOREIGN KEY (listOfFKColumns) REFERENCES ParentTableName
[(listOfCKColumns)],
[CHECK (searchCondition)] [,…])

Ver formato completo en: https://msdn.microsoft.com/es-es/library/ms174979(v=sql.120).aspx

Prof. Jeannette Johnson de Herrera


CREATE TABLE D
D
Las restricciones se pueden hacer: L
• A nivel de columnas
• A nivel de tablas.
Aunque puede omitirse el nombre, es importante identificarlo para tener referencia a la hora de
cualquier cambio.
Se recomienda el formato TipoRestricción_Tabla_Atributo
A nivel de columnas:
Hace referencia a una columna y se define dentro de la especificación de la misma
SINTAXIS:
nombre_col [CONSTRAINT nombre_restricción] tipo_restricción ]
Ejemplo:
use Empresa
create table Departamento1
(
Num_departamento nchar(10)
Constraint pk_Departamento1_Num_departamento primary key,
Nombre_departamanto nchar(50) not null
)
Prof. Jeannette Johnson de Herrera
CREATE TABLE D
D
L
A nivel de Tablas:
Hace referencia a una o más columnas y es definido separadamente de la definición de
las columnas de la tabla. Se puede definir cualquier restricción excepto NOT NULL.

Ejemplo:
use SegundaDB
create table Empleado1
(
Identif_Empl nchar(10),
Nombre_Empl nchar(50) not null,
Departamento_Lab nchar(10) not null ,
Constrain pk_Empleado1_Identif_Empl primary key (Identif_Empl),
Constraint fk_Empleado1_Departamento_Lab
foreign key (Departamento_Lab)
references Departamento1(Num_departamento)
)

Prof. Jeannette Johnson de Herrera


D
D

ALTER ALTER TABLE tabla L


{| [ALTER COLUMN columna ]
|{ ADD
{ <definiciónColumna> ::=
Permite modificar la columna tipoDeDatos
{ [NULL | NOT NULL]
estructura de una tabla | DROP COLUMN columna } [,…n]

1. Modificación de la
definición de una columna

ACCIONES
POSIBLES
2. Adición o eliminación 3. Adición o
de restricciones de una Eliminación de
tabla columnas

Prof. Jeannette Johnson de Herrera


D
D

ALTER
L

Si necesitara definirle a una tabla una llave


primaria

ALTER TABLE Cliente


ADD CONSTRAINT PK_Cliente_numclie PRIMARY KEY (num_clie)

Nota: si la llave primaria fuese compuesta, solo tiene que incluir los
nombres de los atributos en el paréntesis separándolos por coma.

Prof. Jeannette Johnson de Herrera


D
D

ALTER
L

Si necesitara cambiarle el tipo de dato o su


característica a un atributo:

ALTER TABLE Producto


ALTER COLUMN precio money

Donde money sería el nuevo tipo de dato (este debe


incluir el largo si el tipo de dato lo requiere)

Prof. Jeannette Johnson de Herrera


D
D

ALTER
L

Si necesitara agregarle o modificar la condición NULL o


NOT NULL a un dato:

ALTER TABLE Pedido


ALTER COLUMN repuesto char(3) NULL

Si este fuera el caso, Ud. tendrá que incluirle en la


instrucción el tipo de datos asociados para que el NULL o
NOT NULL se pueda incluir o modificar.

Prof. Jeannette Johnson de Herrera


D
D

ALTER
L

Si necesitara eliminar una columna o atributo:


ALTER TABLE Repventas
DROP COLUMN edad
Las columnas que se quitan son irrecuperables.
Asegúrese de que realmente desea eliminar la columna antes de hacerlo.

Si necesitara agregarle una columna o atributo:

ALTER TABLE Pedidos


ADD fecha_atencion datetime
nombre_atributo tipo_dato

Prof. Jeannette Johnson de Herrera


D

ALTER D
L
Si necesitara agregarle una regla FOREIGN KEY:
ALTER TABLE Empleado
ADD CONSTRAINT FK_Empleado_no_dep FOREIGN KEY (no_dep)
REFERENCES Departamento (empledo_num)

Nota: si la llave en la tabla padre es compuesta, también lo debe ser lo que declara como
llave foránea en esta tabla hijo.

Si necesitara eliminar una restricción:


1. Reconozca como se llama la restricción…para ello puede hacer uso del
procedimiento
• SP_HELP nombre de la tabla. (lista todo el detalle de la tabla)
• SP_HelpConstraint nombre tabla (lista específicamente los nombres de
restricciones que tienen la tabla nombrada)
2. Ubique la categorías de restricciones y sepa el nombre de la regla que va a
eliminar
ALTER TABLE Empledo
DROP CONSTRAINT FK_Empleado_no_dep

Prof. Jeannette Johnson de Herrera


D
D

DROP
L

Para eliminar TODO un esquema (ejemplo: una base de datos


con todas las tablas que la misma contiene), puede utilizar

DROP DATABASE nombre_BD


Ejemplo:
DROP DATABASE Pub
• Elimina la base de datos pub con todos las tablas que
contenga.
• La base de datos no puede estar en uso

Prof. Jeannette Johnson de Herrera


D
D

DROP
L

Para eliminar una tabla creada Ud. puede apoyarse en la


instrucción..

DROP TABLE nombre_tabla

Ejemplo:
DROP TABLE Cliente (elimina la tabla cliente)

Prof. Jeannette Johnson de Herrera


D
M

Tipos de Comandos
L

1. Data Definition Language (DDL) - Estos comandos SQL se utilizan para crear,
modificar y quitar la estructura de los objetos de base de datos. Los comandos
son CREATE, ALTER, DROP, RENAME, y TRUNCATE

2 Lenguaje de manipulación de datos (DML) - Estos comandos SQL se utilizan


para almacenar, recuperar, modificar y eliminar datos. Estos comandos son
SELECT, INSERT, UPDATE y DELETE.

3. Transaction Control Language (TCL) - Estos comandos SQL se utilizan para


gestionar los cambios que afectan a los datos. Estos comandos son ROLLBACK,
COMMIT, y SAVEPOINT.

4. Data Control Language (DCL) - Estos comandos SQL se utilizan para


proporcionar seguridad a los objetos de base de datos. Sólo el administrador de
la base de datos o propietario del objeto de base de datos puede proporcionar o
quitar privilegios a un objeto de base de datos.

Prof. Jeannette Johnson de Herrera


D
M
L
LENGUAJE DE MANIPULACIÓN DE DATOS
DML
• El lenguaje de manipulación de datos (DML) es un
vocabulario usado para recuperar y trabajar con datos en
SQL Server.
• Se usan estas instrucciones para agregar, modificar,
consultar o quitar datos de una base de datos de SQL
Server.
• Las sentencias DML permiten generar consultas para
ordenar, insertar, actualizar, filtrar, agrupar y extraer datos
de la Base de Datos.

Prof. Jeannette Johnson de Herrera


D
M

DML L

Prof. Jeannette Johnson de Herrera


D
M

INSERT
L

• Permite adicionar valores a una tabla.

• Debemos identificar la tabla y una lista de valores para cada


tupla (registro) de la tabla.

• Podemos insertar valores de varias formas:


1. Introduciendo datos en el mismo orden en que se definieron
2. Insertando datos a atributos en particular dentro de la tabla
3. Insertando datos al momento de la creación de la tabla, cargando
a ésta los resultados de una consulta realizada

Prof. Jeannette Johnson de Herrera


D
M

INSERT
1. Introduciendo datos en el mismo orden en que se definieron todos los
L

atributos .
No se detalla donde debe caer cada dato de entrada, asume que el primer dato
corresponde al primer atributo de la tabla y así sucesivamente; por lo que debe
haber correspondencia en cantidad y tipo de dato.

De tupla en tupla
Insert into Empleado
values (‘Jeannette’,’J’,’Johnson’, ‘FISC’,‘5603659’, 5)

Varias tuplas a la vez


Insert into Empleado
values (‘Jeannette’,’J’,’Johnson’, ‘FISC’, ‘5603659’, 5),
(‘Juan’,’P’,’Perez’, ‘FII’, ‘5603265’, 4),
(‘Rosa’,’M’,’Bristol’, ‘FIC’, ‘5603124’, 3)

Prof. Jeannette Johnson de Herrera


D
M

INSERT L

Prof. Jeannette Johnson de Herrera


D
M

INSERT
L

2. Insertando datos a atributos en


particular dentro de la tabla
Sólo se asignan valores a algunos atributos de la
tabla.
Los atributos no especificados reciben el valor que
se ha definido por default o null (la tabla tiene
muchos mas atributos que los 5 definidos)
insert into Empleado (nss,nombre, apellido, sexo, nd)
values ('3232321','Ester','López','F', 5)
Prof. Jeannette Johnson de Herrera
D
M
INSERT L

2. Insertando datos a atributos en particular dentro de


la tabla
Campos
nulos

Los valores no introducidos se llenan con nulos.


Si el atributo fue definido como not null, NO se puede proceder con la inserción
Prof. Jeannette Johnson de Herrera
D
M

INSERT
L 3. Insertando datos a una tabla
recién creada (o completamente
vacía), cargando a ésta los
resultados de una consulta
realizada.

Si queremos todos los datos


no utilizamos el where

Prof. Jeannette Johnson de Herrera


D
M
L
INSERT
Insertando datos a una
tabla que ya tiene datos,
tomando como insumo
los resultados de una
consulta realizada.
Note que en este caso son del
mismo tipo de dato, pero no
tienen la misma longitud. Lo
que si es que el dato que
recibe es mayor que el que es
copiado.

Prof. Jeannette Johnson de Herrera


D
M
L
DELETE o DELETE… .WHERE
• La instrucción elimina tuplas de una relación

• Si solo se utiliza DELETE, se eliminan todas las tuplas de la relación.


delete employee (Borra los datos de la tabla employee)

• Debe usar la instrucción WHERE para especificar que tuplas se desean


borrar
delete employee (Borra los datos de la tabla
employee que tengan
where job_id=7 job_id=7)

• Si hay restricciones de integridad referencial, la eliminación puede


propagarse a tuplas de otras relaciones.

NOTA: Una vez ejecutado, la tabla puede quedar vacía, pero


permanece en la base de datos

Prof. Jeannette Johnson de Herrera


D
M
Borrar como resultado de un Select L

Suponga que se quiere eliminar la sucursal del Dorado, y debemos iniciar


eliminando el jefe de esta sucursal de la tabla Jefe en la cual se encuentra el
codigo_empleado_jefe y el No_sucursal. Sin embargo no conocemoscual
es el numero de sucursal a la cual corresponde el Dorado.

Por ello hacemos una consulta a la tabla Sucursal (que tiene el


No_Sucursal y el nombre de la sucursal) y extraemos de esta el No de
sucursal que corresponde al Dorado. Este valor es usado para borrar luego
en la tabla Jefe.

DELETE FROM Tabla_Jefe


WHERE No_Sucursal in
(SELECT No_Sucursal
FROM Tabla_Sucursal
WHERE city = ‘Dorado’);

Prof. Jeannette Johnson de Herrera


D

UPDATE
M
nombre_tabla L

set atributo1= nuevo_valor1,


[ atributo2= nuevo_valor2…]
where condición
 Nombre_Tabla: Puede ser una tabla o una
 SET: Especifica la columna o las columnas que deseamos
actualizar.
 WHERE Es opcional
 Si se omite: Son actualizadas todas las columnas en la table.
 Si se especifica, solo se actualizan las filas que satisfacen la
condicion
 Los nuevos valores de datos deben ser compatibles con los tipos
de datos especificados para dicha columnaing column.
Prof. Jeannette Johnson de Herrera
D
M

UPDATE nombre_tabla L

set atributo= nuevo_valor


where condición
• Permite modificar los valores de los atributos en una o mas tuplas
seleccionadas
• Selecciona de una relación (tabla) cuales son las tuplas que se van a
modificar
• Si cambiamos la llave primaria, este cambio puede dispararse a las FK de
otras tablas, si esto fue especificado en la definición de la tabla.

Prof. Jeannette Johnson de Herrera


D
M
L
UPDATE

Prof. Jeannette Johnson de Herrera


D
M
UPDATE L
Incrementa el salario de
los empleados del depto
Administración

Prof. Jeannette Johnson de Herrera


UPDATE con CASE
UPDATE empleados SET ciudad = ‘Panamá’ WHERE numero=8
UPDATE empleados SET ciudad = ‘Coclé’ WHERE numero=2
UPDATE empleados SET ciudad = ‘David’ WHERE numero= 4

update empleado
set ciudad = CASE numero
when 8 then ‘Panama'
when 2 then ‘Coclé’
when 4 then ‘David’
end
where numero in(8,2,4) Prof. Jeannette Johnson de Herrera
CASE CON LA VALIDACIÓN DE UN
VALOR FIJO

SE EVALUA CONTENIDO DE QUANTITY.

Cuando es 10 coloca 10 en la columna faltante

Cuando es 20 coloca 20 en columna faltante

Cuando es 30 coloca 30 en columna faltante

Si no es ninguna de las listadas en el when,


entonces coloca 0 en columna faltante

Prof. Jeannette Johnson de Herrera


CASE CON LA VALIDACIÓN DE UNA
EXPRESIÓN

SE EVALUA CONTENIDO DE QUANTITY.

Cuando es menor o igual a 10


coloca 10 en la columna faltante

Cuando es mayor o igual a 20


coloca 20 en columna faltante

En cualquier otro caso, coloca 0 en columna


faltante

Prof. Jeannette Johnson de Herrera

También podría gustarte