Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR»
(Hi ha 11 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" | {|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"| | + | ! align="left" style="background:Lavender; color:Black"|Column Name |
− | + | ! align="left" width="100 px" |ID | |
− | + | ! align="left" width="100 px" |NAME | |
− | ! align="left" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | ! align="left" width="100 | ||
− | |||
− | |||
|- | |- | ||
! align="left" style="background:Lavender; color:Black"|Key Type | ! align="left" style="background:Lavender; color:Black"|Key Type | ||
| Primary Key|| | | Primary Key|| | ||
|- | |- | ||
− | ! align="left" style="background:Lavender; color:Black"| | + | ! 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"| | + | ! align="left" style="background:Lavender; color:Black"|FK Column |
| || | | || | ||
|- | |- | ||
Línia 63: | Línia 39: | ||
INSERT INTO dept | INSERT INTO dept | ||
SELECT department_id, department_name | SELECT department_id, department_name | ||
− | FROM departments | + | FROM departments; |
</pre> | </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. | 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> | <pre> | ||
CREATE TABLE emp | CREATE TABLE emp | ||
− | (id NUMBER(7), | + | (id NUMBER(7) CONSTRAINT emp_id_PK Primary Key, |
last_name VARCHAR2(25), | last_name VARCHAR2(25), | ||
first_name VARCHAR2(25), | first_name VARCHAR2(25), | ||
dept_id NUMBER(7) | dept_id NUMBER(7) | ||
CONSTRAINT emp_dept_id_FK REFERENCES dept (id)); | CONSTRAINT emp_dept_id_FK REFERENCES dept (id)); | ||
− | <pre> | + | </pre> |
Para confirmar que se ha creado la tabla y ver su estructura: | Para confirmar que se ha creado la tabla y ver su estructura: | ||
</pre> | </pre> | ||
Línia 94: | Línia 97: | ||
6) Intente insertar la siguiente fila en la tabla EMPLOYEES2. | 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. | 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. |
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;