Sei sulla pagina 1di 9

Instrucciones Básicas de SQL

Las instrucciones SQL se clasifican según su propósito en tres grupos:

El DDL (Data Description Language) Lenguaje de Descripción de Datos.

El DCL (Data Control Language) Lenguaje de Control de Datos.

El DML (Data Manipulation Language) Lenguaje de Manipulación de Datos.

El DDL. Es la parte del SQL dedicada a la definición de la base de datos. Consta de sentencias para
definir la estructura de la base de datos, permiten crear la base de datos, crear, modificar, o eliminar
la estructura de las tablas, crear índices, definir reglas de validación de datos, relaciones entre las
tablas etc. Utilizadas normalmente por el administrador de la base de datos. (AulaClic, 2019)

Por ejemplo, en el DDL (acciones sobre la definición de la base de datos), se tienen 3 verbos básicos:

CREATE (crear)

Crea una nueva tabla en SQL Server (MICROSOFT, 2019)

DROP (Eliminar)

Elimina una o más definiciones de tabla y todos los datos, índices, desencadenadores, restricciones
y especificaciones de permisos para esas tablas. Cualquier vista o procedimiento almacenado que
haga referencia a la tabla eliminada debe eliminarse explícitamente mediante DROP VIEW o DROP
PROCEDURE. (MICROSOFT, 2019)

ALERT (Modificar)

Modifica una definición de tabla modificando, agregando o eliminando columnas y


restricciones. ALTER TABLE también reasigna y reconstruye particiones, o deshabilita y habilita
restricciones y disparadores. (MICROSOFT, 2019)

Complementados por el tipo de objeto sobre el que actúa y el objeto concreto.

