Sunteți pe pagina 1din 18

SQL

Cuando nos conectamos a Oracle, podemos diferenciar entre dos grupos de


usuarios:

 Grupo 1: Usuarios que sólo se pueden conectar a la base de datos

cuando está abierta.

 Grupo 2: Los usuarios del Grupo 2 son aquellos que tienen el privilegio
SYSOPER y/o el SYSDBA (administrador de base de datos). Estos dos
privilegios caracterizan a los usuarios de Oracle puesto que pueden
hacer operaciones de "seguridad" como arranque y parada de base de
datos.

1. COMO USUARIO SYSDBA

El privilegio SYSDBA posee todos los permisos sobre el servidor, que le


permite por ejemplo crear nuevas cuentas de bases de datos, otorgar
permisos a los usuarios de base de datos, modificar contraseñas de los
usuarios de base de datos, eliminar bases de datos, etc.

 Las cuentas que poseen el privilegio de SYSDBA (administrador de


base de datos) son: SYS y SYSTEM
 Luego que nos hemos conectado como un administrador de base de
datos, ya podemos crear nuevas bases de datos, con sus respectivos
usuarios. Veamos:

En el ejemplo de la imagen anterior, hemos creado una base de datos llamada


“salud” con la contraseña “000000”.

 Luego de haber creado la base de datos, necesitamos otorgarle


permisos para que el usuario pueda conectarse:

 En el caso que no recordemos la contraseña y deseemos cambiarla, lo


podemos hacer de la siguiente manera:
En el ejemplo anterior, estamos cambiando la contraseña de la base de datos
“salud”, por la nueva contraseña “123456”.

 También podemos bloquear una cuenta de base de datos, para que ya


no pueda conectarse de la siguiente forma:

 Y si deseamos eliminar una base de datos, podemos hacerlo de la


siguiente manera:
2. COMO USUARIO NORMAL

 Una vez que ya hemos creado nuestra base de datos con sus
respectivos permisos otorgados, podemos conectarnos a ella de la
siguiente manera:

 A continuación crearemos una tabla llamada “DEPARTMENTS” con las


columnas (atributos) “DEPARTMENT_ID, DEPARTMENT_NAME,
MANAGER_ID, LOCATION_ID”:
 También podemos ver la estructura de una tabla, mediante el comando
“DESCRIBE”:

3. CONSULTAS SQL

Las consultas en SQL tienen la siguiente estructura básica:

(opcional)
 Por ejemplo, en el usuario “HR” seleccionaremos las columnas
“DEPARTMENT_ID” y “DEPARTMENT_NAME” desde la tabla
DEPARTMENTS:

 También podemos seleccionar todas las columnas que contiene una


tabla, si usamos el comodín “*” en lugar de los nombres de cada
columna:
Ejemplo:

 También podemos unir varias columnas como si fueran una sola


(concatenar) de la siguiente manera:
Por ejemplo concatenaremos el nombre y el apellido de cada empleado,
separándolos por una coma:

 Si queremos podemos cambiar el nombre de la cabecera de una


columna (alias) al momento de mostrar una consulta:
Como ejemplo, en el caso anterior cambiaremos el nombre de cabecera por
“NOMBRE_APELLIDO”:
4. WHERE

Con WHERE podemos filtrar los datos de nuestra consulta mediante ciertas
condiciones que mejor nos favorezcan.

 Por ejemplo si deseamos obtener todos los empleados del


departamento 90, lo podemos hacer dela siguiente forma:

OPERADOR WHERE SIGNIFICADO

= Igual

!= Distinto

> Mayor

< Menor

>= Mayor o igual

<= Menor o igual


 Si deseamos comparar cadenas de texto, es necesario que el texto a
comparar esté encerrado dentro de comillas simples (‘ ’).
Por ejemplo si queremos mostrar el nombre completo y el número
telefónico (PHONE_NUMBER) de todos los empleados que se llaman
“Steven”, la sentencia sería la siguiente:

 Otro comando que nos puede facilitar la comparación de un texto es el


comando LIKE, que nos permite usar comodines a la hora de comparar
cadenas de texto.

Comodín Explicación
Toda línea que comience con 'A', otro carácter y termine con 'Z'. Por ejemplo, 'ABZ' y 'A2Z'
'A_Z' deberían satisfacer la condición, mientras 'AKKZ' no debería (debido a que hay dos caracteres
entre A y Z en vez de uno).
Todas las líneas que comienzan con 'ABC'. Por ejemplo, 'ABCD' y 'ABCABC' ambas deberían
'ABC%'
satisfacer la condición.

