Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «1) Cree la tabla DEPT según el siguiente gráfico de instancias de tabla. Guarde la sentencia en un script denominado lab_10_01.sql y, a continuación, ejecute el scr...».)
 
 
(Hi ha 16 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
1) Cree la tabla DEPT según el siguiente gráfico de instancias de tabla. Guarde la
+
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
sentencia en un script denominado lab_10_01.sql y, a continuación, ejecute el
+
|-
script para crear la tabla. Confirme que se ha creado la tabla.
+
! align="left" style="background:Lavender; color:Black"|Column Name
 +
! align="left" width="100 px" |ID
 +
! align="left" width="100 px" |NAME
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Key Type
 +
| Primary Key||
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Nulls / Unique
 +
| ||
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|FK Table
 +
| ||
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|FK Column
 +
| ||
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Data Type
 +
| NUMBER||VARCHAR2
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Length
 +
| 7||25
 +
|}
 +
 
 +
1) Cree la tabla DEPT según el siguiente gráfico de instancias de tabla. Guarde la sentencia en un script denominado lab_10_01.sql y, a continuación, ejecute el script para crear la tabla. Confirme que se ha creado la tabla.
 
<pre>
 
<pre>
 
CREATE TABLE dept
 
CREATE TABLE dept
Línia 7: Línia 30:
 
name VARCHAR2(25));
 
name VARCHAR2(25));
 
</pre>
 
</pre>
Para confirmar que se ha creado la tabla y visualizar su estructura, ejecute el siguiente
+
Para confirmar que se ha creado la tabla y visualizar su estructura, ejecute el siguiente comando:
comando:
 
 
<pre>
 
<pre>
 
DESCRIBE dept
 
DESCRIBE dept
 
</pre>
 
</pre>
  
2) Rellene la tabla DEPT con datos de la tabla DEPARTMENTS . Incluya sólo aquellas
+
2) Rellene la tabla DEPT con datos de la tabla DEPARTMENTS . Incluya sólo aquellas columnas que necesite.
columnas que necesite.
 
 
<pre>
 
<pre>
 
INSERT INTO dept
 
INSERT INTO dept
 
SELECT department_id, department_name
 
SELECT department_id, department_name
FROM departments
+
FROM departments;
 +
</pre>
 +
 
 +
3) Cree la tabla EMP según el siguiente gráfico de instancias de tabla. Guarde la sentencia en un script denominado lab_10_03.sql y, a continuación, ejecute el script para crear la tabla. Confirme que se ha creado la tabla.
 +
 
 +
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Column Name
 +
! align="left" width="100 px" |ID
 +
! align="left" width="100 px" |LAST_NAME
 +
! align="left" width="100 px" |FIRST_NAME
 +
! align="left" width="100 px" |DEPT_ID
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Key Type
 +
|Primary Key || ||  || 
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Nulls / Unique
 +
| || ||  ||
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|FK Table
 +
| || ||  ||DEPT
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|FK Column
 +
| || ||  ||ID
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Data Type
 +
| NUMBER||VARCHAR2||VARCHAR2||NUMBER
 +
|-
 +
! align="left" style="background:Lavender; color:Black"|Length
 +
| 7||25||25||7
 +
|}
 +
<pre>
 +
CREATE TABLE emp
 +
      (id NUMBER(7) CONSTRAINT emp_id_PK Primary Key,
 +
        last_name VARCHAR2(25),
 +
        first_name VARCHAR2(25),
 +
        dept_id NUMBER(7)
 +
        CONSTRAINT emp_dept_id_FK REFERENCES dept (id));
 +
</pre>
 +
Para confirmar que se ha creado la tabla y ver su estructura:
 +
</pre>
 +
DESCRIBE emp
 +
</pre>
 +
 
 +
4) Cree la tabla EMPLOYEES2 según la estructura de la tabla EMPLOYEES . Incluya sólo las columnas EMPLOYEE_ID , FIRST_NAME , LAST_NAME , SALARY y DEPARTMENT_ID . Asigne a las columnas de la tabla los nombres ID, FIRST_NAME, LAST_NAME, SALARY y DEPT_ID, respectivamente.
 +
<pre>
 +
CREATE TABLE employees2 AS
 +
            SELECT employee_id id, first_name, last_name, salary,
 +
                    department_id dept_id
 +
            FROM employees;
 +
</pre>
 +
 
 +
5) Modifique el estado de la tabla EMPLOYEES2 a sólo lectura.
 +
<pre>
 +
ALTER TABLE employees2 READ ONLY;
 +
</pre>
 +
 
 +
6) Intente insertar la siguiente fila en la tabla EMPLOYEES2.
 +
 
 +
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
 +
! align="left" width="100 px" style="background:Lavender; color:Black"|ID
 +
! align="left" width="100 px" style="background:Lavender; color:Black"|FIRST_NAME
 +
! align="left" width="120 px" style="background:Lavender; color:Black"|LAST_NAME
 +
! align="left" width="85 px" style="background:Lavender; color:Black"|SALARY
 +
! align="left" width="85 px" style="background:Lavender; color:Black"|DEPT_ID
 +
