Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FDSFDSSD PDF
FDSFDSSD PDF
SEMANA 4
SQL: lenguaje para la definición, manipulación
y control de bases de datos relacionales I
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni 1
ESTE
utilizarDOCUMENTO
los contenidos paraCONTIENE LAdeSEMANA
fines comerciales 4
ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 4
ÍNDICE
3
ESTE DOCUMENTO CONTIENE LA SEMANA 4
SQL: LENGUAJE PARA LA DEFINICIÓN, MANIPULACIÓN Y
CONTROL DE BASE DE DATOS RELACIONALES I
OBJETIVO ESPECÍFICO
Analizar las características del lenguaje SQL, reconociendo los comandos de definición y
manipulación de datos.
INTRODUCCIÓN
En la presente semana se empezará a conocer el lenguaje SQL, el cual es utilizado para trabajar
con las bases de datos relacionales que permiten realizar un sinfín de transacciones. Se iniciará
con la historia y definición de este lenguaje, para luego ir conociendo lenguajes que forman parte
de este.
4
ESTE DOCUMENTO CONTIENE LA SEMANA 4
1. LENGUAJE SQL
Antes de comenzar a hablar sobre el lenguaje SQL, es importante destacar que este se emplea en
bases de datos relacionales, las cuales son beneficiosas dada la simplicidad que ofrecen. Una base
de datos relacional está compuesta por un conjunto de datos organizados en diferentes tablas que
se relacionan entre sí. Tal y como especifican Mannino, Villegas, Guerrero y Díaz (2007), una tabla
tiene un encabezado, en el cual cada columna está identificada con un nombre, y las filas
representan los datos que están almacenados en la tabla. Si se tuviera por ejemplo una tabla de
estudiante, donde los datos a almacenar fueran RUT, NOMBRE, APELLIDO, DIRECCION Y
TELEFONO, su representación gráfica pudiese ser algo como esta figura:
1.1.DEFINICIÓN
Luego de esta pequeña introducción sobre las bases de datos relacionales, así como de las tablas,
es necesario hablar acerca del lenguaje SQL. Según Ramos, Ramos y Montero (2006), SQL
(Structured Query Language, o lenguaje de consultas estructuradas) es una herramienta que sirve
para organizar, gestionar y recuperar los datos que se encuentran almacenados en una base de
datos relacional, lo que implicaría que permite que exista una comunicación con el sistema de
gestión de la base de datos.
1.2.HISTORIA
Remontándonos a la historia de SQL, es posible, y tal como especifican Ramos, Ramos y Montero
(2006), ubicarla en su origen en relación a un prototipo de gestor de bases de datos relacionales
propiedad de IBM llamado SYSTEM R. Este tenía lenguaje de consultas SQL tales como SEQUEL,
que más tarde se llamó SQL.
5
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Uno de los hitos más importantes en la historia de SQL tuvo lugar en 1986, cuando ANSI, el
Instituto Nacional Americano de Estandarización, lo adoptó como un estándar para la gestión de
las bases de datos relacionales; seguido de esto, en 1987, la ISO (Organización Internacional de
Normalización) lo adoptaría también.
1.3.CARACTERÍSTICAS
Ramos, Ramos y Montero (2006) exponen como las principales caracterísitcas del lenguaje SQL las
siguientes:
Este lenguaje está pensado para cualquier tipo de usuarios, es decir, desde administadores
de bases de datos, pasando por desarrolladores, hasta usuarios finales normales.
Al utilizar SQL, el usuario solo se encarga de especificar lo que necesita, no se preocupa
por establecer dónde ni cómo.
El lenguaje SQL permite realizar cualquier tipo de consulta a los datos almacenados en la
base de datos.
SQL permite realizar consultas, actualizaciones, definiciones de datos y control.
6
ESTE DOCUMENTO CONTIENE LA SEMANA 4
De acuerdo a la figura, la aplicación realiza la petición en SQL al sistema de gestión de base de
datos, quien la ejecuta en la base de datos y retorna los datos a la aplicación.
Entre estos comandos se encuentran: CREATE, DROP, ALTER, TRUNCATE, COMMENT, RENAME,
entre otros.
http://sqlzoo.net/
1.4.1. CREATE
Según Ricardo (2009), este comando se utiliza para crear las tablas que forman a la base de datos
relacional. Puede ser utilizado en cualquier momento, por lo que es probable que la persona a
cargo del desarrollo de la base de datos inicie con algunas tablas, y a medida que sean necesarias
otras las vaya creando. La sintaxis del comando es la siguiente:
7
ESTE DOCUMENTO CONTIENE LA SEMANA 4
CREATE TABLE nombre_tabla (nombre_columna tipo_dato
[restricciones columna: NULL/NOT NULL, DEFAULT…UNIQUE,
CHECK…, PRIMARY KEY…][, nombre_columna tipo_dato
[restricciones columna: NULL/NOT NULL, DEFAULT…UNIQUE,
CHECK…, PRIMARY KEY…]
[especificaciones_almacenamiento]);
Si bien se observa dentro del recuadro correspondiente la sintaxis del comando CREATE, como hay
muchas partes opcionales, se mostrará un ejemplo básico, donde cabe destacar que los opcionales
pueden ser creados posteriormente gracias a las opciones que ofrece el sistema manejador de
base de datos que se esté utilizando.
A continuación, se presenta una tabla con los principales tipos de datos que maneja SQL, los cuales
es importante conocer antes de realizar las sentencias de creación de tablas.
NUMBER(precisión, Este tipo de datos almacena datos numéricos, los cuales pueden ser
escala) números enteros o decimales, pueden tener o no signo. Sus
atributos se tratan de: precisión, número máximo de dígitos y la
8
ESTE DOCUMENTO CONTIENE LA SEMANA 4
escala indica el número de dígitos que se puede tener a la derecha
del punto decimal.
Ahora bien, suponga que desea crear una tabla que registre los datos de los estudiantes del
Instituto Profesional IACC, la sintaxis sería la siguiente:
Como el recuadro de resultado está en blanco, esto indicaría que no hubo ningún error. Si
quisiéramos ver si la tabla en realidad se creó, se puede ejecutar el siguiente código:
9
ESTE DOCUMENTO CONTIENE LA SEMANA 4
DESC estudiantes;
Este código nos mostraría cómo se creó la tabla, dando como resultado lo siguiente:
Como se observa, se creó una tabla llamada “estudiantes”, con las siguientes columnas: RUT,
NOMBRES, APELLIDOS, FECHA_NACIMIENTO, DIRECCIÓN Y TELÉFONO.
1.4.2. ALTER
Según Ricardo (2009), este comando se utiliza si luego de creada la tabla se quisiera agregar o
eliminar una columna, o bien si se quisiera agregar o eliminar una restricción. Hasta el momento
solo se vio un ejemplo sin el trabajo con restricciones, por lo que se verá a continuación la sintaxis
para agregar o eliminar columnas:
10
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Para agregar columna:
El recuadro de resultado en blanco nos indica que todo se ejecutó sin problema. Si se quiere ver
cómo quedó la tabla luego de agregar la columna, se ejecuta:
11
ESTE DOCUMENTO CONTIENE LA SEMANA 4
DESC estudiantes;
El resultado indica que no hubo error, y más abajo se ve ahora cómo quedaría la tabla:
12
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).
1.4.3. DROP
Según Ricardo (2009), este comando permite eliminar la tabla que se desee, incluido todos los
registros que tiene almacenados. Ahora bien, en caso de que la tabla tuviese datos que son claves
foráneas en otras, la eliminación no se ejecutará. Se aborda la tabla creada hasta el momento y se
procede a eliminarla:
13
ESTE DOCUMENTO CONTIENE LA SEMANA 4
El resultado indica que no hubo error, y más abajo se ve ahora cómo no existe la tabla (utilizando
el comando DESC):
1.4.4. TRUNCATE
Este comando permite eliminar los registros que tenga una tabla sin eliminar la tabla como tal, a
diferencia del DROP. Suponiendo que se tiene la tabla estudiantes con los siguientes registros:
14
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Ejecutando el comando:
Se obtiene:
1.4.5. RENAME
Según Ricardo (2009), este comando permite cambiar de forma sencilla el nombre de la tabla.
Suponiendo que se tiene la tabla “estudiantes”, y se quisiera cambiar a “alumnos”, se debería
hacer lo siguiente:
15
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).
http://www.aulaclic.es/sql/t_8_1.htm
16
ESTE DOCUMENTO CONTIENE LA SEMANA 4
1.5. LENGUAJE DE MANIPULACIÓN DE DATOS (COMANDOS DML)
Según Ricardo (2009), los comandos DML o lenguaje de manipulación de datos son aquellos que
permiten insertar, devolver, actualizar o eliminar registros de determinada tabla de una base de
datos. Son comandos muy útiles, ya que sin ellos no sería posible tener data almacenada ni
recuperarla para su posterior uso.
1.5.1. INSERT
Ricardo (2009) comenta que este operador es el utilizado para incluir registros dentro de una
tabla. La sintaxis del comando es la siguiente:
Como se observa, se debe especificar el nombre de la tabla donde se quiere incluir el registro, los
campos de la tabla que llevarán datos y los valores de estos campos en el mismo orden en que se
colocaron luego del nombre de la tabla. Ahora bien, esto se encuentra entre los símbolos “[“ y “]”,
por cuanto es opcional. Si se va a llenar todos los campos de la tabla en el mismo orden en el que
están estructurados, no es necesario que colocar los nombres de los campos. A continuación se
presentan dos ejemplos, uno utilizando los nombres de los campos y otro sin esta parte de la
sentencia.
La instrucción anterior solo ingresará un registro llenando los campos RUT, NOMBRES y
APELLIDOS, obteniendo lo siguiente:
17
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).
18
ESTE DOCUMENTO CONTIENE LA SEMANA 4
1.5.2. UPDATE
Ricardo (2009) explica que el UPDATE se utiliza para cambiar valores en registros ya almacenados,
se usa en una tabla a la vez y puede modificar desde 0 registros hasta todos los de la tabla. La
sintaxis es la siguiente:
UPDATE nombre_tabla
SET nombre_columna = valor [,nombre_columna = valor]
[WHERE predicado];
Al observar la sintaxis, se puede ver que se debe especificar el nombre de la tabla donde se
actualizará un registro, además de las columnas a modificar con el nuevo valor que se desea, las
cuales pueden ser “n” columnas y, aunque es opcional el WHERE, es muy importante tener en
cuenta que si no se coloca, la actualización se hará en todos los registros de la tabla; si se desea
cambiar la columna de un registro en particular, se deberá especificar en dónde. Por ejemplo, en
el INSERT que se realizó anteriormente, había unas columnas en “NULL”, por lo que se utilizará el
UPDATE para completar esas columnas. Para este caso se debe especificar en el WHERE el RUT al
cual se le completarán los datos:
19
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).
Si se hubiese olvidado incluir el WHERE, se hubiesen actualizado de igual forma los datos del otro
registro de la tabla. A continuación, se verá un ejemplo de esto:
1.5.3. DELETE
Ricardo (2009) indica que el DELETE se utiliza para eliminar registros de una tabla, en una tabla a la
vez y que puede eliminar desde 0 registros hasta todos los de la tabla. La sintaxis es la siguiente:
20
ESTE DOCUMENTO CONTIENE LA SEMANA 4
DELETE FROM nombre_tabla
[WHERE predicado];
Al igual que el UPDATE, el WHERE es opcional; sin embargo, el no colocarlo implicaría el borrado
de todos los registros de la tabla. Por ejemplo, si se quisiera borrar un registro en particular del
ejemplo que se ha visto, el código sería:
De eliminar el WHERE, se comportaría como un TRUNCATE, porque borraría todos los registros de
la tabla.
1.5.4. SELECT
Ricardo (2009) comenta que este comando es el que se utiliza para recuperar datos. Es uno de los
más importantes ya que permite trabajar con los datos que están almacenados. Existen muchas
formas de utilizarlo, unas con mayor complejidad que otras, que además pueden involucrar varias
tablas, sin embargo, esta semana se abordarán consultas sencillas sobre una sola tabla. La sintaxis
es la siguiente:
21
ESTE DOCUMENTO CONTIENE LA SEMANA 4
SELECT nombre_columna [as nombre_nuevo] [,
nombre_columna] FROM nombre_tabla
[WHERE predicado]
[ORDER BY nombre_columna];
En la sintaxis, es posible apreciar que se debe escribir obligatoriamente la columna o las columnas
que se quieren traer de la tabla, la tabla de donde se traerán esas columnas, siendo opcional el
WHERE. Este indicaría alguna característica en particular que se debe cumplir para devolver las
columnas, al igual que el ORDER BY, que es una parte de la sintaxis que puede o no estar y que
permitirá ordenar de alguna forma el listado que se recuperará.
Si se quisiera hacer una consulta que devuelva todos los registros tal cual se ven en la figura
anterior, se podrían hacer dos consultas: una especificando las columnas que se quieran traer, o
una incluyendo un “*” en vez de los nombres de las columnas, trayendo así todas las columnas de
la tabla. El código de ambas consultas, para obtener los mismos resultados de la imagen anterior,
sería:
22
ESTE DOCUMENTO CONTIENE LA SEMANA 4
SELECT * FROM estudiantes;
Si se quisiera traer solo las columnas RUT, NOMBRES y APELLIDOS, debería escribirse:
Obteniendo:
Si la consulta que se requiere implica que solo se necesitan aquellos registros donde el nombre sea
“MARIA”, el código sería así:
23
ESTE DOCUMENTO CONTIENE LA SEMANA 4
SELECT * FROM estudiantes WHERE NOMBRES = 'MARIA';
O
Se obtiene:
Si se quisiera retornar todos los registros pero ordenados por RUT se utilizaría lo siguiente:
24
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Obteniendo:
Los ejemplos que se puedan dar de un SELECT pueden llegar a ser infinitos, todo depende de la
necesidad que se tenga y de ahí la búsqueda en las tablas de la base de datos.
http://goo.gl/sxvAqU
COMENTARIO FINAL
Al finalizar la semana, se ha podido conocer el lenguaje SQL, sus características, además de la
importancia que tiene para las bases de datos relacionales.
Además, se pudo conocer el lenguaje para la definición de datos (DDL) que permitirá que existan
las tablas de acuerdo a los requerimientos que se tengan, así como el lenguaje para la
manipulación de datos (DML), el cual va a permitir trabajar con los registros que se tengan en las
diferentes tablas de la base de datos.
25
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Conocer este lenguaje es de suma importancia para la existencia de las bases de datos
relacionales, ya que nada se consigue con poder definir las tablas y la forma en la que estarán los
registros si no existe una forma de almacenar y recuperar esos datos para posterior uso.
En la práctica, se irán consiguiendo nuevos usos a los comandos que se abordaron en la semana,
por lo que se invita a que el estudiante haga volar su imaginación, creando diferentes tablas y
utilizando de distintas formas estos comandos.
26
ESTE DOCUMENTO CONTIENE LA SEMANA 4
REFERENCIAS
Mannino, M.; Villegas, C.; Guerrero, E. y Díaz, J. (2007). Administración de bases de datos, diseño y
Ramos, M.; Ramos, A. y Montero, F. (2006). Sistemas gestores de bases de datos. Madrid, España:
McGraw-Hill.
IACC (2016). SQL: lenguaje para la definición, manipulación y control de base de datos relacionales
27
ESTE DOCUMENTO CONTIENE LA SEMANA 4
28
ESTE DOCUMENTO CONTIENE LA SEMANA 4