Una base de datos es una recopilación organizada de información o datos estructurados, que normalmente se almacena de forma electrónica en un sistema informático. Normalmente, una base de datos está controlada por un sistema de gestión de bases de datos (DBMS).
En conjunto, los datos y el DBMS, junto con las aplicaciones asociadas a ellos, reciben el nombre de sistema de bases de datos, abreviado normalmente a simplemente base de datos.
Los datos de los tipos más comunes de bases de datos en funcionamiento actualmente se suelen utilizar como estructuras de filas y columnas en una serie de tablas para aumentar la eficacia del procesamiento y la consulta de datos. Así, se puede acceder, gestionar, modificar, actualizar, controlar y organizar fácilmente los datos.
La mayoría de las bases de datos utilizan un lenguaje de consulta estructurada (SQL) para escribir y consultar datos.
El Lenguaje de consulta estructurada (Structured Query Language, SQL, por sus siglas en inglés), es un lenguaje gestor para el manejo de información en una base de datos relacional.
SQL es muy popular por su facilidad de uso y efectividad para convertir grandes volúmenes de datos en información útil.
Te puede interesar también:
- ¿Cómo aumentar tus posibilidades de ascenso? Conviértete en experto en Microsoft Dynamics 365 sin costo
- Aprende Kotlin gratis y conviértete en el desarrollador que las empresas buscan
- ¿Cómo puedes aprender Excel y Power BI sin costo alguno? Descubre el curso gratuito y aprende análisis de datos
Creación y gestión de bases de datos.
CREAR BASE DE DATOS
Crea una nueva base de datos.
CREATE DATABASE bank;
ELIMINAR BASE DE DATOS
Eliminar una base de datos y todo su contenido.
DROP DATABASE bank;
MOSTRAR BASES DE DATOS
Muestre todas las bases de datos en su clúster.
SHOW DATABASES;
IF EXISTS
se puede usar para evitar errores si (por ejemplo) intentamos eliminar una base de datos que no existe. IF EXISTS
también puede usarse con muchas otras sentencias SQL y combinarse con otros operadores.
Ejemplos:
DROP DATABASE IF EXISTS bank; | CREATE DATABASE IF NOT EXISTS bank; |
---|
DROP DATABASE … CASCADE
se puede utilizar para eliminar todos los objetos que dependen de la base de datos que se descarta. DROP DATABASE … RESTRICT
se puede usar para evitar que el DROP DATABASE
comando se ejecute a menos que la base de datos esté vacía.
Ejemplos:
DROP DATABASE bank CASCADE; | DROP DATABASE bank RESTRICT; |
---|
Creación de tablas y esquemas.
CREAR TABLAS
Crear una nueva tabla en la base de datos.
CREATE TABLE users (
id UUID PRIMARY KEY,
city STRING,
name STRING,
address STRING,
credit_card STRING,
dl STRING
);
Para cada fila de la tabla, debe especificar al menos un nombre de fila (es decir, city
) y un tipo de datos (es decir, STRING
). Pero también puede hacer mucho más con CREATE TABLE
, como:
Defina una columna de clave principal:
CREATE TABLE users (
id UUID PRIMARY KEY,
city STRING,
name STRING
);
Defina una clave principal de varias columnas:
CREATE TABLE users (
id UUID,
city STRING,
name STRING,
PRIMARY KEY (city, id)
);
Defina una clave externa que haga referencia a otra tabla en la base de datos:
(En este caso, haciendo referencia a una columna llamada city
en la tabla llamada locations
).
CREATE TABLE users (
id UUID PRIMARY KEY,
city STRING REFERENCES locations(city),
name STRING
);
Cree un índice basado en una columna:
CREATE TABLE users (
id UUID PRIMARY KEY,
city STRING,
name STRING,
INDEX (name)
);
Defina un valor predeterminado para una columna:
(En este caso, usando la función de CockroachDB gen_random_uuid()
para generar un UUID aleatorio como valor predeterminado).
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
city STRING,
name STRING
);
No permitir VALORES NULL
de una columna:
CREATE TABLE users (
id UUID NOT NULL,
city STRING,
name STRING
);
Cree una tabla con una columna calculada:
CREATE TABLE users (
id UUID NOT NULL,
city STRING,
name STRING,
name_and_city STRING AS (CONCAT(name, ' ', city)) STORED
);
Especifique qué sucede cuando se actualiza un objeto al que se hace referencia:
CREATE TABLE users (
id UUID PRIMARY KEY,
city STRING REFERENCES locations(city) ON DELETE CASCADE,
name STRING
);
Cree una nueva tabla usando los resultados de una consulta:
CREATE TABLE users_ny(user_id, name, city)
AS SELECT * FROM users
WHERE city = 'new york';
Administrar tablas SQL
MODIFICAR TABLA
Aplicar un cambio de esquema a una tabla.
ALTER TABLE bank ADD COLUMN active BOOL;
ALTER TABLE
se utiliza con subcomandos como:
AÑADIR COLUMNA
Agrega una columna.
ALTER TABLE bank ADD COLUMN active BOOL;
ELIMINAR COLUMNA
Eliminar una columna.
ALTER TABLE bank DROP COLUMN active;
MODIFICAR COLUMNA
Cambiar restricciones de columna, tipos de datos, etc.
ALTER TABLE bank ALTER account_balance TYPE FLOAT;
RENOMBRAR COLUMNA
Cambiar el nombre de una columna.
ALTER TABLE bank RENAME COLUMN account_balance TO balance;
RENOMBRAR A
Cambiar el nombre de una tabla.
ALTER TABLE bank RENAME TO users;
ELIMINAR TABLA
Quitar una TABLA.
DROP TABLE bank;
DROP TABLE … CASCADE
se puede usar para eliminar todos los objetos (restricciones, vistas, etc.) que dependen de la eliminación de la tabla.
DROP TABLE … RESTRICT
se puede usar para evitar que se ejecute el comando DROP TABLE a menos que la tabla esté vacía.
¡ Use las declaraciones con precaución!
Gestión de restricciones de SQL
AGREGAR RESTRICCIÓN
Agregue una clave, control o restricción única a una columna.
ALTER TABLE users ADD CONSTRAINT id_name_unique UNIQUE (id, name);
RESTRICCIÓN DE ELIMINACION
Eliminar una restricción de una columna.
ALTER TABLE users DROP CONSTRAINT id_name_unique;
MODIFICAR COLUMNA
Agregue o elimine restricciones, cambie los tipos de datos.
ALTER TABLE subscriptions ALTER COLUMN newsletter SET NOT NULL;
Insertar datos
INSERTAR VALORES
Inserta filas con valores especificados en una tabla.
INSERT INTO users (name, city) VALUES('Alice', 'New York');
INSERTAR EN SELECCION
Inserta filas en una tabla a partir de los resultados de una consulta.
INSERT INTO drivers (id, city, name, address)
SELECT id, city, name, address FROM users
WHERE name IN ('Anita Atkinson', 'Devin Jordan');
Trabajando con tus datos
Modificación de datos
ACTUALIZAR
Actualizar fila(s) en una tabla.
UPDATE users SET address = '201 E Randolph St' WHERE id = '851eb851-eb85-4000-8000-00000000001a';
Nota: sin una declaración WHERE, UPDATE
actualizará el valor de la columna o columnas especificadas para todas las filas .
INSERTAR EN CONFLICTO
Inserte una nueva fila o realice una acción diferente si se detecta un conflicto con una fila existente (es decir, una “inserción superior”).
INSERT INTO employees (id, name, email)
VALUES (2, ‘Dennis’, ‘dennisp@weyland.corp’)
ON CONFLICT (id) DO UPDATE;
UPSERT
Upsert una fila en la base de datos.
UPSERT INTO employees (id, name, email) VALUES (6, ‘Lambert’, ‘lambert@weyland.corp`);
ELIMINAR FILAS
Eliminar una fila o filas específicas.
DELETE FROM promo_codes WHERE code = 'HAPPY50';
consulta de datos
SELECCIONAR DE …
Devuelve los valores de columnas específicas en una tabla.
SELECT id, city, name FROM users;
SELECCIONAR DE …
Devuelve los valores de todas las columnas de una tabla.
SELECT * FROM users;
LÍMITE
Limite el número de filas devueltas por una consulta.
SELECT * FROM users LIMIT 5;
OFFSET
Omita las primeras n filas antes de devolver un resultado de consulta.
SELECT * FROM users LIMIT 5 OFFSET 5;
WHERE
Filtre los resultados de una consulta en función de una condición o condiciones.
SELECT * FROM vehicles WHERE city = 'seattle' AND status = 'available';
AGRUPAR POR
Agrupe los resultados de una consulta en función de una columna.
SELECT city FROM rides
WHERE city IN ('new york', 'chicago', 'seattle') GROUP BY city;
FILTRAR
Filtre una consulta según los resultados de ejecutar una función agregada.
SELECT city, AVG(revenue) as avg FROM rides GROUP BY city
HAVING AVG(revenue) BETWEEN 50 AND 60;
Uniendo TABLAS
Una declaración de unión en SQL se ve así:
SELECT table1.column1, table2.column1, table2.column2
FROM table1
LEFT JOIN table2
ON table1.column1 = table2.column1;
Tenga en cuenta que “LEFT” se refiere a la tabla que aparece primero en su instrucción SQL, por lo que en el ejemplo anterior, table1
es la tabla de la izquierda. El resultado de esa consulta es una tabla que contiene column1
y column2
para todas las filas en table1
y table2
que coinciden con column1
.
Tipos de uniones:
Tipo de unión | Descripción |
---|---|
UNIR INTERNAMENTE | Devuelve registros con valores coincidentes en ambas tablas. |
UNIRSE A LA IZQUIERDA | Devuelve todos los registros de la tabla de la izquierda y los valores coincidentes de la tabla de la derecha. |
UNIÓN DERECHA | Devuelve todos los registros de la tabla de la derecha y los valores coincidentes de la tabla de la izquierda. |
UNIÓN COMPLETA | Devuelve todos los registros con valores coincidentes en cualquiera de las tablas. |
UNIÓN | “Apilar” las tablas, con las filas de la tabla de la izquierda devueltas primero, seguidas de las filas de la tabla de la derecha. |
Agregando datos
Funciones agregadas seleccionadas:
Función | Úsalo para… |
---|---|
COUNT() | Cuente el número de filas. |
AVG() | Promedie los valores en una columna. |
SUM() | Agregue los valores en una columna. |
MIN() | Devuelve el valor más bajo de una columna. |
MÁX.() | Devuelve el valor más alto de una columna. |
Ejemplo:
SELECT AVG(balance) FROM accounts WHERE balance > 0;
Esta consulta SQL que devolvería el valor promedio de la balance
columna de la tabla accounts
, sin incluir las filas con un saldo de cero.
Operadores logicos
Operadores lógicos seleccionados:
Operador | Úsalo para… |
---|---|
ALL | Devuelve VERDADERO si todos los valores de una subconsulta cumplen la condición especificada. |
AND | Devuelve registros para los que las condiciones separadas por AND son verdaderas. |
ANY | Devuelve VERDADERO si algún valor en una subconsulta cumple la condición especificada. |
BETWEEN | Devuelve registros de la consulta que se encuentran entre dos valores especificados. |
EXISTS | Retorna VERDADERO si existe algún registro en la subconsulta. |
IN | Especifique múltiples valores en una consulta WHERE sin tener que usar OR entre cada valor. |
LIKE | Devuelve registros que coinciden con un patrón específico. |
NOT | Devuelve los registros que no cumplen la condición especificada. |
OR | Devuelve los registros para los que alguna de las condiciones separadas por OR es verdadera. |
Gestión de índices
CREAR ÍNDICE
Cree un índice para una tabla usando una o más columnas.
CREATE INDEX ON table1 (column1, column2);
ALTERAR ÍNDICE… CAMBIAR NOMBRE A
Cambiar el nombre de un índice.
ALTER INDEX usersname_idx RENAME TO users_name_idx;
ELIMINAR ÍNDICE
Eliminar un índice.
DROP INDEX users_name_idx;
Administración/Operaciones
Acceso a la base de datos
CREAR ROL
Cree un rol de usuario de SQL (grupo de usuarios).
CREATE ROLE basic_user;
ELIMINAR ROL
Eliminar un rol de usuario de SQL.
DROP ROLE basic_user;
CREAR USUARIO
Crear un nuevo usuario.
CREATE USER alex;
ELIMINAR USUARIO
Eliminar un usuario.
DROP USER alex;
CONCEDER PRIVILEGIOS
Otorgar privilegios a un usuario o un rol.
GRANT DELETE ON TABLE rides TO alex;
REVOCAR PRIVILEGIOS
Revocar los privilegios de la base de datos de un usuario o rol.
REVOKE ALL ON DATABASE defaultdb FROM alex;
MOSTRAR ROLES
Enumere los roles para todas las bases de datos en un clúster.
SHOW ROLES;
MOSTRAR USUARIOS
Enumere los usuarios de todas las bases de datos en un clúster.
SHOW USERS;
MOSTRAR PRIVILEGIOS
Ver los privilegios otorgados a un usuario o rol.
SHOW GRANTS FOR alex;
Investigación de desempeño
EXPLAIN
Ver el plan de consulta para una consulta sin ejecutarla.
EXPLAIN SELECT * FROM rides WHERE revenue > 90 ORDER BY revenue ASC;
EXPLAIN ANALYZE
Ejecute una consulta y genere un plan de consulta física con estadísticas de ejecución.
EXPLAIN ANALYZE SELECT * FROM rides WHERE revenue > 90 ORDER BY revenue ASC;
Deja tus comentarios y sugerencias
Sobre Facialix
Facialix es un sitio web que tiene como objetivo apoyar en el aprendizaje y educación de jóvenes y grandes. Buscando y categorizando recursos educativos gratuitos de internet, de esta manera Facialix ayuda en el constante aprendizaje de todos.