Estrategia de prompts, primeras ideas para su construcción
SQL-Sentencias-Tablas
1. SENTENCIA DESCRIPCIÓN EJEMPLO
INSERT INTO nombretabla
(campo1, campo2, ...) VALUES
(campo1, campo2, ...)
Inserta un registro en una
tabla
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 condición se
eliminarán todos los
registros de la tabla)
DELETE FROM recibidos WHERE id='1'
UPDATE nombretabla SET campo1
= valor1, campo2 = valor2,
...WHERE condición
Actualiza los registros que
cumplan la condición
especificada con los nuevos
valores (si no se especifica
condición se actualizarán
todos los registros de la
tabla)
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 más avanzado,
actualiza el campo campo1
de todos los registros de la
nombre_tabla, con el valor
del campo1 de la tabla
nombre_tabla2 que cumplen
la condición especificada en
el WHERE
UPDATE supplier
SET supplier_name =
(SELECT customer.name
FROM customers
WHERE customers.customer_id =
supplier.supplier_id)
2. SELECT campo1, campo2, ... FROM
nombretabla WHERE condición
Consulta que muestra los
campos especificados de los
registros que cumplan la
condición especificada (si no
se especifica condición
mostrará todos los
registros)
SELECT descripcion FROM recibidos
WHERE UPPER(descripcion) LIKE
'%ACTUALI%'
CREATE TABLE nombretabla (
campo1 tipodatos1,
campo2 tipodatos2,
...
)
Crea una tabla con los
campos 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 campos (columnas)
nuevos a una tabla
existente
ALTER TABLE tabla_prueba
ADD
(
campo_nuevo varchar2(9),
campo_nuevo2 varchar2(200)
)
Sólo para Oracle
SENTENCIA DESCRIPCIÓN EJEMPLO
CREATE USER
"NOMBRE_USUARIO"
PROFILE "DEFAULT"
IDENTIFIED BY
"CONTRASEÑA_USUARIO"
DEFAULT TABLESPACE
"TABLESPACE_DEFECTO"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO
"NOMBRE_USUARIO"
Sentencia SQL para crear un
usuario en Oracle, creará el
usuario "nombre_usuario", con
la contraseña
"contraseña_usuario", le
asignará el tablespace
"tablespace_defecto", le
asignará el permiso "connect"
CREATE USER "usuarioprueba" PROFILE
"DEFAULT"
IDENTIFIED BY "contraseña" DEFAULT
TABLESPACE "USERS"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "usuarioprueba"
Según el motor de base de datos utilizado los símbolos separadores de cadenas, fechas, ... pueden
variar.
Para las condiciones que se colocan en el WHERE existen los siguientes operadores:
OPERADOR DESCRIPCIÓN
> Mayor que
3. < Menor que
>= Mayor o igual que
<= Menor o igual que
<> Distinto
= Igual
And Y
Or O
Not No
Like
Selecciona los registros cuyo valor de campo se asemeje, no teniendo en cuenta
mayúsculas y minúsculas.
In
De un conjunto de valores para un campo para los cuales la condición de selección es
válida
Not in
De un conjunto de valores para un campo para los cuales la condición de selección es no
válida
Is null Selecciona los registros que tengan el campo especificado a nulo
Is not null Selecciona los registros que tengan el campo especificado distinto de nulo
Between Selecciona los registros comprendidos en el intervalo especificado
|| Concatenar cadenas de caracteres (válido para Oracle)
COMODÍN DESCRIPCIÓN
* Sustituye a todos los campos
% Sustituye a cualquier cosa o nada dentro de una cadena
_ Sustituye un solo carácter dentro de una cadena
Ejemplos de consultas SQL (utilizando como motor de base de datos Oracle):
SENTENCIA SQL DESCRIPCIÓN
SELECT last_name, job_id, salary
AS Salario
FROM employees
Muestra todos los registros de la tabla "employees", mostrará los
campos especificados y el campo "salary" lo renombra (con un
alias) a "Salario "
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 campo "last_name" y el campo "Salario Anual" (que es
el resultado de multiplicar el campo "salary" por 12) de la tabla
employees
SELECT first_name || ', ' ||
last_name "Nombre empleado"
FROM employees
Concatena los campos "first_name" y "last_name" y los muestra en
un solo campo llamado "Nombre empleado", también añade una ","
entre los campos
SELECT last_name
FROM employees
WHERE employee_id > 176
Muestra el campo "last_name" de la tabla "employees" cuyo
"employee_id" es mayor que 176
SELECT last_name, salary
FROM employees
WHERE salary NOT BETWEEN
5000 AND 12000
Muestra los campos "last_name" y "salary" de aquellos 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 campo "last_name" de aquellos registros de la tabla
"employees" cuyo "department_id" sea 20 ó 50
4. SELECT employee_id
FROM employees
WHERE salary > (
SELECT AVG (salary)
FROM employees)
Muestra los empleados cuyo salario sea 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 los empleados que pertenezcan a un departamento que
contenga la letra "K" en el nombre