Está en la página 1de 28

FUNDAMENTOS DE BASES DE DATOS

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

SQL: LENGUAJE PARA LA DEFINICIÓN, MANIPULACIÓN Y CONTROL DE BASE DE DATOS


RELACIONALES I................................................................................................................................... 4
OBJETIVO ESPECÍFICO ......................................................................................................................... 4
INTRODUCCIÓN ................................................................................................................................... 4
1. LENGUAJE SQL ............................................................................................................................. 5
1.1. DEFINICIÓN.......................................................................................................................... 5
1.2. HISTORIA ............................................................................................................................. 5
1.3. CARACTERÍSTICAS................................................................................................................ 6
1.4. LENGUAJE DE DEFINICIÓN DE DATOS (COMANDOS DDL) .................................................. 7
1.4.1. CREATE ............................................................................................................................ 7
1.4.2. ALTER ............................................................................................................................. 10
1.4.3. DROP ............................................................................................................................. 13
1.4.4. TRUNCATE ..................................................................................................................... 14
1.4.5. RENAME ........................................................................................................................ 15
1.5. LENGUAJE DE MANIPULACIÓN DE DATOS (COMANDOS DML) ........................................ 17
1.5.1. INSERT ........................................................................................................................... 17
1.5.2. UPDATE.......................................................................................................................... 19
1.5.3. DELETE ........................................................................................................................... 20
1.5.4. SELECT ........................................................................................................................... 21
COMENTARIO FINAL.......................................................................................................................... 25
REFERENCIAS ..................................................................................................................................... 27

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.

Específicamente, esta semana se conocerán los lenguajes de manipulación de datos (DML) y el


lenguaje de definición de datos (DDL), donde se verán una serie de ejemplos, sin embargo, estos
ejemplos pueden ser tantos como bases de datos existan en el mundo.

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:

RUT NOMBRE APELLIDO DIRECCION TELEFONO

En cada una de las filas irían los estudiantes a almacenar.

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.

En 1979, la empresa Oracle Corporation presentó la primera implementación de SQL, la cual


estuvo disponible antes que otros productos IBM, sin embargo, esta última desarrolló algunos
posteriores a su SYSTEM R, conocidos como DB2 y SQL/DS.

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.

Desde 1989, el estándar ha sido revisaso y ampliado, teniendo actualmente el SQL:2003.

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.

En una arquitectura cliente-servidor, SQL se vería de la siguiente forma:

Fuente: Ramos, Ramos y Montero (2006, p.95).

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.

1.4.LENGUAJE DE DEFINICIÓN DE DATOS (COMANDOS DDL)


Según Ricardo (2009), el lenguaje de definición de datos, o comandos DDL, se utiliza para crear,
cambiar y destruir estructuras lógicas que constituyen el modelo lógico.

Entre estos comandos se encuentran: CREATE, DROP, ALTER, TRUNCATE, COMMENT, RENAME,
entre otros.

 A continuación, se comentará cada uno de los comandos, y se


verá un ejemplo de los mismos. Como hasta esta semana no se
ha explorado ningún sistema manejador de base de datos, las
sentencias se probarán en una herramienta online:

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 al ver el código o sintaxis de alguna instrucción se encuentran


los símbolos “[“ y “]”, esto implica que es opcional dentro de la
instrucción.

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.

Tipo de dato Características


VARCHAR(tamaño) Este tipo de dato almacena cadenas de caracteres, donde estas
cadenas pueden tener longitud variable y el máximo es de 4000
caracteres.

CHAR(tamaño) Este tipo de dato almacena caracteres con la longitud especificada, el


máximo de caracteres es 2000.

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.

LONG Este tipo de dato almacena números enteros largos.

DATE Este tipo de dato almacena fechas y horas. El formato de


almacenamiento será: siglo/año/mes/día/hora/minutos/segundos;
sin embargo puede ser cambiado.

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:

CREATE TABLE estudiantes (RUT VARCHAR(10), NOMBRES


VARCHAR(15), APELLIDOS VARCHAR(30), FECHA_NACIMIENTO
DATE, DIRECCION VARCHAR(50), TELEFONO VARCHAR(12));

