Comandos SQL: Consultas, Manipulación de Datos y Administración en Oracle

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:

SENTENCIADESCRIPCIÓNEJEMPLO
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ónElimina 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ónActualiza 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ónRealiza 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:

CREATE TABLE nombretabla (
 campo1 tipodatos1,
 campo2 tipodatos2,
 ...
);
Crea una nueva tabla con los campos y tipos de datos especificados.
CREATE TABLE recibidos (
 id VARCHAR(2) NOT NULL,
 descripcion VARCHAR(100)
);
ALTER TABLE tabla_prueba ADD (
 campo_nuevo TIPO_DATOS,
 campo_nuevo2 TIPO_DATOS
);
Añade nuevas columnas (campos) a una tabla existente.
ALTER TABLE tabla_prueba ADD (
 campo_nuevo varchar2(9),
 campo_nuevo2 varchar2(200)
);

Administración de Usuarios (Solo para Oracle)

SENTENCIADESCRIPCIÓNEJEMPLO
CREATE USER "NOMBRE_USUARIO" PROFILE "DEFAULT"
IDENTIFIED BY "CONTRASEÑA_USUARIO" DEFAULT TABLESPACE "TABLESPACE_DEFECTO"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "NOMBRE_USUARIO";
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».
CREATE USER "usuarioprueba" PROFILE "DEFAULT"
IDENTIFIED BY "contraseña" DEFAULT TABLESPACE "USERS"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "usuarioprueba";

Operadores y Comodines SQL

Los siguientes operadores se utilizan dentro de la cláusula WHERE para especificar condiciones:

OPERADORDESCRIPCIÓN
>Mayor que
<Menor que
>=Mayor o igual que
<=Menor o igual que
<>Distinto de
=Igual a
ANDOperador lógico ‘Y’
OROperador lógico ‘O’
NOTOperador lógico ‘NO’
LIKECompara un valor con un patrón (no distingue mayúsculas/minúsculas).
INVerifica si un valor está dentro de un conjunto de valores.
NOT INVerifica si un valor *no* está dentro de un conjunto de valores.
IS NULLVerifica si un valor es nulo.
IS NOT NULLVerifica si un valor no es nulo.
BETWEENVerifica 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ÍNDESCRIPCIÓ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 SQLDESCRIPCIÓ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’.
SELECT employee_id
FROM employees
WHERE salary > (
 SELECT AVG(salary)
 FROM employees
);
Muestra los ‘employee_id’ de los empleados cuyo salario es superior a la media.
SELECT last_name, job_id
FROM employees
WHERE department_id IN (
 SELECT department_id
 FROM departments
 WHERE UPPER(department_name) LIKE '%K%'
);
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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.