Enlaces a sitios institucionales

Lenguaje SQL Básico

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción

¿Te has preguntado qué tienen en común una nómina, un catálogo de libros de una biblioteca, una agenda o el uso de un cajero automático?

Una persona usa una calculadora mientras revisa una lista de nómina en una computadora portátil.
Mano de una persona tomando un libro de un estante en una biblioteca.
Persona usando un lápiz óptico para interactuar con una pantalla digital que muestra iconos de usuarios y engranajes, mientras sostiene una tableta.
Se muestran los brazos de una persona utilizando un cajero automático, insertando o retirando una tarjeta de la ranura correspondiente.
Ilustración de tres cilindros representando almacenamiento de bases de datos. En el fondo, hay una pantalla borrosa que muestra líneas de código SQL con palabras clave como “INSERT,” “SELECT DISTINCT,” y “WHERE” resaltadas en azul, indicando actividad de programación o gestión de bases de datos.

Todos ellos utilizan bases de datos para trabajar.

<
>

El uso generalizado de bases de datos en las organizaciones resulta ser una necesidad actual en las organizaciones, independientemente de cual sea su tamaño o giro en el que presenten sus servicios. La exigencia de contar con información útil y veraz para la toma de decisiones es importante y vital; así como la implementación de controles internos garantiza una adecuada operación de las empresas, motivo por el cual en un mundo globalizado lleno de preguntas por resolver en el que el uso de bases de datos es cotidiano, resulta valioso aprender nuevos lenguajes, no sólo para comunicarse con otras personas, sino también para tener comunicación con las computadoras a través de un sistema de administración de bases de datos relacionales, tal es el caso del lenguaje SQL.

En este tema se desarrollará el concepto de SQL, su ámbito de aplicación, los sublenguajes y comandos propios del lenguaje SQL, enfatizando la importancia de la sintaxis en el correcto uso del lenguaje y presentando ejemplos de los comandos SQL, con el propósito de que te familiarices con dicho lenguaje.



Reconocer las estructuras básicas de los lenguajes DDL y DML, a través de la sintaxis, definición de cada comando y ejemplos, para familiarizarse con el uso de palabras reservadas, operadores y comandos del lenguaje SQL básico.

El lenguaje SQL


Rojas y Méndez (2016) lo definen y comparan al señalar que:


… se trata, por tanto, de un lenguaje de computadora, un grupo de palabras, a las que se llama normalmente instrucciones u órdenes, que se combinan conforme a unas reglas gramaticales para dar forma a frases conocidas como sentencias. No hay mucha diferencia, consecuentemente, con una lengua hablada, salvo por la gran simplicidad de SQL, puesto que el número de palabras y reglas es muy pequeño si lo comparamos con una lengua como podría ser el castellano. Otra diferencia, lógica y obvia, es que SQL es una lengua artificial, creado a medida para un determinado propósito: facilitar la comunicación entre las personas y los programas que gestionan las bases de datos, (p.34).

¿Qué significa SQL?

Programador experto en bases de datos usando lenguaje SQL.

SQL deriva de las siglas de Structured Query Language, lenguaje de computadora que sirve para trabajar con bases de datos, con independencia de la plataforma hardware y software donde se ejecute.

Otras características del lenguaje SQL, como la de ser un lenguaje estándar que utiliza comandos con diferentes propósitos, lo encontramos en lo señalado por Margaret Rouse (2015), que lo define de la siguiente forma:

SQL (Structured Query Language) es un lenguaje de programación estándar e interactivo para la obtención de información desde una base de datos y para actualizarla. Aunque SQL es a la vez un ANSI y una norma ISO, muchos productos de bases de datos soportan SQL con extensiones propietarias al lenguaje estándar. Las consultas toman la forma de un lenguaje de comandos que permite seleccionar, insertar, actualizar, averiguar la ubicación de los datos, y más. También hay una interfaz de programación.

Aplicaciones de SQL


El lenguaje SQL tiene múltiples ámbitos de aplicación y permite a los usuarios recuperar información almacenada de origen en una base de datos. Rojas y Méndez (2016) señalan que: “El lenguaje SQL puede aplicarse a cualquier escenario en el que sea preciso trabajar con información que, de una forma u otra, sea representable en una estructura tridimensional: columnas, filas y tablas…” (p. 35 y 36); sin embargo, cuando hablamos propiamente del uso y aplicación del lenguaje SQL, lo correcto es que al referir al concepto de columnas hablemos de campos, y que al referir al concepto de filas hablemos de registros. No obstante, y de manera generalizada, en muchas ocasiones e indebidamente dichos conceptos se utilizan como sinónimos.

SQL es un lenguaje estandarizado, el cual es común denominador de los diferentes sistemas de administración de bases de datos relacionales o Relational Database Management System (RDBMS).

