Comandos SQL: Consultas, Manipulación de Datos y Administración
Este documento proporciona una referencia completa de los comandos SQL más utilizados, incluyendo ejemplos prácticos y consideraciones específicas para Oracle.
Manipulación de Datos (DML)
Las siguientes sentencias se utilizan para manipular datos dentro de las tablas:
SENTENCIA | DESCRIPCIÓN | EJEMPLO |
INSERT INTO nombretabla (campo1, campo2, ...) VALUES (valor1, valor2, ...) | Inserta un nuevo registro en la tabla especificada. Los valores deben coincidir en tipo y orden con los campos. | INSERT INTO recibidos (id, descripcion) VALUES ('1', 'Registro de prueba'); |
DELETE FROM nombretabla WHERE condición | Elimina los registros de la tabla que cumplan la condición especificada. Si no se especifica ninguna condición, se eliminarán *todos* los registros. | DELETE FROM recibidos WHERE id='1'; |
UPDATE nombretabla SET campo1 = valor1, campo2 = valor2, ... WHERE condición | Actualiza los registros que cumplan la condición con los nuevos valores. Si no se especifica ninguna condición, se actualizarán *todos* los registros. | UPDATE recibidos SET id = '2', descripcion = 'Descripción actualizada' WHERE id='1'; |
UPDATE nombre_tabla SET campo1 = (SELECT nt2.campo1 FROM nombre_tabla2 nt2 WHERE nombre_tabla2.codigonombretabla = nombre_tabla.codigo) | Update avanzado: actualiza el campo1 de todos los registros de nombre_tabla con el valor del campo1 de la tabla nombre_tabla2 que cumpla la condición del WHERE . |
UPDATE supplier SET supplier_name = (SELECT customer.name FROM customers WHERE customers.customer_id = supplier.supplier_id); |
SELECT campo1, campo2, ... FROM nombretabla WHERE condición | Realiza una consulta que muestra los campos especificados de los registros que cumplan la condición. Si no se especifica ninguna condición, se mostrarán todos los registros. | SELECT descripcion FROM recibidos WHERE UPPER(descripcion) LIKE '%ACTUALI%'; |
Definición de Datos (DDL)
Estas sentencias se utilizan para definir la estructura de la base de datos:
| Crea una nueva tabla con los campos y tipos de datos especificados. |
|
| Añade nuevas columnas (campos) a una tabla existente. |
|
Administración de Usuarios (Solo para Oracle)
SENTENCIA | DESCRIPCIÓN | EJEMPLO |
| Crea un nuevo usuario en Oracle. Esta sentencia crea el usuario «NOMBRE_USUARIO» con la contraseña «CONTRASEÑA_USUARIO», le asigna el tablespace «TABLESPACE_DEFECTO» y le concede el permiso «CONNECT». |
|
Operadores y Comodines SQL
Los siguientes operadores se utilizan dentro de la cláusula WHERE
para especificar condiciones:
OPERADOR | DESCRIPCIÓN |
> | Mayor que |
< | Menor que |
>= | Mayor o igual que |
<= | Menor o igual que |
<> | Distinto de |
= | Igual a |
AND | Operador lógico ‘Y’ |
OR | Operador lógico ‘O’ |
NOT | Operador lógico ‘NO’ |
LIKE | Compara un valor con un patrón (no distingue mayúsculas/minúsculas). |
IN | Verifica si un valor está dentro de un conjunto de valores. |
NOT IN | Verifica si un valor *no* está dentro de un conjunto de valores. |
IS NULL | Verifica si un valor es nulo. |
IS NOT NULL | Verifica si un valor no es nulo. |
BETWEEN | Verifica si un valor está dentro de un rango (inclusive). |
|| | Concatena cadenas de caracteres (específico de Oracle). |
Los siguientes comodines se pueden usar con el operador LIKE
:
COMODÍN | DESCRIPCIÓN |
* | Representa todos los campos (en SELECT * ). |
% | Representa cero, uno o múltiples caracteres. |
_ | Representa un único carácter. |
Ejemplos de Consultas SQL (Oracle)
SENTENCIA SQL | DESCRIPCIÓN |
SELECT last_name, job_id, salary AS Salario FROM employees; | Muestra los campos ‘last_name’, ‘job_id’ y ‘salary’ (renombrado como ‘Salario’) de la tabla ‘employees’. |
SELECT * FROM employees; | Muestra todos los registros y todos los campos de la tabla ‘employees’. |
SELECT last_name, salary * 12 AS "Salario Anual" FROM employees; | Muestra el ‘last_name’ y el ‘Salario Anual’ (calculado como salary * 12) de la tabla ‘employees’. |
SELECT first_name || ', ' || last_name "Nombre empleado" FROM employees; | Concatena ‘first_name’ y ‘last_name’, separados por una coma y un espacio, y los muestra como ‘Nombre empleado’. |
SELECT last_name FROM employees WHERE employee_id > 176; | Muestra el ‘last_name’ de los empleados cuyo ‘employee_id’ es mayor que 176. |
SELECT last_name, salary FROM employees WHERE salary NOT BETWEEN 5000 AND 12000; | Muestra ‘last_name’ y ‘salary’ de los empleados cuyo salario no está entre 5000 y 12000. |
SELECT last_name FROM employees WHERE department_id IN (20, 50) ORDER BY last_name; | Muestra el ‘last_name’ de los empleados cuyo ‘department_id’ es 20 o 50, ordenados por ‘last_name’. |
| Muestra los ‘employee_id’ de los empleados cuyo salario es superior a la media. |
| Muestra ‘last_name’ y ‘job_id’ de los empleados que pertenecen a un departamento cuyo nombre contiene la letra ‘K’. |
Nota: Los símbolos separadores de cadenas, fechas, etc., pueden variar según el motor de base de datos utilizado.