SQL Sintaxis

SQL (Structured Query Language) es un lenguaje estándar para gestionar y operar bases de datos relacionales, incluyendo funciones como consulta de datos, inserción de datos, actualización de datos, eliminación de datos, creación y modificación de estructuras de base de datos.


Tablas de base de datos

Una base de datos generalmente contiene una o más tablas, cada tabla tiene un nombre identificador (por ejemplo: "Websites"), y las tablas contienen registros (filas) con datos.

En este tutorial, creamos la tabla Websites en la base de datos EJEMPLO de MySQL para almacenar registros de sitios web.

Podemos ver los datos de la tabla "Websites" con el siguiente comando:

mysql> use EJEMPLO;
Database changed

mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | Ejemplo      | http://www.example.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+
5 rows in set (0.01 sec)

Explicación

  • use EJEMPLO;El comando se utiliza para seleccionar la base de datos.
  • set names utf8;El comando se utiliza para configurar el juego de caracteres.
  • SELECT * FROM Websites;Obtener información de la tabla de datos.
  • La tabla anterior contiene cinco registros (cada uno corresponde a la información de un sitio web) y 5 columnas (id, name, url, alexa y country).

Sentencias SQL

La mayor parte del trabajo que necesita realizar en la base de datos se realiza mediante sentencias SQL.

La siguiente sentencia SQL selecciona todos los registros de la tabla "Websites":

Ejemplo

SELECT * FROM Websites;

En este tutorial, le explicaremos varias sentencias SQL diferentes.


Recuerda...

  • SQL no distingue entre mayúsculas y minúsculas: SELECT y select son lo mismo.

¿El punto y coma después de las sentencias SQL?

Algunos sistemas de bases de datos requieren el uso de punto y coma al final de cada sentencia SQL.

El punto y coma es el método estándar para separar cada sentencia SQL en el sistema de base de datos, de modo que se pueda ejecutar más de una sentencia SQL en la misma solicitud al servidor.

En este tutorial, usaremos punto y coma al final de cada sentencia SQL.


Algunos de los comandos SQL más importantes

  • SELECT- Extraer datos de la base de datos
  • UPDATE- Actualizar datos en la base de datos
  • DELETE- Eliminar datos de la base de datos
  • INSERT INTO- Insertar nuevos datos en la base de datos
  • CREATE DATABASE- Crear una nueva base de datos
  • ALTER DATABASE- Modificar la base de datos
  • CREATE TABLE- Crear una nueva tabla
  • ALTER TABLE- Alterar (cambiar) una tabla de la base de datos
  • DROP TABLE- Eliminar tabla
  • CREATE INDEX- Crear un índice (clave de búsqueda)
  • DROP INDEX- Eliminar índice

A continuación se presentan algunas sentencias y sintaxis SQL comunes:

SELECT: Se utiliza para consultar datos de la base de datos.

SELECT column_name(s)
FROM table_name
WHERE condition
ORDER BY column_name [ASC|DESC]
  • column_name(s): Las columnas a consultar.
  • table_name: La tabla a consultar.
  • condition: Condiciones de consulta (opcional).
  • ORDER BY: Método de ordenación,ASCindica orden ascendente,DESCindica orden descendente (opcional).

INSERT INTO: Se utiliza para insertar nuevos datos en una tabla de la base de datos.

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...)
  • table_name: La tabla donde se insertarán los datos.
  • column1, column2, ...: Las columnas donde se insertarán los datos.
  • value1, value2, ...: Los valores correspondientes a las columnas.

UPDATE: Se utiliza para actualizar datos existentes en una tabla de la base de datos.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition
  • table_name: La tabla cuyos datos se actualizarán.
  • column1 = value1, column2 = value2, ...: Las columnas a actualizar y sus nuevos valores.
  • condition: Condición de actualización.

DELETE: Se utiliza para eliminar datos de una tabla de la base de datos.

DELETE FROM table_name
WHERE condition
  • table_name: La tabla de la que se eliminarán datos.
  • condition: Condición de eliminación.

CREATE TABLE: Se utiliza para crear una nueva tabla de base de datos.

CREATE TABLE table_name (
    column1 data_type constraint,
    column2 data_type constraint,
    ...
)
  • table_name: El nombre de la tabla a crear.
  • column1, column2, ...: Las columnas de la tabla.
  • data_type: Tipos de datos de las columnas (comoINT、VARCHARetc.).
  • constraint: Restricciones de las columnas (comoPRIMARY KEY、NOT NULLetc.).

ALTER TABLE: Se utiliza para modificar la estructura de una tabla de base de datos existente.

ALTER TABLE table_name
ADD column_name data_type
  • table_name: La tabla a modificar.
  • column_name: La columna a agregar.
  • data_type: El tipo de dato de la columna.

o:

ALTER TABLE table_name
DROP COLUMN column_name
  • column_name: La columna a eliminar.

DROP TABLE: Se utiliza para eliminar una tabla de la base de datos.

DROP TABLE table_name
  • table_name: La tabla a eliminar.

CREATE INDEX: Se utiliza para crear un índice, para acelerar las consultas.

CREATE INDEX index_name
ON table_name (column_name)
  • index_name: El nombre del índice.
  • column_name: La columna a indexar.

DROP INDEX: Se utiliza para eliminar un índice.

DROP INDEX index_name
ON table_name
  • index_name: El nombre del índice a eliminar.
  • table_name: La tabla donde se encuentra el índice.

WHERE: Se utiliza para especificar condiciones de filtrado.

SELECT column_name(s)
FROM table_name
WHERE condition
  • condition: Condición de filtrado.

ORDER BY: Se utiliza para ordenar el conjunto de resultados.

SELECT column_name(s)
FROM table_name
ORDER BY column_name [ASC|DESC]
  • column_name: La columna utilizada para ordenar.
  • ASC: Ascendente (predeterminado).
  • DESC: Descendente.

GROUP BY: Se utiliza para agrupar el conjunto de resultados por una o más columnas.

SELECT column_name(s), aggregate_function(column_name)
FROM table_name
WHERE condition
GROUP BY column_name(s)
  • aggregate_function: Funciones de agregación (como COUNT, SUM, AVG, etc.).

HAVING: Se utiliza para filtrar el conjunto de resultados agrupado.

SELECT column_name(s), aggregate_function(column_name)
FROM table_name
GROUP BY column_name(s)
HAVING condition
  • condition: Condición de filtrado.

JOIN: Se utiliza para combinar registros de dos o más tablas.

SELECT column_name(s)
FROM table_name1
JOIN table_name2
ON table_name1.column_name = table_name2.column_name
  • JOIN: Puede ser INNER JOIN, LEFT JOIN, RIGHT JOIN o FULL JOIN.

DISTINCT: Se utiliza para devolver valores únicos distintos.

SELECT DISTINCT column_name(s)
FROM table_name
  • column_name(s): Las columnas a consultar.

Otras extensiones