Todas las líneas que terminan con 'XYZ'. Por ejemplo, 'WXYZ' y 'ZZXYZ' ambas deberían
'%XYZ'
satisfacer la condición.
Todas las líneas que contienen el patrón 'AN' en cualquier lado. Por ejemplo, 'LOS ANGELES' y
'%AN%'
'SAN FRANCISCO' ambos deberían satisfacer la condición.
Si por ejemplo quisiéramos mostrar todos los nombres de las personas que
terminen en “an”, lo podemos hacer de la siguiente manera:

 Otro comando que nos puede ser muy útil a la hora de hacer consultas,
es “IN”, que nos permite comparar si el valor de una columna se
encuentra dentro de un rango de valores.

Por ejemplo mostraremos los nombres de todos los departamentos


cuyo ID se encuentra en el siguiente rango de valores: (20, 30, 40,
50)
 También existe el operador “NOT” que nos sirve para negar
expresiones, como por ejemplo en los ejercicios anteriores cuando
hicimos uso de “LIKE” y de “IN”, a continuación negaremos ambas
expresiones para obtener el resultado adverso:
ORDER BY (ordenar por)
Sintaxis:

SELECT [columna1], [columna2] FROM [nombre_tabla]

WHERE [condición]

ORDER BY [columna1] DESC;

 Listar todos los empleados y sus salarios, ordenándolos desde quién


gana más a quién gana menos:
SELECT first_name, salary FROM employees
ORDER BY salary desc;

 Listar todos los empleados ordenándolos alfabéticamente:


SELECT first_name FROM employees
ORDER BY first_name asc;

FUNCION COUNT() (contar)


 Mostrar la cantidad de empleados que pertenecen al departamento 90:
Select count(employees_id) from employees
WHERE department_id=90;

 Mostrar la cantidad de empleados que fueron contratados en el año


2005:

Select count(employees_id) from employees


WHERE hire_date like ‘%05’;

Select count(*) from employees


WHERE hire_date like ‘%05’;

 ¿Cuantos empleados ganan 4,800?


SELECT count(employee_id) FROM employees
WHERE salary=4800;
FUNCION SUM() (sumar)
 Mostrar la suma del salario de todos los empleados que trabajan en el
departamento 100:
SELECT sum(salary) FROM employees WHERE department_id=100;

 ¿Cuál es el salario mínimo de todos los empleados?


SELECT min(salary)FROM employees;

 Mostrar el nombre y apellido del empleado que tiene el salario


mínimo:
SELECT first_name||’, ‘||last_name FROM employees
WHERE salary=(SELECT min(salary) FROM employees);

JOIN (unión entre tablas)


Sintaxis:

 Unir las tablas countries y regions usando join:


SELECT * FROM countries, regions
WHERE countries.region_id=regions.region_id;
 Mostrar los nombres de todos los países más el nombre de la región a
la que pertenecen:
SELECT countries.country_name, regions.region_name
FROM countries, regions
WHERE countries.region_id=regions.region_id;

 MORTRAR EL NOMBRE DE CADA DEPARTAMENTO JUNTO CON EL


ADMINSTRADOR (MANAGER) DEL DEPARTAMENTO
SELECT departments.department_name, employees.first_name
FROM departments, employees
WHERE departments.manager_id= employees.employee_id;

GROUP BY (agrupar por)


Sintaxis:

SELECT [columna_1], funcion([columna_2])

FROM [tabla_1]

GROUP BY columna_1;

 Mostrar el id de cada departamento junto con la cantidad de empleados


que hay en cada uno de ellos:
SELECT DEPARTMENT_ID, count(employee_id)
FROM employees
GROUP BY department_id;

 Mostrar el nombre de cada departamento junto con la cantidad de


empleados que hay en cada uno de ellos:
SELECT departments.department_name,
count(employees.employee_id)
FROM departments, employees
WHERE departments.department_id=employees.department_id
GROUP BY departments.department_name;
PL/SQL
Tenemos

Bloques anónimos, Procedimientos y Funciones

Bloques anónimos

SINTAXIS:
Funciones
SINTAXIS:

Procedimientos
SINTAXIS:

S-ar putea să vă placă și