Algunas de las sentencias SQL más utilizadas: SELECT, INSET, UPDATE, DELETE, ALTER, CRETA. Con ejemplos de uso en SQL de Oracle.
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) |
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, | 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» | 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 |
< | 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 |
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 |