Adicionalmente, Rojas y Méndez (2016) acertadamente señalan que: “los programas que entienden el lenguaje SQL cuentan con un intérprete…” (p. 36), sin lo cual no se entendería la manera en el que los RDBMS entienden el lenguaje SQL.

SQL opera sobre las bases de datos con una sintaxis estándar, cuyas sentencias pueden ser expresadas textualmente y que permitan efectuar cualquiera de los siguientes tipos de operaciones:

  • Manipulación de datos
  • Definición de datos
  • Definición de vistas
  • Administración de seguridad
  • Control de transacciones



División del lenguaje SQL

Para ajustarse a las distintas necesidades que representan las operaciones antes enumeradas, el lenguaje SQL se divide en tres partes bien diferenciadas:

Data Definition Language (DDL).

Lenguaje de definición de datos. Es la parte de SQL que se emplea para generar las estructuras de los datos, creando tablas, índices, atributos de integridad referencial, en general, cualquier información que vaya a formar parte del catálogo o diccionario de la base de datos.

Existen tres sentencias básicas en el sublenguaje DDL, siendo éstas: CREATE, ALTER y DROP, y cuya funcionalidad es la siguiente:

CREATE. Crear objetos en una base de datos.
ALTER. Modificar objetos en una base de datos.
DROP. Eliminar objetos en una base de datos.

En consecuencia, resulta necesario conocer los componentes u objetos principales de una base de datos, siendo éstos:

  • Base de datos (DATABASE)
  • Tablas (TABLE)
  • Vistas (VIEW)
  • Índices (INDEX)
  • Procedimientos almacenados (PROCEDURE)
  • Disparadores (TRIGGER)

Data Manipulation Language (DML).

Lenguaje de manipulación de datos. Se trata de la parte más conocida de SQL, está formada por todas las sentencias que permiten seleccionar conjuntos de datos, eliminar información, actualizarla, filtrarla, agruparla, etcétera.

Existen cuatro sentencias básicas en el sublenguaje Data Manipulation Language (DML), siendo éstas: SELECT, INSERT, UPDATE y DELETE, y cuya funcionalidad es la siguiente:

SELECT. Seleccionar campos y registros de la base de datos.
INSERT. Agregar registros en una tabla de la base de datos.
UPDATE. Modificar registros en una tabla de la base de datos.
DELETE. Eliminar registros de una tabla base de datos.

Data Control Language (DCL).

Lenguaje de control de datos. Está formado por las sentencias de SQL destinadas a controlar el acceso a los datos, definiendo privilegios de los usuarios, administrar las transacciones. Las sentencias del sublenguaje Data Control Language (DCL) son: COMMIT, ROLLBACK, GRANT y REVOKE.

Oppel y Sheldon (2010) refieren al concepto sintaxis de la siguiente manera: “La sintaxis de una instrucción SQL se refiere a la estructura y a las reglas utilizadas para esa instrucción…” (p. 18).

En este contexto, resulta de especial relevancia familiarizarse con la estructura y las reglas utilizadas para cada instrucción SQL, ya que en caso de no respetar la sintaxis de la sentencia SQL que se pretenda ejecutar, se obtendrá como resultado un mensaje de error.

En consecuencia, la sintaxis de una instrucción SQL puede contener múltiples elementos. La mayoría de las palabras utilizadas en una instrucción SQL se muestran en MAYÚSCULAS, por ser palabras clave, sin embargo, no es obligatorio que dichas palabras se escriban con mayúscula.

A manera de ejemplo de la sintaxis de una instrucción SQL, observemos la notación sugerida por Oppel y Sheldon (2010) en la siguiente instrucción SQL:

CREATE [ { GLOBAL | LOCAL } TEMPORARY ] TABLE ‹ nombre de la tabla ›
(‹ elemento de la tabla › [ { , ‹ elemento de la tabla› } ... ])
[ ON COMMIT { PRESERVE | DELETE } ROWS ] …


Símbolos para sintaxis

Corchetes

[   ]

Los corchetes indican que la sintaxis encerrada en esos corchetes es opcional. Por ejemplo, la cláusula ON COMMIT en la instrucción CREATE TABLE es opcional.

Corchetes angulares

< >

Los corchetes angulares encierran información que representa un marcador de posición. Cuando la instrucción ha sido creada, el marcador de posición es reemplazado por los elementos o identificadores SQL apropiados. Por ejemplo, deberá reemplazarse el marcador de posición ⟨nombre de la tabla⟩ con un nombre para la tabla cuando se defina la instrucción CREATE TABLE.

Llaves

{ }

