SlideShare una empresa de Scribd logo
Tema:
Bases de Datos
Unidad 3: SQL (Structured Query Language)
Asignatura:
Base de Datos – INF-4200-1
Participante:
Juan Miguel Custodio Morillo
100480765
Docente:
Edward Ureña Mejía
Fecha:07/03/2021
Índice
Introducción
1. Breve historia de SQL
1.2.¿Qué podemos hacer con SQL?
1.3.Principales Características de SQL
2. Estructuras de SQL
2.1.Comandos de definición de datos
2.2.Comandos de manipulación de datos
2.3.Comandos de control y seguridad de datos
2.4.Clausulas
2.5.Funciones de agregados
2.6.Tipos de Datos
3. Gestión de tablas en SQL
3.1.Creación de tablas a partir de sentencias SQL
3.2.Creación de Tablas Nuevas
3.3.La cláusula CONSTRAINT
3.4.Creación de Índices
3.5.Modificar el diseño de una tabla
3.6.Sintaxis y ejemplos para introducir registros en una tabla
3.7.Borrado de registros en una tabla
3.8.UPDATE del lenguaje SQL y edición de registros en una tabla.
3.9.Consultas de Selección (SELECT)
Consultas con Predicado
3.10. Criterios de selección
3.11. Cómo realizar selecciones eficientemente
3.12. Consultas mediante JOIN
3.13. Vistas (tablas virtuales) en SQL
Nota sobre la utilización de valores nulos
conclusión
Bibliografías
Introducción
En este trabajo, tiene como objetivo principal reunir los conceptos claves e introductorios para
crear y manipular bases de datos con la estructura del lenguaje SQL.
Definición: El término SQL significa, «Structured Query Language» (lenguaje de consulta
estructurada), debido a que fue concebido para consultar o recuperar los datos de bases de datos
estructuradas o relacionales, así como administrar los diferentes sistemas de gestión de bases de
datos.
1. Breve historia de SQL
En 1970, Edgar Frank Codd propone el modelo relacional y asociado a este un sublenguaje de
acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios
de IBM definieron el lenguaje SEQUEL (Structured English Query Language) que más tarde fue
ampliamente implementado por el sistema de gestión de bases de datos (SGBD)
experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien
lo introdujo por primera vez en 1979 en un producto comercial.
El SEQUEL terminó siendo el predecesor de SQL, que es una versión evolucionada del primero.
SQL pasa a ser el lenguaje por excelencia de los diversos sistemas de gestión de bases de
datos relacionales surgidos en los años siguientes y fue por fin estandarizado en 1986 por
el ANSI, dando lugar a la primera versión estándar de este lenguaje, "SQL-86" o "SQL1". Al año
siguiente este estándar es también adoptado por ISO.
Sin embargo, este primer estándar no cubría todas las necesidades de los desarrolladores e
incluía funcionalidades de definición de almacenamiento que se consideró suprimirlas. Así que,
en 1992, se lanzó un nuevo estándar ampliado y revisado de SQL llamado "SQL-92" o "SQL2".
1.2. ¿Qué podemos hacer conSQL?
Todos los principales gestores de base de datos incorporan un motor SQL en el Servidor de Base
Datos, así como herramientas de cliente que permiten enviar comandos SQL para que sean
procesadas por el motor del servidor. De esta forma, todas las tareas de gestión de la Base de
Datos (BD) pueden realizarse utilizando sentencias SQL:
 Ejecutar sentencias o queries en una base de datos.
 Recuperar datos de una base de datos.
 Insertar registros en una base de datos.
 Actualizar los registros de una base de datos.
 Eliminar los registros de una base de datos.
 Crear nuevas bases de datos.
 Crear nuevas tablas en una base de datos.
 Crear procedimientos almacenados o stored procedures en una base de datos.
 Crear vistas o views en una base de datos.
 Establecer permisos en tablas, procedimientos y vistas.
1.3. Principales Característicasde SQL
SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los
sistemas relacionales y permite así gran variedad de operaciones.
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a su fuerte base
teórica y su orientación al manejo de conjuntos de registros —y no a registros individuales—
permite una alta productividad en codificación y la orientación a objetos. De esta forma, una sola
sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel
orientado a registros. SQL también tiene las siguientes características:
 Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la
definición de esquemas de relación, borrado de relaciones y modificaciones de los
esquemas de relación.
 Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de
consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas.
 Integridad: El LDD de SQL incluye comandos para especificar las restricciones de
integridad que deben cumplir los datos almacenados en la base de datos.
 Definición de vistas: El LDD incluye comandos para definir las vistas.
 Control de transacciones: SQL tiene comandos para especificar el comienzo y el final de
una transacción.
 SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones
de SQL en lenguajes de
programación como: C++, C, Java, PHP, COBOL, Pascal y Fortran.
 Autorización: El LDD incluye comandos para especificar los derechos de acceso a las
relaciones y a las vistas.
 El estándar SQL permite el intercambio entre diferentes manejadores o DBMS.
2. Estructuras de SQL
El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado.
Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de
datos. Los comandos del SQL pueden dividirse en tres grupos:
2.1. Comandos de definición de datos DDL = Data Definition Language), que permiten
crear y definir nuevas bases de datos, campos, etc. Donde tenemos:
 CREATE: Encargado de crear nuevas tablas, campos, …
 DROP: Encargado de eliminar tablas
 ALTER: Encargado de modificar las tablas, agregando campos o cambiando la
definición de los campos
2.2.Comandos de manipulación de datos (DML = Data Manipulation Language), que
permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Donde
encontramos:
 SELECT: Encargado de consultar registros de la base de datos que satisfagan un
criterio determinado
 INSERT: Encargado de cargar lotes de datos en la base de datos en una única
operación
 UPDATE: Encargado de modificar los valores de los campos y registros
especificados
 DELETE: Encargado de eliminar registros de una tabla
 TRUNCATE: Este comando trunca todo el contenido de una tabla. La ventaja sobre
el comando DROP, es que, si se quiere borrar todo el contenido de la tabla, es mucho
más rápido, especialmente si la tabla es muy grande. La desventaja es que
TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros,
ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia
parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya
que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no
ejecuta ninguna transacción.
2.3.Comandos de control y seguridadde datos, que gobiernan los privilegios de los
usuarios, los controles de acceso, …
2.4.Clausulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea
seleccionar o manipular.
 FROM: Sirve para especificar la tabla de la cual se van a seleccionar los registros.
 WHERE: Sirve para especificar las condiciones que deben reunir los registros que se van
a seleccionar.
 GROUP BY: Sirve para especificar un criterio adicional por el que agrupar los registros
seleccionados.
 HAVING: Sirve para expresar la condición que debe satisfacer cada grupo anterior.
 ORDER BY: Sirve para ordenar los registros seleccionados de acuerdo con el orden
especificado.
2.5.Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para
devolver un único valor que se aplica a un grupo de registros, por lo general encontramos:
 AVG: Utilizada para calcular el promedio de los valores de un campo determinado
 COUNT: Utilizada para devolver el número de registros de la selección
 SUM: Utilizada para devolver la suma de todos los valores de un campo determinado
 MAX: Utilizada para devolver el valor más alto de un campo especificado
 MIN: Utilizada para devolver el valor más bajo de un campo especificado
2.6.Tipos de Datos
La mayoría de los productos incluyen tipos de datos extendidos e incluso algunos productos
ofrecen la posibilidad de que el usuario defina sus propios tipos. Los tipos más utilizados:
 CHAR: (longitud) se utiliza para guardar cadenas de caracteres de longitud fija
especificada entre paréntesis.
 VARCHAR: (longitud) almacenas cadenas de caracteres de longitud variable cuyo límite
máximo es especifica como longitud.
 NUMBER: (escala, precisión) se utiliza para guardar datos numéricos.
 INT: Es el principal tipo de datos de valores enteros de SQL, con números enteros con o
sin signo.
 DATE: Utilizado para almacenar fechas.
 TIME: La hora del día en horas minutos segundos (el valor predeterminado es 0).
