SQL: Curso gratuito de SQL ¿Qué es el lenguaje SQL? Sintaxis y sentencias básicas

InicioSQL
SQL: Curso gratuito de SQL ¿Qué es el lenguaje SQL? Sintaxis y sentencias básicas

by Juan Carlos García

28-Mzo-2024

(8)

Suscribirme al canal:

Hola a todos, hoy iniciamos un nuevo curso gratuito en EWebik, en esta ocasión te enseñare todo respecto al LENGUAJE SQL (Structured Query Language),  analizaremos sus antecedentes, ¿Qué es? Y revisaremos la mayoría de las sentencias que son necesarias para manipular una base de datos.

El objetivo de este curso gratuito de SQL es que al final, aprendas a seleccionar, eliminar o actualizar datos dentro de una base de datos.

Sin más comencemos y vayamos paso a paso para que comprendas todo a la perfección, si aún no he subido el vídeo de esta clase, te recomiendo que te suscribas a mi boletín y canal de YouTube, para que te enteres cuando suba cada uno de los capítulos.

¡No te puedes perder las nuevas clases 🧐!

SQL

SQL

SQL: Curso gratuito de SQL ¿Qué es el lenguaje SQL? Sintaxis y sentencias básicas

CREATE, DROP Y ALTER DATABASE

CREATE, DROP Y ALTER DATABASE

¿Cómo crear (CREATE DATABASE), modificar (ALTER DATABASE) y eliminar (DROP DATABASE) una base de datos en SQL Server?

CREATE, DROP Y ALTER TABLE

CREATE, DROP Y ALTER TABLE

Manejo de tablas en SQL Server: CREATE TABLE, ALTER TABLE y DROP TABLE.

SELECT SQL

SELECT SQL

SELECT SQL SERVER: ¿Cómo seleccionar y consultar datos en SQL Server?

INSERT SQL

INSERT SQL

INSERT SQL SERVER: ¿Cómo insertar datos en una tabla desde SQL Server? Sintaxis y ejemplos.

JOIN SQL

JOIN SQL

JOIN SQL: ¿Qué son y cómo funcionan INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN y CROSS JOIN?

Update SQL

Update SQL

UPDATE SQL: ¿Cómo actualizar datos en una tabla en SQL Server?

DELETE SQL

DELETE SQL

DELETE SQL y TRUNCATE TABLE: ¿Cómo eliminar datos de una tabla en SQL Server?

Stored Procedure en SQL Server

Stored Procedure en SQL Server

Stored Procedure en SQL Server: ¿Cómo crear, modificar y ejecutar procedimientos almacenados en SQL Server?

Conexión Remota en SQL Server

Conexión Remota en SQL Server

Habilitar la Conexión Remota en SQL Server con VirtualBox

Connection String

Connection String

Connection String de SQL Server: Una Guía Completa para Establecer Conexiones con la Base de Datos

SQL Server SUBSTRING

SQL Server SUBSTRING

Guía Completa de SQL Server SUBSTRING: Uso y Ejemplos

CASE en SQL Server

CASE en SQL Server

Cláusula CASE en SQL Server: Uso y Ejemplos de Condicionales en Consultas

SQL Server REPLACE

SQL Server REPLACE

SQL Server REPLACE: Función para la manipulación de cadenas de texto

IF en SQL Server

IF en SQL Server

Sentencias IF, IF-ELSE e IF-EXISTS en SQL Server: Guía completa.

🧐 Autoevaluación: SQL

¿Cuál es el lenguaje SQL?

¿Qué es el lenguaje DDL?

¿Qué es el lenguaje DML?

Para iniciar y, como es costumbre en cada uno de mis cursos gratuitos, comencemos con una definición general del lenguaje SQL:

 

¿Qué es SQL?

El lenguaje SQL (Structured Query Language o lenguaje de consulta estructurado) es un tipo de lenguaje de programación, que permite manipular un conjunto de datos y las relaciones que existen entre ellos.

SQL es uno de los lenguajes de manipulación de datos DML (Data Manipulation Language) más utilizados en el mundo. Un DML es un lenguaje que sirve para la gestión de base de datos, permite llevar a cabo consultas o manipulación de datos organizados mediante algún tipo de modelo de datos.

Es por ello que es uno de los principales lenguajes de programación utilizados para la manipulación de bases de datos, sobre todo en aquellas consideradas como:

 

Historia: origen y evolución del lenguaje SQL