Componentes principales de una base de datos y que pueden ocupar las sentencias DDL

 base de datos (DATABASE)


 tablas (TABLE)
 vistas (VIEW)
 índices (INDEX)
 procedimientos almacenados (PROCEDURE)
 disparadores (TRIGGER
Ejemplo: CREATE.

CREATE SCHEMA MEDICO

CREATE TABLE PACIENTE

Nombre CHARACTER VARYING (35) NOT NULL,


Fecha de nacimiento DATE/TIME,
Género CHARACTER VARYING (10),
NúmerodeCuenta INTEGER NOT NULL,
NombredelMedico_FK1 CHARACTER VARYING (35) NOT NULL,
(Kroenke, 202)
La sentencia CREATE DATABASE se utiliza para crear bases de datos.

Sintaxis CREATE DATABASE:

CREATE DATABASE nombreBaseDatos

Ejemplo CREATE DATABASE


CREATE DATABASE mibasededatos
(sql.11sq, 2012)
Ejemplo DROP.
La sentencia DROP se utiliza para borrar definitivamente un índice, tabla o base de datos.

DROP INDEX

Sintaxis DROP INDEX para MySQL

ALTER TABLE nombretabla


DROP INDEX nombreindice

Sintaxis DROP INDEX para DB2 y ORACLE

DROP INDEX nombreindice

Sintaxis DROP INDEX para ACCESS

DROP INDEX nombreindice


ON nombretabla

Sintaxis DROP INDEX para SQLSERVER

DROP INDEX nombretabla.nombreindice

DROP TABLE

Se utiliza DROP TABLE para borrar definitivamente una tabla

DROP TABLE nombretabla

DROP DATABASE

Se utiliza para borrar una base de datos definitivamente.

DROP DATABASE nombrebasededatos


(sql.11sq, 2012)

Ejemplo ALERT.

La sentencia SQL ALTER se utiliza para añadir, eliminar o modificar columnas de una tabla.

Sintaxis SQL ALTER

Para añadir una nueva columna a una tabla

ALTER TABLE nombretabla


ADD nombrecolumna tipodatocolumna

Para borrar una columna de una tabla

ALTER TABLE nombretabla


DROP COLUMN nombrecolumna

Para modificar el tipo de dato de una columna de una tabla

ALTER TABLE nombretabla


ALTER COLUMN nombrecolumna tipodatocolumna

Si queremos modificar el tipo de dato de la columna 'fecha', y ponerle tipo 'year' en lugar de tipo
'date'

ALTER TABLE personas


ALTER COLUMN fechadenacimiento year

Si queremos borrar la columna 'fechadenacimiento', y dejarlo igual que al principio

ALTER TABLE personas


DROP COLUMN fechadenacimiento

(sql.11sq, 2012)

El DML se compone de las instrucciones para el manejo de los datos, para insertar nuevos datos,
modificar datos existentes, para eliminar datos y la más utilizada, para recuperar datos de la base
de datos. Veremos que una sola instrucción de recuperación de datos es tan potente que permite
recuperar datos de varias tablas a la vez, realizando cálculos sobre estos datos y obtener resúmenes.
(AulaClic, 2019)
Se utilizan para la gestión de datos dentro de los objetos del esquema de la base de datos.

Es un idioma proporcionado por los sistemas gestores de bases de datos que permite a los usuarios
de la misma llevar a cabo las tareas de consulta o modificación de los datos contenidos en las Bases
de Datos del Sistema Gestor de Bases de Datos. El lenguaje de manipulación de datos más popular
hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. (Arciniega,
2018)
 SELECT – RECUPERAR DATOS DE LA BASE DE DATOS.
 INSERT – INSERTAR DATOS EN UNA TABLA.
 UPDATE – ACTUALIZACIONES DE DATOS EXISTENTES EN UNA TABLA.
 DELETE – ELIMINA TODOS LOS REGISTROS DE UNA TABLA.
 MERGE – OPERACIÓN UPSERT (INSERCIÓN O ACTUALIZACIÓN).

Ejemplo SELECT – RECUPERAR DATOS DE LA BASE DE DATOS.

Una de las sentencias SQL más importantes es SELECT, ya que permite realizar consultas sobre los
datos almacenados en la base de datos.

Sintaxis SQL SELECT

SELECT * FROM nombretabla

SELECT columna1, columna2 FROM nombretabla

Para los ejemplos, tendremos la siguiente tabla de personas denominada “personas

Si queremos consultar todos los datos de la tabla “personas”

SELECT * FROM personas

Si queremos consulta todos los nombres y primer apellido de todas las personas

SELECT nombre, apellido1 FROM personas

(sql.11sq, 2012)

Ejemplo INSERT – INSERTAR DATOS EN UNA TABLA.

La sentencia INSERT INTO se utiliza para insertar nuevas filas en una tabla.

Es posible insertar una nueva fila en una tabla de dos formas distintas:

INSERT INTO nombre_tabla


VALUES (valor1, valor2, valor3, .)

INSERT INTO nombre_tabla (columna1, columna2, columna3,.)


VALUES (valor1, valor2, valor3, .)

Si queremos insertar una nueva fila en la tabla personas, lo podemos hacer con cualquiera de las
dos sentencias siguientes:

INSERT INTO personas


VALUES ('PEDRO', 'RUIZ', 'GONZALEZ')
INSERT INTO personas (nombre, apellido1, apellido2)
VALUES ('PEDRO', 'RUIZ', 'GONZALEZ')

(sql.11sq, 2012)
Ejemplo de UPDATE – ACTUALIZACIONES DE DATOS EXISTENTES EN UNA TABLA.

La sentencia UPDATE se utiliza para modificar valores en una tabla.

La sintaxis de SQL UPDATE es:

UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2
WHERE columna3 = valor3

La cláusula SET establece los nuevos valores para las columnas indicadas.

La cláusula WHERE sirve para seleccionar las filas que queremos modificar.

Ojo: Si omitimos la cláusula WHERE, por defecto, modificará los valores en todas las filas de la
tabla

Si queremos cambiar el apellido2 'BENITO' por 'RODRIGUEZ' ejecutaremos:

UPDATE personas
SET apellido2 = 'RODRIGUEZ'
WHERE nombre = 'ANTONIO'
AND apellido1 = 'GARCIA'
AND apellido2 = 'BENITO'

(sql.11sq, 2012)

Ejemplo DELETE – ELIMINA TODOS LOS REGISTROS DE UNA TABLA.

a sentencia DELETE sirve para borrar filas de una tabla.

La sintaxis de SQL DELETE es:

DELETE FROM nombre_tabla


WHERE nombre_columna = valor

Si queremos borrar todos los registros o filas de una tabla, se utiliza la sentencia:

DELETE * FROM nombre_tabla;

Si queremos borrar a la persona LUIS LOPEZ PEREZ, podemos ejecutar el comando:

DELETE FROM personas


WHERE nombre = 'LUIS'
AND apellido1 = 'LOPEZ'
AND apellido2 = 'PEREZ'

(sql.11sq, 2012)

Ejemplo de MERGE – OPERACIÓN UPSERT (INSERCIÓN O ACTUALIZACIÓN).

Ejecuta operaciones de inserción, actualización o eliminación en una tabla de destino a partir de los
resultados de una unión con una tabla de origen. Por ejemplo, sincronice dos tablas insertando,
actualizando o eliminando filas en una tabla en función de las diferencias encontradas en la otra
tabla.

el comportamiento condicional descrito para la sentencia MERGE funciona mejor cuando las dos
tablas tienen una mezcla compleja de características coincidentes. Por ejemplo, insertar una fila si
no existe, o actualizar una fila si coincide. Al simplemente actualizar una tabla basada en las filas de
otra tabla, mejore el rendimiento y la escalabilidad con las instrucciones básicas INSERT, UPDATE y
DELETE. (MICROSOFT, 2019)

Sintaxis

MERGE <table_destino> [AS TARGET]


USING <table_origen> [AS SOURCE]
ON <condicion_compara_llaves>
[WHEN MATCHED THEN
<accion cuando coinciden> ]
[WHEN NOT MATCHED [BY TARGET] THEN
<accion cuando no coinciden por destino> ]
[WHEN NOT MATCHED BY SOURCE THEN
<accion cuando no coinciden por origen> ]
(DotNetcr, 2015)

- Ejemplo 3, usando MERGE, mucho más eficiente


CREATE PROCEDURE InsertaTablaPruebaMerge(
@id int,
@nombre varchar(50)
)
AS
BEGIN
SET NOCOUNT ON

MERGE tablaPrueba as TARGET


USING(SELECT @id, @nombre) AS SOURCE(id, nombre)
ON (TARGET.id = SOURCE.id)
WHEN MATCHED THEN
UPDATE SET nombre = SOURCE.nombre,
fecha_actualizacion = GETDATE()
WHEN NOT MATCHED THEN
INSERT (id, nombre, fecha_ingreso, fecha_actualizacion)
VALUES (SOURCE.id, SOURCE.nombre, GETDATE(), GETDATE());
END

Podemos ver que MERGE recibe una tabla destino, que es a la que se le van a ingresar o modificar los datos (TARGET),
luego recibe la tabla fuente o los datos fuente, en este caso son datos fuente (SOURCE). Luego de estos, cuando los datos
concuerdan (WHEN MATCHED) realiza el UPDATE en la tabla, y cuando no existen los registros (WHEN NOT MATCHED)
realiza el INSERT

(DotNetcr, 2015)
Algebra Relacional

Se llama álgebra relacional a un conjunto de operaciones simples sobre tablas relacionales, a partir
de las cuales se definen operaciones más complejas mediante composición. Definen, por tanto, un
pequeño lenguaje de manipulación de datos.

El elemento fundamental del modelo relacional de bases de datos es la tabla relacional. Una tabla
relacional es una representación extensional de una relación definida sobre un cierto dominio.

Operaciones básicas del algebra relacional:

 Operadores unarios: operan sobre una relación


 Operadores binarios: operan sobre 2 relaciones

En ambos casos el resultado siempre es una nueva relación.

Conceptos básicos para la aplicación del algebra relacional.

 El resultado de una expresión algebraica es siempre una nueva relación.


 Una relación es un conjunto, por lo tanto, no puede tener elementos duplicados
 De manera informal, a una relación se le llama tabla (existen notables diferencias)

Operadores unarios:

π: es el operador de proyección y se denota con la letra P del alfabeto griego (pi)

σ: es el operador de selección y se denota con la letra S del alfabeto griego (sigma)

Sintaxis de los operadores:

πxE: donde E es una expresión algebraica (EA) y x es una lista de atributos.

σθE: donde θ es una expresión booleana y E es una EA.

(Dejean, 2011)

Ejemplo de proyección (pi) πnombre_pE


πnombre_pE

Tabla proveedor nombre_p


idproveedor nombre_p telefono_p no_factura fecha_factura compucity
001 compucity 5534678956 0096344 04/03/2018 megacomputo
002 megacomputo 2354870089 33345F45 06/07/2017 steren
003 steren 1247689003 FF445689 06/05/2016 compuvolt
004 compuvolt 7223478063 RT334576 03/05/2018 grupomilenio
005 grupomilenio 5578023457 00000455 15/09/2018 sieterayos
006 sieterayos 3345626789 00000647 03/09/2018 esparta
007 esparta 7164536789 TR236789 07/07/2018 sumitel
008 sumitel 5567890345 00003435 04/03/2018 computol
009 computol 7134567023 FF234545 25/06/2018 tecnocomputo
010 tecnocomputo 7225647934 FF456477 12/02/2018
Ejemplo σθE: selección σ<100 cantidad

Tabla material
idmaterial idtipo_m idmarca modelo descripcion_m cantidad no_partida
pinzas
M001 TM001 MAR004 PZ200 criempeadoras de 20 45
red
conectro de red
M002 TM003 MAR004 RJ45 100 22
cat5
M003 TM003 MAR007 S-7.5 CAMPANA DVD 100 12
M004 TM001 MAR004 TEST-002 TESTER RJ45-RJ11 30 09
M005 TM001 MAR010 P-032 pinza de corte 15 33
M006 TM003 MAR004 S/M capuchon gris 100 11
M007 TM002 MAR005 M-200 monitor de 20" 5 04
M008 TM002 MAR008 i3 microprocesador 10 20
M009 TM003 MAR004 wht jack cat 6 100 07

M010 TM001 MAR010 KM11 kit desarmadores 10 06

σ<100 cantidad

Tabla material
idmaterial idtipo_m idmarca modelo descripcion_m cantidad no_partida
pinzas
M001 TM001 MAR004 PZ200 criempeadoras de 20 45
red
M004 TM001 MAR004 TEST-002 TESTER RJ45-RJ11 30 09
M005 TM001 MAR010 P-032 pinza de corte 15 33
M007 TM002 MAR005 M-200 monitor de 20" 5 04
M008 TM002 MAR008 i3 microprocesador 10 20

M010 TM001 MAR010 KM11 kit desarmadores 10 06


Bibliografía
Arciniega, F. (2018). Obtenido de https://fernandoarciniega.com/sentencias-sql-ddl-dml-dcl-y-tcl/

AulaClic. (2019). Curso de SQL Server. AulaClic.

Dejean, G. (7 de Agosto de 2011). https://www.youtube.com/watch?v=Yo6LEKqkdz0. Obtenido de


https://www.youtube.com/watch?v=Yo6LEKqkdz0

DotNetcr. (2015). Obtenido de http://www.royrojas.com/usando-merge-para-insert-y-update/

forosdelweb. (2005). Obtenido de http://www.forosdelweb.com/f21/eliminar-tabla-sql-299026/

Kroenke, D. M. (202). Procesamiento de base de datos: fundamentos, diseño e implementacion.


PEARSON.

MICROSOFT. (2019). microsoft.com. Obtenido de https://docs.microsoft.com/en-us/sql/t-


sql/statements/alter-table-transact-sql?view=sql-server-2017

sql.11sq. (2012). sql.11sq. Obtenido de http://sql.11sql.com/sql-select.htm

Potrebbero piacerti anche