3. Gestiónde tablas en SQL
3.1. Creaciónde tablas a partir de sentencias SQL
Para crear una tabla debemos especificar diversos datos: El nombre que le queremos asignar, los
nombres de los campos y sus características. Además, puede ser necesario especificar cuáles de
estos campos van a ser índices y de qué tipo van a serlo.
La sintaxis de creación puede variar ligeramente de una base de datos a otra ya que los tipos de
campo aceptados no están completamente estandarizados.
A continuación, explicamos superficialmente la sintaxis de esta sentencia:
Sintaxis
Create Table nombre tabla
(
nombre_campo_1 tipo_1,
nombre_campo_2 tipo_2,
nombre_campo_n tipo_n
Key(campo_x,...)
);
Finalmente, definimos los índices enumerándolos entre paréntesis precedidos de la palabra KEY
o INDEX.
3.2. Creaciónde Tablas Nuevas
CREATE TABLE tabla (
campo1 tipo (tamaño) índice1,
campo2 tipo (tamaño) índice2,... ,
índice multicampo , ... );
En donde:
Tabla Es el nombre de la tabla que se va a crear.
campo1
campo2
Es el nombre del campo o de los campos que se van a crear en la nueva tabla.
La nueva tabla debe contener, al menos, un campo.
Tipo Es el tipo de datos de campo en la nueva tabla.
Tamaño Es el tamaño del campo sólo se aplica para campos de tipo texto.
índice1
índice2
Es una cláusula CONSTRAINT que define el tipo de índice a crear. Esta
cláusula en opcional.
índice
multicampos
Es una cláusula CONSTRAINT que define el tipo de índice multicampos a
crear. Un índice multicampo es aquel que está indexado por el contenido de
varios campos. Esta cláusula en opcional.
3.3. La cláusula CONSTRAINT
Se utiliza la cláusula CONSTRAINT en las instrucciones ALTER TABLE y CREATE TABLE
para crear o eliminar índices. Existen dos sintaxis para esta cláusula dependiendo si desea Crear
o Eliminar un índice de un único campo o si se trata de un campo multiíndice. Para los índices de
campos únicos:
CONSTRAINT nombre {PRIMARY KEY | UNIQUE | REFERENCES tabla externa
[(campo externo1, campo externo2)]}
Para los índices de campos múltiples:
CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [,...]]) |
UNIQUE (único1[, único2 [, ...]]) |
FOREIGN KEY (ref1[, ref2 [,...]]) REFERENCES tabla externa
[(campo externo1 ,campo externo2 [,...])]}
En donde:
Nombre Es el nombre del índice que se va a crear.
PrimarioN Es el nombre del campo o de los campos que forman el índice primario.
ÚnicoN Es el nombre del campo o de los campos que forman el índice de clave única.
RefN
Es el nombre del campo o de los campos que forman el índice externo (hacen
referencia a campos de otra tabla).
tabla externa
Es el nombre de la tabla que contiene el campo o los campos referenciados en
refN
campos
externos
Es el nombre del campo o de los campos de la tabla externa especificados por
ref1, ref2,... , refN
Si se desea crear un índice para un campo cuando se está utilizando las instrucciones ALTER
TABLE o CREATE TABLE la cláusula CONTRAINT debe aparecer inmediatamente después
de la especificación del campo indexado.
Si se desea crear un índice con múltiples campos cuando se está utilizando las instrucciones
ALTER TABLE o CREATE TABLE la cláusula CONSTRAINT debe aparecer fuera de la
cláusula de creación de tabla.
Índice Descripción
UNIQUE
Genera un índice de clave única. Lo que implica que los registros de la tabla no
pueden contener el mismo valor en los campos indexados.
PRIMARY
KEY
Genera un índice primario el campo o los campos especificados. Todos los
campos de la clave principal deben ser únicos y no nulos, cada tabla sólo puede
contener una única clave principal.
FOREIGN
KEY
Genera un índice externo (toma como valor del índice campos contenidos en otras
tablas). Si la clave principal de la tabla externa consta de más de un campo, se
debe utilizar una definición de índice de múltiples campos, listando todos los
campos de referencia, el nombre de la tabla externa, y los nombres de los campos
referenciados en la tabla externa en el mismo orden que los campos de referencia
listados. Si los campos referenciados son la clave principal de la tabla externa, no
tiene que especificar los campos referenciados, predeterminado por valor, el
motor Jet se comporta como si la clave principal de la tabla externa estuviera
formada por los campos referenciados.
3.4. Creaciónde Índices
La sintaxis para crear un índice en una tabla ya definida en la siguiente:
CREATE [ UNIQUE] INDEX índice
ON Tabla (campo [ASC|DESC][, campo [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
En donde:
Índice Es el nombre del índice a crear.
Tabla Es el nombre de una tabla existente en la que se creará el índice.
Campo Es el nombre del campo o lista de campos que constituyen el índice.
ASC|DESC
Indica el orden de los valores de los campos ASC indica un orden ascendente
(valor predeterminado) y DESC un orden descendente.
UNIQUE Indica que el índice no puede contener valores duplicados.
DISALLOW
NULL
Prohibe valores nulos en el índice
IGNORE
NULL
Excluye del índice los valores nulos incluidos en los campos que lo componen.
PRIMARY
Asigna al índice la categoría de clave principal, en cada tabla sólo puede existir
un único índice que sea "Clave Principal". Si un índice es clave principal
implica que no puede contener valores nulos ni duplicados.
3.5. Modificar el diseño de una tabla
Modifica el diseño de una tabla ya existente, se pueden modificar los campos o los índices
existentes. Su sintaxis es:
ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamaño)]
[CONSTRAINT índice]
CONSTRAINT índice multicampo} |
DROP {COLUMN campo I CONSTRAINT nombre del índice}}
En donde:
Tabla Es el nombre de la tabla que se desea modificar.
Campo Es el nombre del campo que se va a añadir o eliminar.
Tipo Es el tipo de campo que se va a añadir.
Tamaño Es el tamaño del campo que se va a añadir (sólo para campos de texto).
Índice
Es el nombre del índice del campo (cuando se crean campos) o el nombre del
índice de la tabla que se desea eliminar.
índice
multicampo
Es el nombre del índice del campo multicampo (cuando se crean campos) o el
nombre del índice de la tabla que se desea eliminar.
Operación Descripción
ADD
COLUMN
Se utiliza para añadir un nuevo campo a la tabla, indicando el nombre, el tipo
de campo y opcionalmente el tamaño (para campos de tipo texto).
ADD Se utiliza para agregar un índice de multicampos o de un único campo.
DROP
COLUMN
Se utiliza para borrar un campo. Se especifica únicamente el nombre del
campo.
DROP
Se utiliza para eliminar un índice. Se especifica únicamente el nombre del
índice a continuación de la palabra reservada CONSTRAINT.
3.6. Sintaxis y ejemplos para introducir registros enuna tabla
Los registros pueden ser introducidos a partir de sentencias que emplean la instrucción Insert. La
sintaxis utilizada es la siguiente:
Insert Into nombre_tabla (nombre_campo1, nombre_campo2,...) Values (valor_campo1,
valor_campo2...)
Un ejemplo sencillo a partir de nuestra tabla modelo es la introducción de un nuevo cliente lo
cual se haría con una instrucción de este tipo:
Insert Into clientes (nombre, apellidos, dirección, población, codigopostal, email, pedidos)
Values ('Perico', 'Palotes', 'Percebe n°13', 'Lepe', '123456', 'perico@desarrolloweb.com', 33)
Como puede verse, los campos no numéricos o booleanos van delimitados por apostrofes: '.
También resulta interesante ver que el código postal lo hemos guardado como un campo no
numérico.
Por supuesto, no es imprescindible rellenar todos los campos del registro. Eso sí, puede ser que
determinados campos sean necesarios. Estos campos necesarios pueden ser definidos cuando
construimos nuestra tabla mediante la base de datos.
3.7. Borrado de registros en una tabla
Para borrar un registro nos servimos de la instrucción Delete. En este caso debemos especificar
cual o cuales son los registros que queremos borrar. Es por ello necesario establecer una
selección que se llevara a cabo mediante la cláusula Where.
Delete From nombre_tabla Where condiciones_de_selección
Si queremos por ejemplo borrar todos los registros de los clientes que se llamen Perico lo
haríamos del siguiente modo:
Delete From clientes Where nombre='Perico';
Hay que tener cuidado con esta instrucción ya que, si no especificamos una condición con
Where, lo que estamos haciendo es borrar toda la tabla:
Delete From clientes
3.8. UPDATE del lenguaje SQL y edición de registros en una tabla.
Update es la instrucción del lenguaje SQL que nos sirve para modificar los registros de una tabla.
Como para el caso de Delete, necesitamos especificar por medio de Where cuáles son los
registros en los que queremos hacer efectivas nuestras modificaciones. Además, obviamente,
tendremos que especificar cuáles son los nuevos valores de los campos que deseamos actualizar.
La sintaxis es de este tipo:
Update nombre_tabla Set nombre_campo1 = valor_campo1, nombre_campo2 = valor_campo2,...
Where condiciones_de_selección
Un ejemplo aplicado:
Update clientes Set nombre='José' Where nombre='Pepe';
Mediante esta sentencia cambiamos el nombre Pepe por el de José en todos los registros cuyo
nombre sea Pepe.
Aquí también hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario,
modificaríamos todos los registros de nuestra tabla.
3.9. Consultas de Selección(SELECT)
Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de
las bases de datos. Esta información es devuelta en forma de conjunto de registros que se pueden
almacenar en una nueva tabla.
Consultas de selecciónbásicas
La sintaxis más sencilla de una consulta de selección es la siguiente:
SELECT Campos FROM Tabla;
Donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos.
Consultas con Predicado (ALL, TOP, DISTINCT) :En cuanto al conjunto de registros
seleccionados, estos modificadores, que se incluyen entre SELECT y el primer nombre del
campo a recuperar, provocan las siguientes acciones:
ALL: Devuelve todos los campos de la tabla (valor por defecto).
TOP: Devuelve un determinado número de registros de la tabla.
DISTINCT: Omite repeticiones de registros cuyos campos seleccionados coincidan totalmente.
DISTINCTROW: Omite repeticiones de registros basándose en la totalidad del registro y no sólo
en los campos seleccionados.
ALIAS
Un alias, es otra forma de llamar a una tabla o a una columna, y se utiliza para simplificar las sentencias
SQL cuando los nombres de tablas o columnas son largos o complicados. Por ejemplo:
SELECT
Apellido AS Empleado
FROM
Empleados AS Trabajadores
3.10. Criterios de selección
 Operadores Lógicos
