Uploaded by Johel Fabricio Mena Brizuela

Script SQL: Creación, Modificación y Consultas de Tablas

advertisement
/*Crear una tabla TEST de tres columnas ( Full_name VARCHAR2(80), Job VARCHAR2(10),
Hire_date DATE).*/
CREATE TABLE TEST (
Full_name VARCHAR2(80),
Job VARCHAR2(10),
Hire_date DATE
);
/*Error starting at line : 4 in command CREATE TABLE TEST (
Full_name VARCHAR2(80),
Job VARCHAR2(10),
Hire_date DATE
)
Error report ORA-00955: name is already used by an existing object
00955. 00000 - "name is already used by an existing object"
*Cause:
*Action:*/
/*Hacer la inserción de 2 registros a la tabla creada. */
INSERT INTO TEST (Full_name, Job, Hire_date)
VALUES ('Juan Pérez', 'Analista', TO_DATE('2022-05-15', 'YYYY-MM-DD'));
INSERT INTO TEST (Full_name, Job, Hire_date)
VALUES ('María Gómez', 'Desarroll.', TO_DATE('2023-08-10', 'YYYY-MM-DD'));
/*Crear una selección del nombre utilizando la cláusula de DISTINCT en la tabla de
EMPLOYEES esquema HR. */
SELECT DISTINCT first_name
FROM HR.EMPLOYEES;
/*Hacer un UPDATE subiendo el salario en un 5% a los empleados que no tienen comisión
únicamente. */
UPDATE HR.EMPLOYEES
SET salary = salary * 1.05
WHERE commission_pct IS NULL;
/*Hacer un UPDATE en EMPLOYEES al salario en un 8% de aumento cuando el salario
sea menor a 3000 y el departamento no sea 80. */
UPDATE HR.EMPLOYEES
SET salary = salary * 1.08
WHERE salary < 3000
AND department_id <> 80;
/*Añadir una columna a la tabla TEST llamada NEW_COLUMN (varchar2 (12)). */
ALTER TABLE TEST
ADD NEW_COLUMN VARCHAR2(12);
/*Crear una tabla de PRACTICE con los siguientes campos ( EMPLOYEE_ID,
EMPLOYEE_NAME, JOB_ID, DEPARTAMENT_ID). */
CREATE TABLE PRACTICE (
EMPLOYEE_ID NUMBER,
EMPLOYEE_NAME VARCHAR2(100),
JOB_ID VARCHAR2(10),
DEPARTMENT_ID NUMBER
);
/*Se crea una llave primaria compuesta por los campos EMPLOYEE_ID y EMPLOYEE_NAME en la
tabla PRACTICE.*/
ALTER TABLE PRACTICE
ADD CONSTRAINT PK_PRACTICE PRIMARY KEY (EMPLOYEE_ID, EMPLOYEE_NAME);
/* Se agrega un valor por defecto mayor a 0 en la columna SALARY de la tabla EMPLOYEES en el
esquema HR. */
ALTER TABLE HR.EMPLOYEES
MODIFY SALARY DEFAULT 1000;
/* Se utiliza un SELECT con alias en mayúsculas, minúsculas y dos palabras en la tabla
EMPLOYEES. */
SELECT first_name AS "FIRST_NAME",
last_name AS "last_name",
job_id AS "Job Title"
FROM HR.EMPLOYEES;
/* Selecciona empleados con salarios entre 3000 y 12000. */
SELECT first_name, last_name, salary
FROM HR.EMPLOYEES
WHERE salary < 12000 AND salary > 3000;
/* Selecciona empleados con apellidos que empiezan con 'P' y con salarios entre 2500 y 10000. */
SELECT first_name, last_name, salary
FROM HR.EMPLOYEES
WHERE salary > 2500 AND salary < 10000
AND last_name LIKE 'P%';
/* Selecciona empleados que tienen comisión (commission_pct no es NULL). */
SELECT first_name, last_name, commission_pct
FROM HR.EMPLOYEES
WHERE commission_pct IS NOT NULL;
/* Selecciona empleados que pertenezcan a los departamentos 80, 70 o 90. */
SELECT first_name, last_name, department_id
FROM HR.EMPLOYEES
WHERE department_id IN (80, 70, 90);
/* Selecciona empleados ordenados por nombre en orden ascendente y por puesto en orden
descendente. */
SELECT first_name, last_name, job_id
FROM HR.EMPLOYEES
ORDER BY first_name ASC, job_id DESC;
/* Selecciona empleados con puestos específicos: sa_rep, sh_clerk, fi_account. */
SELECT first_name, last_name, job_id
FROM HR.EMPLOYEES
WHERE job_id IN ('SA_REP', 'SH_CLERK', 'FI_ACCOUNT');
/* Selecciona empleados mostrando nombre, apellido y puesto en mayúsculas. */
SELECT UPPER(first_name) AS first_name, UPPER(last_name) AS last_name, UPPER(job_id) AS
job_id
FROM HR.EMPLOYEES;
/* Selecciona empleados mostrando nombre, apellido y puesto en minúsculas. */
SELECT LOWER(first_name) AS first_name, LOWER(last_name) AS last_name, LOWER(job_id) AS
job_id
FROM HR.EMPLOYEES;
/* Selecciona empleados mostrando nombre, apellido y puesto con iniciales en mayúscula
(INITCAP). */
SELECT INITCAP(first_name) AS first_name,
INITCAP(last_name) AS last_name,
INITCAP(job_id) AS job_id
FROM HR.EMPLOYEES;
/* Genera un código de empleado basado en el nombre, apellido y job_id. */
SELECT SUBSTR(first_name, 1, 2) || SUBSTR(last_name, 1, 3) || job_id AS employee_code
FROM HR.EMPLOYEES;
Download