Probando la consulta en la página que se comentó anteriormente, se tendría:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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:

ALTER TABLE nombre_tabla ADD COLUMN nombre_columna


tipo_columna;

Para eliminar columna:

ALTER TABLE nombre_tabla DROP COLUMN;

Utilizando la herramienta con una sentencia de ejemplo, se ve lo siguiente:

ALTER TABLE estudiantes ADD COLUMN HOBBIES


VARCHAR(30);

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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;

Y se ve la columna de HOBBIES agregada:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

Ahora, se prueba eliminar la columna HOBBIES ejecutando:

ALTER TABLE estudiantes DROP COLUMN HOBBIES;

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).

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:

DROP TABLE estudiantes;

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):

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

14
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Ejecutando el comando:

TRUNCATE TABLE estudiantes;

Se obtiene:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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:

RENAME TABLE estudiantes TO alumnos;

Si al ejecutarla se pidiera un “DESC estudiantes”, lanzaría el siguiente resultado:

15
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

Pero solicitando un “DESC alumnos”, se tendría:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

 A continuación puede consultar un manual de lenguaje de


definición de datos.

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:

INSERT INTO nombre_tabla


[(nombre_campos_separados_por_comas)] values
(campos_separados_por_comas);

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.

INSERT INTO estudiantes (RUT, NOMBRES, APELLIDOS)


VALUES ('16852965-1','MARIA','PEREZ');

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).

 Esto se pudo realizar porque las columnas están declaradas


como que aceptan valores nulos, de lo contrario, hubiese dado
error.

Otra forma de realizar esto sería:

INSERT INTO estudiantes VALUES (15321654-


8’,’JOSE’,’DIAZ’,’1990-10-05’,’SANTIAGO’,’+56987542136’);

Con lo que se obtiene lo siguiente:

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:

UPDATE estudiantes SET FECHA_NACIMIENTO = '1991-05-10',


DIRECCION = 'SANTIAGO', TELEFONO = '+56932659841'
WHERE RUT = '16852965-1';

Al consultar los registros se tiene:

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:

UPDATE estudiantes set DIRECCION = 'RM';

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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:

DELETE FROM estudiantes WHERE NOMBRES ='MARIA'

Al ejecutarlo se obtiene lo siguiente:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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á.

Por ejemplo, se tienen los siguientes registros en la tabla “estudiantes”:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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;

SELECT RUT, NOMBRES, APELLIDOS, FECHA_NACIMIENTO,


DIRECCION, TELEFONO FROM estudiantes;

Si se quisiera traer solo las columnas RUT, NOMBRES y APELLIDOS, debería escribirse:

SELECT RUT, NOMBRES, APELLIDOS FROM estudiantes;

Obteniendo:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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

SELECT RUT, NOMBRES, APELLIDOS, FECHA_NACIMIENTO,


DIRECCION, TELEFONO FROM estudiantes WHERE NOMBRES =
'MARIA';

Se obtiene:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

Si se quisiera retornar todos los registros pero ordenados por RUT se utilizaría lo siguiente:

SELECT * FROM estudiantes ORDER BY RUT;


O

SELECT RUT, NOMBRES, APELLIDOS, FECHA_NACIMIENTO,


DIRECCION, TELEFONO FROM estudiantes ORDER BY RUT;

24
ESTE DOCUMENTO CONTIENE LA SEMANA 4
Obteniendo:

Fuente: material elaborado para esta asignatura (C. Zammarrelli, 2016).

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.

 Un manual de ayuda de SQL puede consultarlo en el


siguiente link:

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

desarrollo de aplicaciones. 3.ª edición. México: McGraw-Hill Interamericana.

Ramos, M.; Ramos, A. y Montero, F. (2006). Sistemas gestores de bases de datos. Madrid, España:

McGraw-Hill.

Ricardo, C. (2009). Bases de datos. México DF, México: McGraw-Hill.

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:

IACC (2016). SQL: lenguaje para la definición, manipulación y control de base de datos relacionales

I. Fundamentos de Bases de Datos. Semana 4.

27
ESTE DOCUMENTO CONTIENE LA SEMANA 4
28
ESTE DOCUMENTO CONTIENE LA SEMANA 4

También podría gustarte