Los operadores lógicos soportados por SQL son: AND, OR, XOR, Eqv, Imp, Is y Not.
 Operador BETWEEN
Para indicar que deseamos recuperar los registros según el intervalo de valores de un
campo emplearemos el operador BETWEEN.
 El Operador LIKE
Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL.
Se puede utilizar el operador LIKE para encontrar valores en los campos que coincidan
con el modelo especificado.
 El Operador IN
Este operador devuelve los registros cuyo campo indicado coincide con alguno de los
dados en una lista.
 La cláusula WHERE
La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas
en la cláusula FROM aparecerán en los resultados de la instrucción SELECT. WHERE es
opcional, pero cuando aparece debe ir a continuación de FROM.
3.11. Cómo realizar seleccioneseficientemente
La selección total o parcial de una tabla se lleva a cabo mediante la instrucción Select. En dicha
selección hay que especificar:
-Los campos que queremos seleccionar
-La tabla en la que hacemos la selección
En nuestra tabla modelo de clientes podríamos hacer por ejemplo una selección del nombre y
dirección de los clientes con una instrucción de este tipo:
Select nombre, dirección From clientes
Si quisiésemos seleccionar todos los campos, es decir, toda la tabla, podríamos utilizar el
comodín * del siguiente modo:
Select * From clientes
Resulta también muy útil el filtrar los registros mediante condiciones que vienen expresadas
después de la cláusula Where. Si quisiésemos mostrar los clientes de una determinada ciudad
usaríamos una expresión como esta:
Select * From clientes Where poblacion Like 'Madrid'
Además, podríamos ordenar los resultados en función de uno o varios de sus campos. Para este
último ejemplo los podríamos ordenar por nombre así:
Select * From clientes Where poblacion Like 'Madrid' Order By nombre
Teniendo en cuenta que puede haber más de un cliente con el mismo nombre, podríamos dar un
segundo criterio que podría ser el apellido:
Select * From clientes Where poblacion Like 'Madrid' Order By nombre, apellido
Si invirtiésemos el orden « nombre,apellido » por « apellido, nombre », el resultado sería
distinto. Tendríamos los clientes ordenados por apellido y aquellos que tuviesen apellidos
idénticos se subclasificarían por el nombre.
Es posible también clasificar por orden inverso. Si por ejemplo quisiésemos ver nuestros clientes
por orden de pedidos realizados teniendo a los mayores en primer lugar escribiríamos algo así:
Select * From clientes Order By pedidos Desc
Una opción interesante es la de efectuar selecciones sin coincidencia. Si por ejemplo buscásemos
el saber en qué ciudades se encuentran nuestros clientes sin necesidad de que para ello aparezca
varias veces la misma ciudad usaríamos una sentencia de esta clase:
Select Distinct población From clientes Order By población
Así evitaríamos ver repetido Madrid tantas veces como clientes tengamos en esa población.
3.12. Consultas mediante JOIN
La sentencia SQL JOIN se utiliza para relacionar varias tablas. Nos permitirá obtener un
listado de los campos que tienen coincidencias en ambas tablas:
Los Principales Join:
a. Inner join – esta es la opción predeterminada. Si no se especifica el tipo de unión, se
establecerá de manera predeterminada como la unión interna. Esto implica que, si estamos
uniendo dos tablas en una columna común, solo retornaran los datos que coincidan en
ambas tablas.
Subtipos de Inner Join:
Tipos de Join Operadores de comparación permitidos
Theta Join = (igual) < (menor que) > (mayor que) ≤ (menos o igual que) ≥
(mayor o igual que) <> (desigual)! = (desigual)
Equi Join = (igual)
Non Equi Join < (menor que) > (mayor que) ≤ (menor o igual que) ≥ (mayor o igual
que) <> (desigual)! = (desigual)
Natural Join es un subtipo de Equi Join y, al igual que este, requiere la igualdad de dos
valores de columna como condición de selección. Si dos tablas están enlazadas por
columnas con el mismo nombre, los Inner Join se aplican como Natural Join.
b. Cross join – como indica su nombre, hace [n X m] donde se una todo combinado con
todo. Es un escenario donde simplemente listamos las tablas para unir (en la cláusula From
de la sentencia Select), usando comas para separarlas.
c. Left join – este tipo de unión significa que solo retornan todos los datos de la tabla de la
mano izquierda, solo si los datos coinciden con la tabla de la mano derecha.
d. Right join – este tipo de unión es el caso opuesto al anterior. Implica que solo retornaran
los datos de la tabla de la mano derecha, solo si los datos coinciden con la tabla de la mano
izquierda.
Además de esto, también existen tipos de combinaciones externas y cruzadas. La Outer join
tiene 3 tipos diferentes:
i. Left outer join – recupera registros si están presentes en la tabla izquierda.
ii. Right outer join – recupera registros si están presentes en la tabla derecha.
iii. Full outer join – recupera registros si están presentes en cualquiera de las dos
tablas.
3.13. Vistas (tablas virtuales) en SQL
Las vistas (“views”) en SQL son tabla que deriva de otras tablas con un mecanismo que permite
generar un resultado a partir de una consulta (query) almacenado, y ejecutar nuevas consultas
sobre este resultado como si fuera una tabla normal. Las vistas tienen la misma estructura que
una tabla: filas y columnas. La única diferencia es que sólo se almacena de ellas la definición, no
los datos. Esto limita las posibles operaciones de actualización que pueden aplicarse a las vistas,
pero no ofrecen limitación alguna al consultar una vista.
La cláusula CREATE VIEW permite la creación de vistas. La cláusula asigna un nombre a la
vista y permite especificar la consulta que la define. Su sintaxis es:
# CREATE VIEW id_vista [(columna,…)]AS especificación_consulta;
Opcionalmente se puede asignar un nombre a cada columna de la vista. Si se especifica, la lista
de nombres de las columnas debe de tener el mismo número de elementos que el número de
columnas producidas por la consulta. Si se omiten, cada columna de la vista1 adopta el nombre
de la columna correspondiente en la consulta.
Nota sobre la utilización de valores nulos
En SQL la ausencia de valor se expresa como valor nulo (NULL). Esta ausencia de valor o valor
nulo no equivale en modo alguno al valor 0. Cualquier expresión aritmética que contenga algún
valor nulo retornará un valor nulo.
En SQL un valor nulo ni siquiera es igual a otro valor nulo
La explicación es que un valor nulo es indeterminado, y, por tanto, no es igual ni distinto de otro
valor nulo.
Cuando queremos comprobar si un valor es nulo emplearemos el operador IS NULL (o IS NOT
NULL para comprobar que es distinto de nulo).
Como acabamos de ver los valores nulos en muchas ocasiones pueden representar un problema,
especialmente en columnas que contienen valores numéricos. Para evitar estos problemas se
suele utilizar:
La restricción NOT NULL (es una orden de definición de datos) que impide que se incluyan
valores nulos en una columna.
La función NVL (que veremos en detalle más adelante) que se utiliza para devolver un valor
determinado en el caso de que el valor del argumento sea nulo.
Por ejemplo, NVL (COMISION, 0) retornará 0 cuando el valor de comisión sea nulo. (En Access
se llama NZ)
Conclusión
A través de toda información analizada pude contactar que SQL se convirtió en un lenguaje
estándar que nos permite administrar y extraer información de bases de datos en forma sencilla,
ya que su implementación y manejo, resulta fácil y de muchas ventajas frente a otros lenguajes
de estructuras de datos. Esto significa que puedes usar los mismos comandos entre un manejador
y otro, ya que SQL es un lenguaje estándar, lo cual resulta de mucha utilidad, porque los
comandos para crear la estructura de base de datos o para manipular los datos siguen
conservando la misma forma. Por estas y características hacen de este lenguaje uno de los más
importantes usados y solicitados para analizar datos.
El SQL no presenta una estructura engorrosa, más bien atractivas y suaves para el desarrollador,
también se debe saber que, aunque exista un estándar definido por ANSI, existen
particularidades entre los diferentes DBMS en el manejo SQL.
En mi humilde opinión creo que SQL se seguirá utilizando por mucho tiempo, y puede surgen
otro mañana, pero la forma que brinda este lenguaje es única; sobre todo la forma lógica como
está estructurado.
Bibliografías:
Fundamentos de Sistemas de Bases de Datos, de Ramez Elmasri y Shamkant B. Navathe (2007) ,
5ta. Edición .
Fundamentos de SQL, Tercera edición Andy Oppel Robert Sheldon Traducción Carlos Fabián
Jiménez Castillo.
https://www.lawebdelprogramador.com/cursos/archivos/ManualPracticoSQL.pdf
https://es.wikipedia.org/wiki/SQL
https://www.cartagena99.com/recursos/alumnos/apuntes/Manual-SQL1.pdf