El lenguaje SQL en sus inicios basaba su existencia alrededor de lo que hoy conocemos como álgebra relacional (del cual tenemos una clase completa que te invito a revisar) y en el cálculo relacional, donde SQL es un lenguaje que consiste en:

  • Definición de datos.
  • Manipulación de datos.
  • Y control de datos.

Dicho lo anterior, SQL es uno de los primero lenguajes que se utilizaron en el mundo de las bases de datos, sobre todo en las relacionales (modelo relacional), propuestas por Edgar Frank Codd en la década de los 70's cuando formaba parte de IBM.

  • No obstante fue la empresa Oracle quien lo lanza como un producto comercial haya por el 1979.

Veamos algunos datos importantes:

  • En 1986: vemos la primera publicación por parte del ANSI (American National Standards Institute).
  • En 1999: se agrega soporte para:
    • Manejo de expresiones regulares.
    • Consultas recursivas, muy útiles para relaciones jerárquicas.
    • Triggers
    • Y ciertas características orientadas a objetos.
  • En 2003: se agregan nuevas características para soportar XML.
  • En 2006: se siguen agregando características respecto a XML:
    • Se define la forma en que se almacenan o importan datos XML dentro de una base de datos.
    • Manipulación de datos en formato XML dentro de la misma base de datos.
    • Se agrega la forma en que las aplicaciones pueden utilizar XQuery dentro de su código SQL. XQuery es el lenguaje de consulta XML.
  • En 2008: se introduce la característica de utilizar la cláusula ORDER BY fuera de ciclos con cursores, además, se añade la sentencia TRUNCATE.
  • En 2016: se agrega una nueva característica que permite la búsqueda de patrones, funciones de tablas polimórficas y compatibles con ficheros tipos JSON.

Como puedes observar el lenguaje SQL vio la luz en el siglo pasado y, al día de hoy, sigue siendo utilizado en millones de aplicaciones que requieren de una base de datos para operar.

 

Características del lenguaje SQL

Es muy importante comprender que SQL es un lenguaje declarativo de alto nivel y, que principalmente cuenta con las siguientes características:

➤ Lenguaje de definición de datos (Language of definition of data, DDL)

  • SQL nos proporciona instrucciones mediante las cuales podemos:
    • Definir un esquema de relación.
    • Borrado de relaciones.
    • O modificaciones de relaciones.

➤ Lenguaje interactivo de manipulación de datos

  • En SQL podemos encontrar lenguajes de consulta que están basados tanto en la álgebra relacional como en el cálculo de tuplas relacionales.

➤ Integridad

  • El lenguaje SQL proporciona comandos (en un apartado más adelante veremos los distintos comandos) para crear restricciones de integridad que todo dato almacenado dentro de una base de datos debe cumplir.

➤ Definición de vistas

  • Tal como lo vimos en una de las reglas de Codd, SQL incluye instrucciones que nos permiten manipular vistas.

➤ SQL incorporado y dinámico

  • Este punto hace referencia a que SQL puede ser incorporado en otros lenguajes de programación como Java, PHP, C++, por mencionar algunos.

➤ Autorización

  • SQL cuenta con instrucciones y comandos que permiten especificar los permisos de acceso a las relaciones y vistas.

Elementos básicos del lenguaje SQL

Si nos detenemos a examinar a detalle el lenguaje SQL, vemos que esta compuesto por una serie de:

  • Comandos
  • Cláusulas
  • Operadores
  • Funciones de agregación
  • Literales

Todos estos elementos se combinas para crear instrucciones que aplicaremos en una base de datos para administrar los datos, ya sea, para consultar, modificar o eliminar dichos registros, revisemos cada uno de ellos.

 

➤ Comandos del lenguaje SQL

Los comandos son aquellos que nos permiten modificar el esquema o manipular la información de una base de datos, existen tres tipos principalmente:

 

▷ Comandos (DDL): lenguaje de definición de datos

  • Permiten crear nuevas bases de datos, tablas, campos e índices.
  • Cabe mencionar que este tipo de comandos no trabajan con los datos de la tabla, sino que actúan sobre el esquema.

Comandos de lenguaje de definición de datos (DDL)

ComandoDescripción del comando
CREATEPermite crear, tablas, campos e índices.
DROPPermite eliminar tablas e índices.
ALTERPermite modificar la definición de una tabla.

▷ Comandos (DML): lenguaje de manipulación de datos

  • Permiten manipular la información o datos almacenados en las tablas dentro de una base de datos.

Comandos de lenguaje de manipulación de datos (DML)