|-
 +
|34||Grant||Marcie||5678||10
 +
|}
 +
 
 +
 
 +
Aparecerá el mensaje de error “Update operation not allowed on table”. Por lo tanto, no se le permitirá insertar ninguna fila en la tabla porque se ha asignado un estado de sólo lectura.
 +
<pre>
 +
INSERT INTO employees2
 +
VALUES (34, 'Grant', 'Marcie', 5678, 10);
 +
</pre>
 +
 
 +
7) Revierta la tabla EMPLOYEES2 al estado de lectura/escritura. Ahora, vuelva a intentar insertar la misma fila.
 +
 
 +
Ahora, debido a que a la tabla se le ha asignado un estado READ WRITE , podrá insertar una fila en la tabla.
 +
<pre>
 +
ALTER TABLE employees2 READ WRITE
 +
 
 +
INSERT INTO employees2
 +
VALUES (34, 'Grant','Marcie',5678,10)
 +
</pre>
 +
 
 +
8) Borre la tabla EMPLOYEES2 .
 +
 
 +
'''Nota:''' si es necesario, puede borrar una tabla con modo READ ONLY . Para probar esto, vuelva a modificar la tabla al estado READ ONLY y, a continuación, ejecute el comando DROP TABLE . Se borrará la tabla EMPLOYEES2.
 +
<pre>
 +
DROP TABLE employees2;
 
</pre>
 
</pre>

Revisió de 19:00, 18 gen 2018

Column Name ID NAME
Key Type Primary Key
Nulls / Unique
FK Table
FK Column
Data Type NUMBER VARCHAR2
Length 7 25

1) Cree la tabla DEPT según el siguiente gráfico de instancias de tabla. Guarde la sentencia en un script denominado lab_10_01.sql y, a continuación, ejecute el script para crear la tabla. Confirme que se ha creado la tabla.

CREATE TABLE dept
(id NUMBER(7)CONSTRAINT department_id_pk PRIMARY KEY,
name VARCHAR2(25));

Para confirmar que se ha creado la tabla y visualizar su estructura, ejecute el siguiente comando:

DESCRIBE dept

2) Rellene la tabla DEPT con datos de la tabla DEPARTMENTS . Incluya sólo aquellas columnas que necesite.

INSERT INTO dept
SELECT department_id, department_name
FROM departments;

3) Cree la tabla EMP según el siguiente gráfico de instancias de tabla. Guarde la sentencia en un script denominado lab_10_03.sql y, a continuación, ejecute el script para crear la tabla. Confirme que se ha creado la tabla.

Column Name ID LAST_NAME FIRST_NAME DEPT_ID
Key Type Primary Key
Nulls / Unique
FK Table DEPT
FK Column ID
Data Type NUMBER VARCHAR2 VARCHAR2 NUMBER
Length 7 25 25 7
CREATE TABLE emp
       (id NUMBER(7) CONSTRAINT emp_id_PK Primary Key,
        last_name VARCHAR2(25),
        first_name VARCHAR2(25),
        dept_id NUMBER(7)
        CONSTRAINT emp_dept_id_FK REFERENCES dept (id));

Para confirmar que se ha creado la tabla y ver su estructura: </pre> DESCRIBE emp </pre>

4) Cree la tabla EMPLOYEES2 según la estructura de la tabla EMPLOYEES . Incluya sólo las columnas EMPLOYEE_ID , FIRST_NAME , LAST_NAME , SALARY y DEPARTMENT_ID . Asigne a las columnas de la tabla los nombres ID, FIRST_NAME, LAST_NAME, SALARY y DEPT_ID, respectivamente.

CREATE TABLE employees2 AS
             SELECT employee_id id, first_name, last_name, salary,
                    department_id dept_id
             FROM employees;

5) Modifique el estado de la tabla EMPLOYEES2 a sólo lectura.

ALTER TABLE employees2 READ ONLY;

6) Intente insertar la siguiente fila en la tabla EMPLOYEES2.

ID FIRST_NAME LAST_NAME SALARY DEPT_ID
34 Grant Marcie 5678 10


Aparecerá el mensaje de error “Update operation not allowed on table”. Por lo tanto, no se le permitirá insertar ninguna fila en la tabla porque se ha asignado un estado de sólo lectura.

INSERT INTO employees2
VALUES (34, 'Grant', 'Marcie', 5678, 10);

7) Revierta la tabla EMPLOYEES2 al estado de lectura/escritura. Ahora, vuelva a intentar insertar la misma fila.

Ahora, debido a que a la tabla se le ha asignado un estado READ WRITE , podrá insertar una fila en la tabla.

ALTER TABLE employees2 READ WRITE

INSERT INTO employees2
VALUES (34, 'Grant','Marcie',5678,10)

8) Borre la tabla EMPLOYEES2 .

Nota: si es necesario, puede borrar una tabla con modo READ ONLY . Para probar esto, vuelva a modificar la tabla al estado READ ONLY y, a continuación, ejecute el comando DROP TABLE . Se borrará la tabla EMPLOYEES2.

DROP TABLE employees2;