Más contenido relacionado

La actualidad más candente

Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
José Antonio Sandoval Acosta
 
Diapositivas excel
Diapositivas excelDiapositivas excel
Diapositivas excel
Karol Marin
 
Comandos básicos para bases de datos mysql y
Comandos básicos para bases de datos mysql yComandos básicos para bases de datos mysql y
Comandos básicos para bases de datos mysql y
Robedgar MX
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para Dummies
Raúl Unzué
 
Hosting presentacion
Hosting presentacionHosting presentacion
Hosting presentacion
Mario Adolfo Suarez
 
Comparacion de Gestores de Base de Datos
Comparacion de Gestores de Base de DatosComparacion de Gestores de Base de Datos
Comparacion de Gestores de Base de DatosVictor Zevallos
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datosLuis Bando
 
Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase
Alejandra Vera
 
Asp .net
Asp .netAsp .net
Asp .net
mellcv
 
Proyecto web
Proyecto webProyecto web
Proyecto web
Alberto Otero
 
Introducción a Voldemort - Innova4j
Introducción a Voldemort - Innova4jIntroducción a Voldemort - Innova4j
Introducción a Voldemort - Innova4j
Innova4j
 
Introducción a las nubes privadas con OpenStack
Introducción a las nubes privadas con OpenStackIntroducción a las nubes privadas con OpenStack
Introducción a las nubes privadas con OpenStack
Software Guru
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Micael Gallego
 
Comandos c#
Comandos c#Comandos c#
Comandos c#
Heidiie Hdz
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
Universidad Veracruzana
 
Operaciones básicas utilizadas en álgebra relacional
Operaciones básicas utilizadas en álgebra relacionalOperaciones básicas utilizadas en álgebra relacional
Operaciones básicas utilizadas en álgebra relacionalLili Sanchez
 

La actualidad más candente (20)

Ejercicio 10
Ejercicio 10Ejercicio 10
Ejercicio 10
 
Fundamentos de java
Fundamentos de javaFundamentos de java
Fundamentos de java
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
 
Diapositivas excel
Diapositivas excelDiapositivas excel
Diapositivas excel
 
Comandos básicos para bases de datos mysql y
Comandos básicos para bases de datos mysql yComandos básicos para bases de datos mysql y
Comandos básicos para bases de datos mysql y
 
Docker para Dummies
Docker para DummiesDocker para Dummies
Docker para Dummies
 
Hosting presentacion
Hosting presentacionHosting presentacion
Hosting presentacion
 
Comparacion de Gestores de Base de Datos
Comparacion de Gestores de Base de DatosComparacion de Gestores de Base de Datos
Comparacion de Gestores de Base de Datos
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
 
Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase
 
Asp .net
Asp .netAsp .net
Asp .net
 
Proyecto web
Proyecto webProyecto web
Proyecto web
 
Introducción a Voldemort - Innova4j
Introducción a Voldemort - Innova4jIntroducción a Voldemort - Innova4j
Introducción a Voldemort - Innova4j
 
Introducción a las nubes privadas con OpenStack
Introducción a las nubes privadas con OpenStackIntroducción a las nubes privadas con OpenStack
Introducción a las nubes privadas con OpenStack
 
Sql presentacion
Sql presentacionSql presentacion
Sql presentacion
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
 
Comandos c#
Comandos c#Comandos c#
Comandos c#
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Operaciones básicas utilizadas en álgebra relacional
Operaciones básicas utilizadas en álgebra relacionalOperaciones básicas utilizadas en álgebra relacional
Operaciones básicas utilizadas en álgebra relacional
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 

Similar a SQL (Structured Query Language): Informe de Lectura Unidad 3

F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sqlF004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sqlMiguel Amgo
 
Introducción SQL : Primera semana
Introducción SQL : Primera semanaIntroducción SQL : Primera semana
Introducción SQL : Primera semana
Manuel Lamarche Fabio
 
LENGUAJE TRANSACT SQL
 LENGUAJE TRANSACT SQL LENGUAJE TRANSACT SQL
LENGUAJE TRANSACT SQL
Thalia Regalado Juape
 
Lenguaje transact
Lenguaje transactLenguaje transact
TEMA3-SQL-(PARTE 1).pdf
TEMA3-SQL-(PARTE 1).pdfTEMA3-SQL-(PARTE 1).pdf
TEMA3-SQL-(PARTE 1).pdf
alukardconde1
 
Act4 screencast-bdatos cmch
Act4 screencast-bdatos cmchAct4 screencast-bdatos cmch
Act4 screencast-bdatos cmch
claudia mayeli de la cruz herrera
 
Modulo2 tema 3-lenguaje sql-ddl
Modulo2 tema 3-lenguaje sql-ddlModulo2 tema 3-lenguaje sql-ddl
Modulo2 tema 3-lenguaje sql-ddl
Universidad Nacional de Frontera
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
Inés Rosero
 
6. sql structured query language2
6. sql   structured query language26. sql   structured query language2
6. sql structured query language2
Oscar Valdivieso
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
Doris Aguagallo
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
Cesar Yupa
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query languagejhonny tenesaca
 
6. SQL structured query language
6. SQL   structured query language6. SQL   structured query language
6. SQL structured query language
Marcelo Herrera
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
Any Saula
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
Liliana Charco
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
Chars Orden
 

Similar a SQL (Structured Query Language): Informe de Lectura Unidad 3 (20)

F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sqlF004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
F004 p006-gfpi guia de aprendizaje 1-fundamentosde sql
 
Manual
ManualManual
Manual
 
Introducción SQL : Primera semana
Introducción SQL : Primera semanaIntroducción SQL : Primera semana
Introducción SQL : Primera semana
 
LENGUAJE TRANSACT SQL
 LENGUAJE TRANSACT SQL LENGUAJE TRANSACT SQL
LENGUAJE TRANSACT SQL
 
Practica1
Practica1Practica1
Practica1
 
Practica1
Practica1Practica1
Practica1
 
Lenguaje transact
Lenguaje transactLenguaje transact
Lenguaje transact
 
TEMA3-SQL-(PARTE 1).pdf
TEMA3-SQL-(PARTE 1).pdfTEMA3-SQL-(PARTE 1).pdf
TEMA3-SQL-(PARTE 1).pdf
 