ComandoDescripción del comando
SELECTPermite consultar datos dentro de una tabla que satisfagan ciertos criterios.
INSERTPermite agregar nuevos datos a una tabla.
UPDATEPermite modificar datos existentes dentro de una tabla bajo ciertos criterios.
DELETEPermite eliminar datos existentes dentro de una tabla que satisfagan ciertos criterios.

▷ Comandos Data Control Language (DCL): lenguaje de control de datos

  • Permite establecer las políticas de acceso y permisos de usuarios.

Comandos Data Control Language (DCL)

ComandoDescripción del comando
GRANTPermite atribuir un rol o permisos a uno o varios usuarios para limitar las tareas que se llevarán a cabo.
REVOKEPermite revocar los permisos atribuidos por GRANT.

Como puedes observar, los comandos en SQL permiten controlar operaciones, el mismo flujo del programa, conexiones, sesiones y diagnostico de datos.

 

➤ Cláusulas del lenguaje SQL

Dentro del lenguaje SQL existen las clausulas, dichos elementos permiten crear criterios o condiciones que establecen las políticas con las que consultaremos, modificaremos o eliminaremos los datos.

Cláusulas del lenguaje SQL

CláusulaDescripción de la cláusula
FROMEspecifica la tabla de trabajo, ya sea para realizar una selección de datos u otras operaciones.
WHEREEstablece las condiciones o criterios que deben respetarse durante la manipulación de datos.
GROUP BYPermite llevar acabo una agrupación de filas, por lo regular a través de alguna función de agregación: suma, promedio, etc.
HAVINGEstablece condiciones y criterios por grupo de datos (GROUP BY), por lo regular a través de alguna función de agregación: suma, promedio, etc.
ORDER BYPermite ordenar los registros bajo un cierto criterio o criterios.

 

➤ Operadores del lenguaje SQL

Los operadores son muy útiles para crear expresiones simples o muy complejas, pueden ser del tipo aritmético o lógicos.

 

▷ Operadores lógicos

  • Son utilizados para evaluar una expresión y retornar un operador Booleano (Verdadero o Falso).

Operadores lógicos

OperadorDescripción del operador
ANDPermite evaluar dos condiciones y retorna un valor verdadero, si y sólo si, ambas son ciertas.
ORPermite evaluar dos condiciones y retorna un valor verdadero, si alguna de las dos es cierta.
NOTPermite retornar el valor contrario a la expresión evaluada.

▷ Operadores de comparación

  • Permiten comparar dos valores y regresan un valor Booleano.

Operadores de comparación

OperadorDescripción del operador
<Indica menor que.
>Indica mayor que.
<>Indica distinto de.
<=Menor o igual.
>= Mayor o igual
=Igual a.
BETWEENPermite establecer un intervalo de valores.
LIKEPermite llevar una comparación de patrones.
INPermite filtrar un conjunto de datos en función de una lista de valores.

 

➤ Funciones de agregación del lenguaje SQL

  • Mediante este tipo de funciones podemos crear un tipo resumen de las filas de una tabla agrupando los datos en un sólo valor, por lo regular, pero no obligatorio, va acompañada por un GROUP BY.

Funciones de agregación SQL

FunciónDescripción de la función de agregación
AVGPermite calcular el promedio de los datos de un campo de una tabla.
COUNTRetorna un conteo con el número total de registros de una tabla o selección.
SUMPermite calcular la suma de los datos de un campo especifico en una tabla.
MAXRetorna el máximo valor de un campo especifico de una tabla.
MINRetorna el mínimo valor de un campo especifico de una tabla.

 

➤ Literales del lenguaje SQL

  • Valores previamente establecidos, las literales son valores considerados como constantes, por ejemplo: un número, fechas, o un conjunto especifico de caracteres, etc.

Literales SQL

LiteralesDescripción de la literal SQL
2021-10-01Literal que establece una fecha especifica.
EWebikLiteral que representa una cadena de caracteres.
7Literal que representa un número especifico.

 

Consultas SQL

En este punto ya hemos visto mucha información, que estoy seguro, te han ayudado a comprender ¿Qué es SQL y para qué sirve? Y estamos listo para comenzar a utilizarlo, en este post te dejaré algunos ejemplos de consultas y comandos básicos de SQL, pero haré otras clases donde a través de vídeos veremos a profundidad cada consulta.

Por lo pronto veamos un ejemplo de consultas y comandos que utilizaremos más adelante.

 

➤ CREATE DATABASE