Las llaves se utilizan para agrupar elementos; asimismo, indican que primero se deberá decidir cómo manejar los contenidos dentro de las llaves y luego determinar cómo encajan dentro de la instrucción. Por ejemplo, el conjunto de palabras clave PRESERVE | DELETE está encerrado entre llaves. Primero se deberá elegir entre PRESERVE o DELETE y luego tratar con la línea completa del código. Como resultado, la cláusula puede leerse como ON COMMIT PRESERVE ROWS, o como ON COMMIT DELETE ROWS.

Barras verticales

|

La | Puede leerse como “o”, lo que significa que deberá utilizar ya sea la opción PRESERVE o la opción DELETE.

Puntos suspensivos

...

Los puntos suspensivos indican que se puede repetir la cláusula tantas veces como sea necesario. Por ejemplo, se pueden incluir tantos elementos de la tabla como sean necesarios (representados por ⟨elemento de la tabla⟩).

Dos puntos y signo de igual

::=

El símbolo ::= (dos veces consecutivas los dos puntos y el signo de igual) indica que el marcador de posición a la izquierda del símbolo está definido por la sintaxis que sigue al símbolo. En el ejemplo de la sintaxis, el marcador de posición ⟨definición de la tabla⟩ iguala a la sintaxis que conforma una instrucción CREATE TABLE.

El uso de convencionalismos puede ser variable, en tanto que la sintaxis de cada sentencia SQL dependerá de lo que de manera específica pretenda el usuario ejecutar en la base de datos, por lo que recomiendo a los lectores familiarizarse con las guías de referencia de cada RDBMS.

Como ejemplo, mostramos la sintaxis de la instrucción SQL para el comando CREATE TABLE, de manera simplificada, resaltando el uso de mayúsculas, llaves y parámetros:

CREATE TABLE nombretabla
{ nombrecolumna1 tipodato1,
nombrecolumna2 tipodato2,
nombrecolumna3 tipodato3,
… }

El siguiente comando muestra el comando que crea una tabla de nombre préstamo, la cual incluye los campos (id_prestamo, codigo y date_prestamo), define el tipo de datos de cada campo, que el atributo id_prestamo tenga características de primary key (PK) y restricciones para que los campos no incluyan valores nulos de la siguiente forma:

CREATE TABLE prestamo
(id_prestamo integer not null primary key,
codigo varchar (5) not null,
date_prestamo date not null)

Actividad 1. ¿Es o no es un comando básico de SQL?

SQL se divide en tres sublenguajes; cada uno contiene comandos para trabajar, ya sea sobre objetos (tablas, registros) o datos.

Ejemplos de comandos DDL y DML


A continuación, mostramos algunos ejemplos de los comandos DDL y DML que se utilizan de manera generalizada en lenguaje SQL.

Los primeros son ejemplos de sintaxis e instrucciones con el comando CREATE y los objetos DATABASE, TABLE, VIEW e INDEX.

CREATE DATABASE

Sintaxis
CREATE DATABASE
NombreBaseDatos

Ejemplo
CREATE DATABASE
MyDatabase1;

CREATE TABLE

Sintaxis
CREATE TABLE NombreTabla
{
NombreColumna1 tipodato1,
NombreColumna2 tipodato2,
NombreColumna3 tipodato3,
..
}

Ejemplo
CREATE TABLE MyTable1
(Id_prestamo integer not null primary key,
Codigo varchar (5) not null,
Date_prestamo date not null);

CREATE VIEW

Sintaxis
CREATE VIEW <NOMBRE_VISTA>
as <Instrucción SQL>;

Ejemplo
CREATE VIEW
MyVista1 as
SELECT * FROM MyDataBase1

CREATE INDEX

Sintaxis
CREATE INDEX <NombreIndice>
ON
<NombreTabla>
<NombreColumna1>;

Ejemplo
CREATE INDEX Idx_Prestamo
ON
MyTable1
(Id_prestamo);

El comando DROP que se muestra en el siguiente ejemplo elimina la tabla MyTable1, creada previamente con el comando CREATE TABLE, dicho comando puede ser utilizado de manera semejante, refiriendo a otros objetos de la base de datos.

DROP TABLE

Sintaxis
DROP TABLE
<NombreTabla>;

Ejemplo
DROP TABLE
MyTable1


El comando ALTER modifica objetos de una base de datos, en el ejemplo se utiliza el objeto TABLE

ALTER TABLE

Sintaxis
ALTER TABLE
NombreTabla
[ADD | DROP | CHANGE | MODIFY];

Ejemplo
ALTER TABLE
MyTable1
ADD
ISBN char(9)


El comando SELECT puede utilizarse con variantes y complementos. En seguida, se muestran ejemplos de las sintaxis.

SELECT… FROM
Comando básico para devolver las filas desde una tabla.

SELECT <NombreColumna> FROM
<NombreTabla>;

SELECT DISTINCT
Elimina las filas duplicadas de los resultados de una instrucción SELECT.