Act4 screencast-bdatos cmch
Act4 screencast-bdatos cmchAct4 screencast-bdatos cmch
Act4 screencast-bdatos cmch
 
Modulo2 tema 3-lenguaje sql-ddl
Modulo2 tema 3-lenguaje sql-ddlModulo2 tema 3-lenguaje sql-ddl
Modulo2 tema 3-lenguaje sql-ddl
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
6. sql structured query language2
6. sql   structured query language26. sql   structured query language2
6. sql structured query language2
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
111
111111
111
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
6. SQL structured query language
6. SQL   structured query language6. SQL   structured query language
6. SQL structured query language
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 

Más de JuanMiguelCustodioMo

Historia e evoluvion de los lenguaje de programcion
Historia e evoluvion de los lenguaje de programcionHistoria e evoluvion de los lenguaje de programcion
Historia e evoluvion de los lenguaje de programcion
JuanMiguelCustodioMo
 
DIAGRAMAS DE FLUJO
DIAGRAMAS DE FLUJODIAGRAMAS DE FLUJO
DIAGRAMAS DE FLUJO
JuanMiguelCustodioMo
 
Los precursores de la Didáctica: sus aportes y teorías
Los precursores de la Didáctica: sus aportes y teoríasLos precursores de la Didáctica: sus aportes y teorías
Los precursores de la Didáctica: sus aportes y teorías
JuanMiguelCustodioMo
 
Investigaciones sobre la enseñanza y el aprendizaje
Investigaciones sobre la enseñanza y el aprendizajeInvestigaciones sobre la enseñanza y el aprendizaje
Investigaciones sobre la enseñanza y el aprendizaje
JuanMiguelCustodioMo
 
Cuadros comparativos sobre las teorías de aprendizaje
Cuadros comparativos sobre las teorías de aprendizajeCuadros comparativos sobre las teorías de aprendizaje
Cuadros comparativos sobre las teorías de aprendizaje
JuanMiguelCustodioMo
 
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
JuanMiguelCustodioMo
 
Las Competencias : Didáctica General
Las Competencias : Didáctica GeneralLas Competencias : Didáctica General
Las Competencias : Didáctica General
JuanMiguelCustodioMo
 
Los Contenidos Didácticos: Tipos y selección de contenidos
Los Contenidos Didácticos: Tipos y selección de contenidosLos Contenidos Didácticos: Tipos y selección de contenidos
Los Contenidos Didácticos: Tipos y selección de contenidos
JuanMiguelCustodioMo
 
Reflexiones sobre evaluación
Reflexiones sobre evaluaciónReflexiones sobre evaluación
Reflexiones sobre evaluación
JuanMiguelCustodioMo
 
Actividad práctica para aplicar criterios de evaluación.
Actividad práctica para aplicar criterios de evaluación.Actividad práctica para aplicar criterios de evaluación.
Actividad práctica para aplicar criterios de evaluación.
JuanMiguelCustodioMo
 
Introducción a la Didáctica General: Unidad 1
Introducción a la Didáctica General: Unidad 1 Introducción a la Didáctica General: Unidad 1
Introducción a la Didáctica General: Unidad 1
JuanMiguelCustodioMo
 
ESTRATEGIAS DIDÁCTICAS.: Unidad 4
ESTRATEGIAS DIDÁCTICAS.: Unidad 4ESTRATEGIAS DIDÁCTICAS.: Unidad 4
ESTRATEGIAS DIDÁCTICAS.: Unidad 4
JuanMiguelCustodioMo
 
RECURSOS Didácticos
 RECURSOS Didácticos RECURSOS Didácticos
RECURSOS Didácticos
JuanMiguelCustodioMo
 
Criterios para selección de recursos didácticos
Criterios para selección de recursos didácticosCriterios para selección de recursos didácticos
Criterios para selección de recursos didácticos
JuanMiguelCustodioMo
 
6. Cuestionario Unidad 3
6. Cuestionario Unidad 36. Cuestionario Unidad 3
6. Cuestionario Unidad 3
JuanMiguelCustodioMo
 
5. Diario de Campo
5. Diario de Campo5. Diario de Campo
5. Diario de Campo
JuanMiguelCustodioMo
 
4. Reproducciones
4. Reproducciones4. Reproducciones
4. Reproducciones
JuanMiguelCustodioMo
 
1. presentacion
1. presentacion1. presentacion
1. presentacion
JuanMiguelCustodioMo
 
3. Productos
3. Productos 3. Productos
3. Productos
JuanMiguelCustodioMo
 
2. Competencias especificas
2. Competencias especificas2. Competencias especificas
2. Competencias especificas
JuanMiguelCustodioMo
 

Más de JuanMiguelCustodioMo (20)

Historia e evoluvion de los lenguaje de programcion
Historia e evoluvion de los lenguaje de programcionHistoria e evoluvion de los lenguaje de programcion
Historia e evoluvion de los lenguaje de programcion
 
DIAGRAMAS DE FLUJO
DIAGRAMAS DE FLUJODIAGRAMAS DE FLUJO
DIAGRAMAS DE FLUJO
 
Los precursores de la Didáctica: sus aportes y teorías
Los precursores de la Didáctica: sus aportes y teoríasLos precursores de la Didáctica: sus aportes y teorías
Los precursores de la Didáctica: sus aportes y teorías
 
Investigaciones sobre la enseñanza y el aprendizaje
Investigaciones sobre la enseñanza y el aprendizajeInvestigaciones sobre la enseñanza y el aprendizaje
Investigaciones sobre la enseñanza y el aprendizaje
 
Cuadros comparativos sobre las teorías de aprendizaje
Cuadros comparativos sobre las teorías de aprendizajeCuadros comparativos sobre las teorías de aprendizaje
Cuadros comparativos sobre las teorías de aprendizaje
 
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
 
Las Competencias : Didáctica General
Las Competencias : Didáctica GeneralLas Competencias : Didáctica General
Las Competencias : Didáctica General
 
Los Contenidos Didácticos: Tipos y selección de contenidos
Los Contenidos Didácticos: Tipos y selección de contenidosLos Contenidos Didácticos: Tipos y selección de contenidos
Los Contenidos Didácticos: Tipos y selección de contenidos
 
Reflexiones sobre evaluación
Reflexiones sobre evaluaciónReflexiones sobre evaluación
Reflexiones sobre evaluación
 
Actividad práctica para aplicar criterios de evaluación.
Actividad práctica para aplicar criterios de evaluación.Actividad práctica para aplicar criterios de evaluación.
Actividad práctica para aplicar criterios de evaluación.
 
Introducción a la Didáctica General: Unidad 1
Introducción a la Didáctica General: Unidad 1 Introducción a la Didáctica General: Unidad 1
Introducción a la Didáctica General: Unidad 1
 
ESTRATEGIAS DIDÁCTICAS.: Unidad 4
ESTRATEGIAS DIDÁCTICAS.: Unidad 4ESTRATEGIAS DIDÁCTICAS.: Unidad 4
ESTRATEGIAS DIDÁCTICAS.: Unidad 4
 
RECURSOS Didácticos
 RECURSOS Didácticos RECURSOS Didácticos
RECURSOS Didácticos
 
Criterios para selección de recursos didácticos
Criterios para selección de recursos didácticosCriterios para selección de recursos didácticos
Criterios para selección de recursos didácticos
 
6. Cuestionario Unidad 3
6. Cuestionario Unidad 36. Cuestionario Unidad 3
6. Cuestionario Unidad 3
 
5. Diario de Campo
5. Diario de Campo5. Diario de Campo
5. Diario de Campo
 
4. Reproducciones
4. Reproducciones4. Reproducciones
4. Reproducciones
 
1. presentacion
1. presentacion1. presentacion
1. presentacion
 
3. Productos
3. Productos 3. Productos
3. Productos
 
2. Competencias especificas
2. Competencias especificas2. Competencias especificas
2. Competencias especificas
 

Último

UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
arleyo2006
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 

Último (20)

UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 