Permite crear una base de datos y, cuenta con varias opciones, por ejemplo:

  • Podemos crear una base de datos con tan solo indicar el nombre.
  • También, podemos especificar quien es el archivo primario, los archivos secundarios y los archivos de transacción.
  • Otra característica muy importante es la creación de FILEGROUPS o grupos de archivos, ya que con ellos podemos mejorar el rendimiento de nuestra base de datos al separar la información.
CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
      [ PRIMARY ] <filespec> [ ,...n ]
      [ , <filegroup> [ ,...n ] ]
      [ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]

<option> ::=
{
      FILESTREAM ( <filestream_option> [,...n ] )
    | DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name | language_alias }
    | DEFAULT_LANGUAGE = { lcid | language_name | language_alias }
    | NESTED_TRIGGERS = { OFF | ON }
    | TRANSFORM_NOISE_WORDS = { OFF | ON}
    | TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
    | DB_CHAINING { OFF | ON }
    | TRUSTWORTHY { OFF | ON }
    | PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='<Filepath to folder on DAX formatted volume>' )
}

<filestream_option> ::=
{
      NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
    | DIRECTORY_NAME = 'directory_name'
}

<filespec> ::=
{
(
    NAME = logical_file_name ,
    FILENAME = { 'os_file_name' | 'filestream_path' }
    [ , SIZE = size [ KB | MB | GB | TB ] ]
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
)
}

<filegroup> ::=
{
FILEGROUP filegroup name [ [ CONTAINS FILESTREAM ] [ DEFAULT ] | CONTAINS MEMORY_OPTIMIZED_DATA ]
    <filespec> [ ,...n ]
}

➤ ALTER DATABASE

Permite modificar una base de datos existente, este comando cuenta con muchas opciones y, es muy importante que lo uses con precaución, ya que, podrías modificar algo de tu base de datos y dejarla fuera de operación.

-- SQL Server Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>
  | SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<file_and_filegroup_options>::=
  <add_or_modify_files>::=
  <filespec>::=
  <add_or_modify_filegroups>::=
  <filegroup_updatability_option>::=

<option_spec>::=
{
  | <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option><delayed_durability_option>
  | <external_access_option>
  | <FILESTREAM_options>
  | <HADR_options>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <termination>
  | <temporal_history_retention>
  | <data_retention_policy>
  | <compatibility_level>
      { 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}

 

➤ DROP DATABASE

Otro comando que debes utilizar con mucha precaución, ya que, si eliminas una base de datos y no cuentas con respaldos, podrías perder toda tu información, su sintaxis es muy sencilla.

DROP DATABASE [ IF EXISTS ] { database_name | database_snapshot_name } [ ,...n ] [;]

Para ver todo sobre CREATE, ALTER Y DROP DATABASE, por favor revisa el siguiente post: ¿Cómo crear, modificar y eliminar una base de datos en SQL Server?

➤ CREATE TABLE

Ahora que ya has aprendido a crear una base de datos, es momento de crear tus primeras tablas, para ello utilizamos CREATE TABLE, T-SQL, proporciona una gran cantidad de opciones, pero lo que ocuparemos es lo siguiente:

CREATE TABLE
    { database_name.schema_name.table_name | schema_name.table_name | table_name }
    ( { <column_definition> } [ ,...n ] )
[ ; ]

➤ ALTER TABLE

Con ALTER TABLE podemos modificar una serie de parámetros dentro de una tabla, por ejemplo:

  • Agregar nuevos campos.
  • Eliminar columnas.
  • Declarar índices.
  • Definir llaves primarías y/o foráneas.
-- Agregar campo
ALTER TABLE table_name
ADD column_name datatype;

--Eliminar campo 
ALTER TABLE	table_name
DROP COLUMN column_name;

--Crear llave foranea
ALTER TABLE table_name
ADD CONSTRAINT fk_name_key FOREIGN KEY (column_name)
      REFERENCES reference_table_name (column_name)
      ON DELETE CASCADE
      ON UPDATE CASCADE
;

➤ DROP TABLE

Ahora, si lo que deseas es eliminar una tabla, esto es muy sencillo, pero, debes tener cuidado y saber lo que estas haciendo.

DROP TABLE [ IF EXISTS ] { database_name.schema_name.table_name | schema_name.table_name | table_name } [ ,...n ]  
[ ; ]  

 

Para ver todo sobre CREATE, ALTER Y DROP TABLE, por favor revisa el siguiente post: Manejo de tablas en SQL Server: CREATE TABLE, ALTER TABLE, DROP TABLE.

 

➤ SELECT

El comando SELECT permite seleccionar datos a una tabla perteneciente a una base de datos, además cuenta con opciones que nos permiten, limitar el número de datos consultados, agregar condicionales y agrupación de datos.

<SELECT statement> ::=    
    [ WITH { [ XMLNAMESPACES ,] [ <common_table_expression> [,...n] ] } ]  
    <query_expression>   
    [ ORDER BY <order_by_expression> ] 
    [ <FOR Clause>]   
    [ OPTION ( <query_hint> [ ,...n ] ) ]   

Para ver todas las opciones de SELECT, por favor revisa el siguiente post: SELECT SQL SERVER: ¿Cómo seleccionar y consultar datos en SQL Server?

 

➤ INSERT

El comando INSERT permite agregar nuevos datos a una tabla perteneciente a una base de datos.

INSERT   
{  
        [ TOP ( expression ) [ PERCENT ] ]   
        [ INTO ]   
        { <object> | rowset_function_limited   
          [ WITH ( <Table_Hint_Limited> [ ...n ] ) ]  
        }  
    {  
        [ ( column_list ) ]   
        [ <OUTPUT Clause> ]  
        { VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n     ]   
        | derived_table   
        | execute_statement  
        | <dml_table_source>  
        | DEFAULT VALUES   
        }  
    }  
}  
[;]