SELECT DISTINCT <NombreColumna>
FROM <NombreTabla>;

WHERE
Define la condición que se debe cumplir para que se devuelvan las filas.

SELECT <NombreColumna> FROM
<NombreTabla> WHERE <condition>;

AND/OR
Operadores lógicos Operadores lógicos usados cuando se usan más de una condición a la hora de filtrar las filas de una tabla.

SELECT <NombreColumna> FROM <NombreTabla> WHERE <condición simple> {[AND|OR] <condición>};

IN
Buscar las columnas cuyo contenido está comprendido en una lista de valores.

SELECT <NombreColumna> FROM <NombreTabla> WHERE <NombreColumna> IN ('Valor1', 'Valor2', ...);

BETWEEN
Buscar las columnas cuyo contenido está comprendido en un rango de valores específico.

SELECT <NombreColumna> FROM <NombreTabla> WHERE <NombreColumna> BETWEEN 'Valor1' AND 'Valor2';

LIKE
Permite hacer una búsqueda basada en un patrón.

SELECT <NombreColumna> FROM <NombreTabla> WHERE <NombreColumna> LIKE patrón;

ORDER BY
Permite ordenar por una columna.

SELECT <NombreColumna> FROM <NombreTabla> WHERE ORDER BY [ASC, DESC];

COUNT
Cuenta el número de filas que contienen un valor no nulo.

SELECT COUNT <NombreColumna> FROM <NombreTabla>;

GROUP BY
Permite agrupar una serie de filas en subconjuntos.

SELECT <NombreColumna1>, SUM(<NombreColumna2>) FROM <NombreTabla> GROUP BY <NombreColumna1>;

HAVING
Permite agrupar una serie de filas donde el condicionante sea un cálculo aritmético.

SELECT <NombreColumna1>, SUM(<NombreColumna2>) FROM <NombreTabla> GROUP BY <NombreColumna1> HAVING <Condición>;

Veamos ahora la sintaxis básica de parámetros y configuración de los comandos INSERT y UPDATE.

Comando

Sintaxis


INSERT

INSERT INTO <NombreTabla> (<Columna1>, <Columna2>, ...) VALUES (<Valor1>, <Valor2>, ...);

UPDATE

UPDATE <NombreTabla> SET <Columna1> = [NuevoValor] WHERE <Condición>;

Los ejemplos descritos anteriormente tienen el simple propósito de que te familiarices con el uso de lenguaje SQL, su sintaxis, comandos y el uso de caracteres especiales como comillas, corchetes, llaves y paréntesis.

Actividad 2. Reconociendo las sentencias SQL

Como recordarás, las sentencias SQL incluidas en el DDL y el DML, utilizan comandos que permiten crear, modificar, actualizar o manipular ya sea los datos o los objetos de una base de datos.

Autoevaluación. Utilidad de los comandos SQL

Conocer los comandos de SQL que forman parte de sus sublenguajes permite manipular de una forma más sencilla los datos u objetos de una base de datos. En la siguiente actividad comprobaremos el conocimiento que adquiriste acerca de la función de cada comando.

Fuentes de información

Básicas

Bibliografía

Facultad de Contaduría y Administración UNAM. (2017). Desarrollo de aplicaciones en Manejadores de bases de datos relacionales Cuaderno de Actividades. México: UNAM-SUAYED-FCA.

Rojas, A. y Méndez C. (2016). Desarrollo de aplicaciones en manejadores de bases de datos relacionales. Apunte electrónico. México: SUAYED-UNAM-FCA.

Documentos electrónicos

Oppel, A. y Sheldon, R. (2010). Fundamentos de SQL (3.ª ed.) [Versión electrónica]. México: MacGraw-Hill. Consultada el 05 de marzo de 2017 de http://pedrobeltrancanessa-biblioteca.weebly.com/uploads/1/2/4/0/12405072/fundamentos_de_sql_3edi_oppel.pdf

Rouse, M. (2015). SQL o Lenguaje de consultas estructuradas [Mensaje en blog]. Consultado el 05 de marzo de 2018 de http://searchdatacenter.techtarget.com/es/definicion/SQL-o-lenguaje-de-consultas-estructuradas

Complementarias

Bibliografía

Coronel, C., Morris, S. y Rob, P. (2011). Bases de datos (9.ª ed.). México: Cengage Learning.

Delgado, A. (2000). Descubre SQL Server. España: Prentice Hall.

Rob, P. y Coronel, C. (2004). Sistemas de bases de datos. México: Thompson.

Cómo citar

Pacheco, M. (2017) Lenguaje SQL Básico. Unidades de Apoyo para el Aprendizaje. CUAED/Facultad de Contaduría y Administración-UNAM. Consultado el (fecha) de (vínculo).