SQL (Structured Query Language): Informe de Lectura Unidad 3

  • 1. Tema: Bases de Datos Unidad 3: SQL (Structured Query Language) Asignatura: Base de Datos – INF-4200-1 Participante: Juan Miguel Custodio Morillo 100480765 Docente: Edward Ureña Mejía Fecha:07/03/2021
  • 2. Índice Introducción 1. Breve historia de SQL 1.2.¿Qué podemos hacer con SQL? 1.3.Principales Características de SQL 2. Estructuras de SQL 2.1.Comandos de definición de datos 2.2.Comandos de manipulación de datos 2.3.Comandos de control y seguridad de datos 2.4.Clausulas 2.5.Funciones de agregados 2.6.Tipos de Datos 3. Gestión de tablas en SQL 3.1.Creación de tablas a partir de sentencias SQL 3.2.Creación de Tablas Nuevas 3.3.La cláusula CONSTRAINT 3.4.Creación de Índices 3.5.Modificar el diseño de una tabla 3.6.Sintaxis y ejemplos para introducir registros en una tabla 3.7.Borrado de registros en una tabla 3.8.UPDATE del lenguaje SQL y edición de registros en una tabla. 3.9.Consultas de Selección (SELECT) Consultas con Predicado 3.10. Criterios de selección 3.11. Cómo realizar selecciones eficientemente 3.12. Consultas mediante JOIN 3.13. Vistas (tablas virtuales) en SQL Nota sobre la utilización de valores nulos conclusión Bibliografías
  • 3. Introducción En este trabajo, tiene como objetivo principal reunir los conceptos claves e introductorios para crear y manipular bases de datos con la estructura del lenguaje SQL. Definición: El término SQL significa, «Structured Query Language» (lenguaje de consulta estructurada), debido a que fue concebido para consultar o recuperar los datos de bases de datos estructuradas o relacionales, así como administrar los diferentes sistemas de gestión de bases de datos. 1. Breve historia de SQL En 1970, Edgar Frank Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definieron el lenguaje SEQUEL (Structured English Query Language) que más tarde fue ampliamente implementado por el sistema de gestión de bases de datos (SGBD) experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un producto comercial. El SEQUEL terminó siendo el predecesor de SQL, que es una versión evolucionada del primero. SQL pasa a ser el lenguaje por excelencia de los diversos sistemas de gestión de bases de datos relacionales surgidos en los años siguientes y fue por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, "SQL-86" o "SQL1". Al año siguiente este estándar es también adoptado por ISO. Sin embargo, este primer estándar no cubría todas las necesidades de los desarrolladores e incluía funcionalidades de definición de almacenamiento que se consideró suprimirlas. Así que, en 1992, se lanzó un nuevo estándar ampliado y revisado de SQL llamado "SQL-92" o "SQL2". 1.2. ¿Qué podemos hacer conSQL? Todos los principales gestores de base de datos incorporan un motor SQL en el Servidor de Base Datos, así como herramientas de cliente que permiten enviar comandos SQL para que sean procesadas por el motor del servidor. De esta forma, todas las tareas de gestión de la Base de Datos (BD) pueden realizarse utilizando sentencias SQL:  Ejecutar sentencias o queries en una base de datos.  Recuperar datos de una base de datos.  Insertar registros en una base de datos.  Actualizar los registros de una base de datos.  Eliminar los registros de una base de datos.  Crear nuevas bases de datos.
  • 4.  Crear nuevas tablas en una base de datos.  Crear procedimientos almacenados o stored procedures en una base de datos.  Crear vistas o views en una base de datos.  Establecer permisos en tablas, procedimientos y vistas. 1.3. Principales Característicasde SQL SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones. Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros —y no a registros individuales— permite una alta productividad en codificación y la orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros. SQL también tiene las siguientes características:  Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación.  Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas.  Integridad: El LDD de SQL incluye comandos para especificar las restricciones de integridad que deben cumplir los datos almacenados en la base de datos.  Definición de vistas: El LDD incluye comandos para definir las vistas.  Control de transacciones: SQL tiene comandos para especificar el comienzo y el final de una transacción.  SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de SQL en lenguajes de programación como: C++, C, Java, PHP, COBOL, Pascal y Fortran.  Autorización: El LDD incluye comandos para especificar los derechos de acceso a las relaciones y a las vistas.  El estándar SQL permite el intercambio entre diferentes manejadores o DBMS. 2. Estructuras de SQL El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Los comandos del SQL pueden dividirse en tres grupos:
  • 5. 2.1. Comandos de definición de datos DDL = Data Definition Language), que permiten crear y definir nuevas bases de datos, campos, etc. Donde tenemos:  CREATE: Encargado de crear nuevas tablas, campos, …  DROP: Encargado de eliminar tablas  ALTER: Encargado de modificar las tablas, agregando campos o cambiando la definición de los campos 2.2.Comandos de manipulación de datos (DML = Data Manipulation Language), que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Donde encontramos:  SELECT: Encargado de consultar registros de la base de datos que satisfagan un criterio determinado  INSERT: Encargado de cargar lotes de datos en la base de datos en una única operación  UPDATE: Encargado de modificar los valores de los campos y registros especificados  DELETE: Encargado de eliminar registros de una tabla  TRUNCATE: Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que, si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción. 2.3.Comandos de control y seguridadde datos, que gobiernan los privilegios de los usuarios, los controles de acceso, … 2.4.Clausulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.  FROM: Sirve para especificar la tabla de la cual se van a seleccionar los registros.  WHERE: Sirve para especificar las condiciones que deben reunir los registros que se van a seleccionar.
  • 6.  GROUP BY: Sirve para especificar un criterio adicional por el que agrupar los registros seleccionados.  HAVING: Sirve para expresar la condición que debe satisfacer cada grupo anterior.  ORDER BY: Sirve para ordenar los registros seleccionados de acuerdo con el orden especificado. 2.5.Funciones de Agregado Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros, por lo general encontramos:  AVG: Utilizada para calcular el promedio de los valores de un campo determinado  COUNT: Utilizada para devolver el número de registros de la selección  SUM: Utilizada para devolver la suma de todos los valores de un campo determinado  MAX: Utilizada para devolver el valor más alto de un campo especificado  MIN: Utilizada para devolver el valor más bajo de un campo especificado 2.6.Tipos de Datos La mayoría de los productos incluyen tipos de datos extendidos e incluso algunos productos ofrecen la posibilidad de que el usuario defina sus propios tipos. Los tipos más utilizados:  CHAR: (longitud) se utiliza para guardar cadenas de caracteres de longitud fija especificada entre paréntesis.  VARCHAR: (longitud) almacenas cadenas de caracteres de longitud variable cuyo límite máximo es especifica como longitud.  NUMBER: (escala, precisión) se utiliza para guardar datos numéricos.  INT: Es el principal tipo de datos de valores enteros de SQL, con números enteros con o sin signo.  DATE: Utilizado para almacenar fechas.  TIME: La hora del día en horas minutos segundos (el valor predeterminado es 0). 3. Gestiónde tablas en SQL 3.1. Creaciónde tablas a partir de sentencias SQL Para crear una tabla debemos especificar diversos datos: El nombre que le queremos asignar, los nombres de los campos y sus características. Además, puede ser necesario especificar cuáles de estos campos van a ser índices y de qué tipo van a serlo.
  • 7. La sintaxis de creación puede variar ligeramente de una base de datos a otra ya que los tipos de campo aceptados no están completamente estandarizados. A continuación, explicamos superficialmente la sintaxis de esta sentencia: Sintaxis Create Table nombre tabla ( nombre_campo_1 tipo_1, nombre_campo_2 tipo_2, nombre_campo_n tipo_n Key(campo_x,...) ); Finalmente, definimos los índices enumerándolos entre paréntesis precedidos de la palabra KEY o INDEX. 3.2. Creaciónde Tablas Nuevas CREATE TABLE tabla ( campo1 tipo (tamaño) índice1, campo2 tipo (tamaño) índice2,... , índice multicampo , ... ); En donde: Tabla Es el nombre de la tabla que se va a crear. campo1 campo2 Es el nombre del campo o de los campos que se van a crear en la nueva tabla. La nueva tabla debe contener, al menos, un campo. Tipo Es el tipo de datos de campo en la nueva tabla. Tamaño Es el tamaño del campo sólo se aplica para campos de tipo texto. índice1 índice2 Es una cláusula CONSTRAINT que define el tipo de índice a crear. Esta cláusula en opcional. índice multicampos Es una cláusula CONSTRAINT que define el tipo de índice multicampos a crear. Un índice multicampo es aquel que está indexado por el contenido de varios campos. Esta cláusula en opcional.
  • 8. 3.3. La cláusula CONSTRAINT Se utiliza la cláusula CONSTRAINT en las instrucciones ALTER TABLE y CREATE TABLE para crear o eliminar índices. Existen dos sintaxis para esta cláusula dependiendo si desea Crear o Eliminar un índice de un único campo o si se trata de un campo multiíndice. Para los índices de campos únicos: CONSTRAINT nombre {PRIMARY KEY | UNIQUE | REFERENCES tabla externa [(campo externo1, campo externo2)]} Para los índices de campos múltiples: CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [,...]]) | UNIQUE (único1[, único2 [, ...]]) | FOREIGN KEY (ref1[, ref2 [,...]]) REFERENCES tabla externa [(campo externo1 ,campo externo2 [,...])]} En donde: Nombre Es el nombre del índice que se va a crear. PrimarioN Es el nombre del campo o de los campos que forman el índice primario. ÚnicoN Es el nombre del campo o de los campos que forman el índice de clave única. RefN Es el nombre del campo o de los campos que forman el índice externo (hacen referencia a campos de otra tabla). tabla externa Es el nombre de la tabla que contiene el campo o los campos referenciados en refN campos externos Es el nombre del campo o de los campos de la tabla externa especificados por ref1, ref2,... , refN Si se desea crear un índice para un campo cuando se está utilizando las instrucciones ALTER TABLE o CREATE TABLE la cláusula CONTRAINT debe aparecer inmediatamente después de la especificación del campo indexado. Si se desea crear un índice con múltiples campos cuando se está utilizando las instrucciones ALTER TABLE o CREATE TABLE la cláusula CONSTRAINT debe aparecer fuera de la cláusula de creación de tabla. Índice Descripción
  • 9. UNIQUE Genera un índice de clave única. Lo que implica que los registros de la tabla no pueden contener el mismo valor en los campos indexados. PRIMARY KEY Genera un índice primario el campo o los campos especificados. Todos los campos de la clave principal deben ser únicos y no nulos, cada tabla sólo puede contener una única clave principal. FOREIGN KEY Genera un índice externo (toma como valor del índice campos contenidos en otras tablas). Si la clave principal de la tabla externa consta de más de un campo, se debe utilizar una definición de índice de múltiples campos, listando todos los campos de referencia, el nombre de la tabla externa, y los nombres de los campos referenciados en la tabla externa en el mismo orden que los campos de referencia listados. Si los campos referenciados son la clave principal de la tabla externa, no tiene que especificar los campos referenciados, predeterminado por valor, el motor Jet se comporta como si la clave principal de la tabla externa estuviera formada por los campos referenciados. 3.4. Creaciónde Índices La sintaxis para crear un índice en una tabla ya definida en la siguiente: CREATE [ UNIQUE] INDEX índice ON Tabla (campo [ASC|DESC][, campo [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }] En donde: Índice Es el nombre del índice a crear. Tabla Es el nombre de una tabla existente en la que se creará el índice. Campo Es el nombre del campo o lista de campos que constituyen el índice. ASC|DESC Indica el orden de los valores de los campos ASC indica un orden ascendente (valor predeterminado) y DESC un orden descendente. UNIQUE Indica que el índice no puede contener valores duplicados. DISALLOW NULL Prohibe valores nulos en el índice
  • 10. IGNORE NULL Excluye del índice los valores nulos incluidos en los campos que lo componen. PRIMARY Asigna al índice la categoría de clave principal, en cada tabla sólo puede existir un único índice que sea "Clave Principal". Si un índice es clave principal implica que no puede contener valores nulos ni duplicados. 3.5. Modificar el diseño de una tabla Modifica el diseño de una tabla ya existente, se pueden modificar los campos o los índices existentes. Su sintaxis es: ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamaño)] [CONSTRAINT índice] CONSTRAINT índice multicampo} | DROP {COLUMN campo I CONSTRAINT nombre del índice}} En donde: Tabla Es el nombre de la tabla que se desea modificar. Campo Es el nombre del campo que se va a añadir o eliminar. Tipo Es el tipo de campo que se va a añadir. Tamaño Es el tamaño del campo que se va a añadir (sólo para campos de texto). Índice Es el nombre del índice del campo (cuando se crean campos) o el nombre del índice de la tabla que se desea eliminar. índice multicampo Es el nombre del índice del campo multicampo (cuando se crean campos) o el nombre del índice de la tabla que se desea eliminar. Operación Descripción ADD COLUMN Se utiliza para añadir un nuevo campo a la tabla, indicando el nombre, el tipo de campo y opcionalmente el tamaño (para campos de tipo texto). ADD Se utiliza para agregar un índice de multicampos o de un único campo.
  • 11. DROP COLUMN Se utiliza para borrar un campo. Se especifica únicamente el nombre del campo. DROP Se utiliza para eliminar un índice. Se especifica únicamente el nombre del índice a continuación de la palabra reservada CONSTRAINT. 3.6. Sintaxis y ejemplos para introducir registros enuna tabla Los registros pueden ser introducidos a partir de sentencias que emplean la instrucción Insert. La sintaxis utilizada es la siguiente: Insert Into nombre_tabla (nombre_campo1, nombre_campo2,...) Values (valor_campo1, valor_campo2...) Un ejemplo sencillo a partir de nuestra tabla modelo es la introducción de un nuevo cliente lo cual se haría con una instrucción de este tipo: Insert Into clientes (nombre, apellidos, dirección, población, codigopostal, email, pedidos) Values ('Perico', 'Palotes', 'Percebe n°13', 'Lepe', '123456', 'perico@desarrolloweb.com', 33) Como puede verse, los campos no numéricos o booleanos van delimitados por apostrofes: '. También resulta interesante ver que el código postal lo hemos guardado como un campo no numérico. Por supuesto, no es imprescindible rellenar todos los campos del registro. Eso sí, puede ser que determinados campos sean necesarios. Estos campos necesarios pueden ser definidos cuando construimos nuestra tabla mediante la base de datos. 3.7. Borrado de registros en una tabla Para borrar un registro nos servimos de la instrucción Delete. En este caso debemos especificar cual o cuales son los registros que queremos borrar. Es por ello necesario establecer una selección que se llevara a cabo mediante la cláusula Where. Delete From nombre_tabla Where condiciones_de_selección Si queremos por ejemplo borrar todos los registros de los clientes que se llamen Perico lo haríamos del siguiente modo: Delete From clientes Where nombre='Perico'; Hay que tener cuidado con esta instrucción ya que, si no especificamos una condición con Where, lo que estamos haciendo es borrar toda la tabla: Delete From clientes
  • 12. 3.8. UPDATE del lenguaje SQL y edición de registros en una tabla. Update es la instrucción del lenguaje SQL que nos sirve para modificar los registros de una tabla. Como para el caso de Delete, necesitamos especificar por medio de Where cuáles son los registros en los que queremos hacer efectivas nuestras modificaciones. Además, obviamente, tendremos que especificar cuáles son los nuevos valores de los campos que deseamos actualizar. La sintaxis es de este tipo: Update nombre_tabla Set nombre_campo1 = valor_campo1, nombre_campo2 = valor_campo2,... Where condiciones_de_selección Un ejemplo aplicado: Update clientes Set nombre='José' Where nombre='Pepe'; Mediante esta sentencia cambiamos el nombre Pepe por el de José en todos los registros cuyo nombre sea Pepe. Aquí también hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario, modificaríamos todos los registros de nuestra tabla. 3.9. Consultas de Selección(SELECT) Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos. Esta información es devuelta en forma de conjunto de registros que se pueden almacenar en una nueva tabla. Consultas de selecciónbásicas La sintaxis más sencilla de una consulta de selección es la siguiente: SELECT Campos FROM Tabla; Donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos. Consultas con Predicado (ALL, TOP, DISTINCT) :En cuanto al conjunto de registros seleccionados, estos modificadores, que se incluyen entre SELECT y el primer nombre del campo a recuperar, provocan las siguientes acciones: ALL: Devuelve todos los campos de la tabla (valor por defecto). TOP: Devuelve un determinado número de registros de la tabla. DISTINCT: Omite repeticiones de registros cuyos campos seleccionados coincidan totalmente. DISTINCTROW: Omite repeticiones de registros basándose en la totalidad del registro y no sólo en los campos seleccionados.
  • 13. ALIAS Un alias, es otra forma de llamar a una tabla o a una columna, y se utiliza para simplificar las sentencias SQL cuando los nombres de tablas o columnas son largos o complicados. Por ejemplo: SELECT Apellido AS Empleado FROM Empleados AS Trabajadores 3.10. Criterios de selección  Operadores Lógicos Los operadores lógicos soportados por SQL son: AND, OR, XOR, Eqv, Imp, Is y Not.  Operador BETWEEN Para indicar que deseamos recuperar los registros según el intervalo de valores de un campo emplearemos el operador BETWEEN.  El Operador LIKE Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL. Se puede utilizar el operador LIKE para encontrar valores en los campos que coincidan con el modelo especificado.  El Operador IN Este operador devuelve los registros cuyo campo indicado coincide con alguno de los dados en una lista.  La cláusula WHERE La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas en la cláusula FROM aparecerán en los resultados de la instrucción SELECT. WHERE es opcional, pero cuando aparece debe ir a continuación de FROM. 3.11. Cómo realizar seleccioneseficientemente La selección total o parcial de una tabla se lleva a cabo mediante la instrucción Select. En dicha selección hay que especificar:
  • 14. -Los campos que queremos seleccionar -La tabla en la que hacemos la selección En nuestra tabla modelo de clientes podríamos hacer por ejemplo una selección del nombre y dirección de los clientes con una instrucción de este tipo: Select nombre, dirección From clientes Si quisiésemos seleccionar todos los campos, es decir, toda la tabla, podríamos utilizar el comodín * del siguiente modo: Select * From clientes Resulta también muy útil el filtrar los registros mediante condiciones que vienen expresadas después de la cláusula Where. Si quisiésemos mostrar los clientes de una determinada ciudad usaríamos una expresión como esta: Select * From clientes Where poblacion Like 'Madrid' Además, podríamos ordenar los resultados en función de uno o varios de sus campos. Para este último ejemplo los podríamos ordenar por nombre así: Select * From clientes Where poblacion Like 'Madrid' Order By nombre Teniendo en cuenta que puede haber más de un cliente con el mismo nombre, podríamos dar un segundo criterio que podría ser el apellido: Select * From clientes Where poblacion Like 'Madrid' Order By nombre, apellido Si invirtiésemos el orden « nombre,apellido » por « apellido, nombre », el resultado sería distinto. Tendríamos los clientes ordenados por apellido y aquellos que tuviesen apellidos idénticos se subclasificarían por el nombre. Es posible también clasificar por orden inverso. Si por ejemplo quisiésemos ver nuestros clientes por orden de pedidos realizados teniendo a los mayores en primer lugar escribiríamos algo así: Select * From clientes Order By pedidos Desc Una opción interesante es la de efectuar selecciones sin coincidencia. Si por ejemplo buscásemos el saber en qué ciudades se encuentran nuestros clientes sin necesidad de que para ello aparezca varias veces la misma ciudad usaríamos una sentencia de esta clase: Select Distinct población From clientes Order By población Así evitaríamos ver repetido Madrid tantas veces como clientes tengamos en esa población.
  • 15. 3.12. Consultas mediante JOIN La sentencia SQL JOIN se utiliza para relacionar varias tablas. Nos permitirá obtener un listado de los campos que tienen coincidencias en ambas tablas: Los Principales Join: a. Inner join – esta es la opción predeterminada. Si no se especifica el tipo de unión, se establecerá de manera predeterminada como la unión interna. Esto implica que, si estamos uniendo dos tablas en una columna común, solo retornaran los datos que coincidan en ambas tablas. Subtipos de Inner Join: Tipos de Join Operadores de comparación permitidos Theta Join = (igual) < (menor que) > (mayor que) ≤ (menos o igual que) ≥ (mayor o igual que) <> (desigual)! = (desigual) Equi Join = (igual) Non Equi Join < (menor que) > (mayor que) ≤ (menor o igual que) ≥ (mayor o igual que) <> (desigual)! = (desigual) Natural Join es un subtipo de Equi Join y, al igual que este, requiere la igualdad de dos valores de columna como condición de selección. Si dos tablas están enlazadas por columnas con el mismo nombre, los Inner Join se aplican como Natural Join. b. Cross join – como indica su nombre, hace [n X m] donde se una todo combinado con todo. Es un escenario donde simplemente listamos las tablas para unir (en la cláusula From de la sentencia Select), usando comas para separarlas. c. Left join – este tipo de unión significa que solo retornan todos los datos de la tabla de la mano izquierda, solo si los datos coinciden con la tabla de la mano derecha. d. Right join – este tipo de unión es el caso opuesto al anterior. Implica que solo retornaran los datos de la tabla de la mano derecha, solo si los datos coinciden con la tabla de la mano izquierda.
  • 16. Además de esto, también existen tipos de combinaciones externas y cruzadas. La Outer join tiene 3 tipos diferentes: i. Left outer join – recupera registros si están presentes en la tabla izquierda. ii. Right outer join – recupera registros si están presentes en la tabla derecha. iii. Full outer join – recupera registros si están presentes en cualquiera de las dos tablas. 3.13. Vistas (tablas virtuales) en SQL Las vistas (“views”) en SQL son tabla que deriva de otras tablas con un mecanismo que permite generar un resultado a partir de una consulta (query) almacenado, y ejecutar nuevas consultas sobre este resultado como si fuera una tabla normal. Las vistas tienen la misma estructura que una tabla: filas y columnas. La única diferencia es que sólo se almacena de ellas la definición, no los datos. Esto limita las posibles operaciones de actualización que pueden aplicarse a las vistas, pero no ofrecen limitación alguna al consultar una vista. La cláusula CREATE VIEW permite la creación de vistas. La cláusula asigna un nombre a la vista y permite especificar la consulta que la define. Su sintaxis es: # CREATE VIEW id_vista [(columna,…)]AS especificación_consulta; Opcionalmente se puede asignar un nombre a cada columna de la vista. Si se especifica, la lista de nombres de las columnas debe de tener el mismo número de elementos que el número de columnas producidas por la consulta. Si se omiten, cada columna de la vista1 adopta el nombre de la columna correspondiente en la consulta. Nota sobre la utilización de valores nulos En SQL la ausencia de valor se expresa como valor nulo (NULL). Esta ausencia de valor o valor nulo no equivale en modo alguno al valor 0. Cualquier expresión aritmética que contenga algún valor nulo retornará un valor nulo. En SQL un valor nulo ni siquiera es igual a otro valor nulo La explicación es que un valor nulo es indeterminado, y, por tanto, no es igual ni distinto de otro valor nulo. Cuando queremos comprobar si un valor es nulo emplearemos el operador IS NULL (o IS NOT NULL para comprobar que es distinto de nulo).
  • 17. Como acabamos de ver los valores nulos en muchas ocasiones pueden representar un problema, especialmente en columnas que contienen valores numéricos. Para evitar estos problemas se suele utilizar: La restricción NOT NULL (es una orden de definición de datos) que impide que se incluyan valores nulos en una columna. La función NVL (que veremos en detalle más adelante) que se utiliza para devolver un valor determinado en el caso de que el valor del argumento sea nulo. Por ejemplo, NVL (COMISION, 0) retornará 0 cuando el valor de comisión sea nulo. (En Access se llama NZ) Conclusión A través de toda información analizada pude contactar que SQL se convirtió en un lenguaje estándar que nos permite administrar y extraer información de bases de datos en forma sencilla, ya que su implementación y manejo, resulta fácil y de muchas ventajas frente a otros lenguajes de estructuras de datos. Esto significa que puedes usar los mismos comandos entre un manejador y otro, ya que SQL es un lenguaje estándar, lo cual resulta de mucha utilidad, porque los comandos para crear la estructura de base de datos o para manipular los datos siguen conservando la misma forma. Por estas y características hacen de este lenguaje uno de los más importantes usados y solicitados para analizar datos. El SQL no presenta una estructura engorrosa, más bien atractivas y suaves para el desarrollador, también se debe saber que, aunque exista un estándar definido por ANSI, existen particularidades entre los diferentes DBMS en el manejo SQL. En mi humilde opinión creo que SQL se seguirá utilizando por mucho tiempo, y puede surgen otro mañana, pero la forma que brinda este lenguaje es única; sobre todo la forma lógica como está estructurado. Bibliografías: Fundamentos de Sistemas de Bases de Datos, de Ramez Elmasri y Shamkant B. Navathe (2007) , 5ta. Edición . Fundamentos de SQL, Tercera edición Andy Oppel Robert Sheldon Traducción Carlos Fabián Jiménez Castillo. https://www.lawebdelprogramador.com/cursos/archivos/ManualPracticoSQL.pdf https://es.wikipedia.org/wiki/SQL https://www.cartagena99.com/recursos/alumnos/apuntes/Manual-SQL1.pdf