Para ver todas las opciones de INSERT, por favor revisa el siguiente post: INSERT SQL SERVER: ¿Cómo insertar datos en una tabla desde SQL Server? Sintaxis y ejemplos.

 

➤JOIN SQL

A través de la clausula JOIN podemos recuperar datos de dos o más tablas a través de la relación lógica que existe entre ellas. Existen cinco tipos de JOIN principalmente:

  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • FULL JOIN
  • CROSS JOIN

Para ver todas las opciones de JOIN, por favor revisa el siguiente post: JOIN SQL: ¿Qué son y cómo funcionan INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN y CROSS JOIN?

 

➤ UPDATE SQL

Actualizar la información de una tabla dentro de una base de datos puede llegar a ser algo complejo, ya que, crear consultas (querys) relacionados a UPDATE, requiere conocer muchas clausulas, tal y como son las que hemos visto hasta el momento, pero sobre todo, debes de tener mucho cuidado al ejecutar este tipo de clausulas.

A través de UPDATE SQL podemos actualizar datos existentes dentro de una tabla en una base de datos.

Para ver todas las opciones de UPDATE, por favor revisa el siguiente post: UPDATE SQL: ¿Cómo actualizar datos en una tabla en SQL Server?

➤ DELETE SQL

A través de DELETE podemos eliminar todos los datos o datos específicos de una tabla, todo depende de las condiciones que indiquemos en nuestra consulta.

DELETE FROM table_name WHERE condition;

 

➤ TRUNCATA TABLE

Si lo que deseas es eliminar todos los datos de una tabla, existe una mejor opción a DELETE y se llama TRUNCATE TABLE.

TRUNCATE TABLE   
    { database_name.schema_name.table_name | schema_name.table_name | table_name }  
    [ WITH ( PARTITIONS ( { <partition_number_expression> | <range> }   
    [ , ...n ] ) ) ]  
[ ; ]  

Te dejo la clase completa para que puedes ver a DELETE Y TRUNCATE TABLE en acción: DELETE SQL y TRUNCATE TABLE: ¿Cómo eliminar datos de una tabla en SQL Server?

 

➤ Stored Procedure

Existen muchas ventajas y razones para utilizar Stored Procedures, por ejemplo: ocultar consultas SQL, por seguridad o reutilizar código, pero para que lo comprendas mejor, veamos las ventajas y beneficios de utilizar procedimientos almacenados en el siguiente post que te dejo a continuación.

 

Excelente, hemos llegado al final del post, no obstante, te invito a suscribirte a mi canal de YouTube y al boletín, ya que, estaré subiendo nuevas clases referentes a SQL e iré actualizando este post.

🧐 Autoevaluación: SQL

¿Cuál es el lenguaje SQL?

¿Qué es el lenguaje DDL?

¿Qué es el lenguaje DML?

Juan Carlos

Juan Carlos García

Desarrollador de software / SEO

Durante años he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera página de Google, y hoy quiero compartir contigo lo que se en tecnologías como: Node JS, PHP, C# y Bases de datos.

Si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.

EWebik

Diseño de páginas web y aplicaciones moviles.

© 2024 EWebik