M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8
Determina quina de les següents sentències són certes o falses:
1. Una variable d'ampersand simple només es demana una vegada?
Cert. Cal tenir en compte però, que si la variable ampersand està definida, la variable d'ampersand simple no es demana en absolut. De fet, agafarà el valor en la variable predefinida.
2. L'ordre ACCEPT és de SQL.
Fals. L'ordre ACCEPT és una ordre de SQL*Plus. Sorgeix del prompt de SQL.
Les següents preguntes utilitzen les taules EMP, CUSTOMER i PRODUCT.
3. Escriu un arxiu d'ordres que mostri el nom de l'empleat concatenat amb l'ofici i la data d'ingrés per als empleats contractats en un rang de dates específiques. Demana a l'usuari el rang utilitzant l'ordre ACCEPT. Utilitzeu el format MM/DD/YY. Salva la sentència en un fitxer anomenat p8q3.sql. El resultat s'ha de veure com a continuació:
EDIT p8q3.sql SET ECHO OFF SET VERIFY OFF ACCEPT low_date DATE FORMAT 'MM/DD/YY' - PROMPT 'Please enter the low date range ("MM/DD/YY"):' ACCEPT high_date DATE FORMAT 'MM/DD/YY' - PROMPT 'Please enter the high date range ("MM/DD/YY"):' COLUMN EMPLOYEES FORMAT A25 SELECT ename || ', ' || job EMPLOYEES, hiredate FROM emp WHERE hiredate BETWEEN '&low_date' AND '&high_date' / UNDEFINE low_date UNDEFINE high_date COLUMN EMPLOYEES CLEAR SET VERIFY ON SET ECHO ON START p8q3.sql
4. Fes un script que mostri el nom, ofici i nom del departament. La condició de cerca no serà sensible a majúscules/minúscules. Salva el script com p8q4.sql.
EDIT p8q4.sql SET ECHO OFF SET VERIFY OFF ACCEPT p_location - PROMPT 'Please enter the location name:' COLUMN ename HEADING "EMPLOYEE NAME" FORMAT A15 COLUMN dname HEADING "DEPARTMENT NAME" FORMAT A15 SELECT e.ename, e.job, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno AND LOWER(d.loc) LIKE LOWER('%&p_location%') / UNDEFINE p_location COLUMN ename CLEAR COLUMN dname CLEAR SET VERIFY ON SET ECHO ON START p8q4.sql
5. Modifica el fitxer p8q4.sql per crear un informe amb el nom del departament, nom, data d'alta i salari anual, per a tots els empleats de determinada localitat. Pregunta a l'usuari per la localitat. Etiqueta les columnes segons el model. Salva el fitxer com p8q5.sql.
EDIT p8q5.sql SET ECHO OFF SET FEEDBACK OFF SET VERIFY OFF BREAK ON dname ACCEPT p_location - PROMPT 'Please enter the location name:' COLUMN dname HEADING "DEPARTMENT|NAME" FORMAT A15 COLUMN ename HEADING "EMPLOYEE|NAME" FORMAT A15 COLUMN hiredate HEADING "START|DATE" FORMAT A15 COLUMN sal HEADING "SALARY" FORMAT $99,990.00 COLUMN asal HEADING "ANNUAL|SALARY" FORMAT $99,990.00 SELECT d.dname, e.ename, e.hiredate, e.sal, e.sal * 12 asal FROM emp e, dept d WHERE e.deptno = d.deptno AND LOWER(d.loc) LIKE LOWER('%&p_location%') ORDER BY dname / UNDEFINE p_location COLUMN ename CLEAR COLUMN dname CLEAR COLUMN hiredate CLEAR COLUMN sal CLEAR COLUMN asal CLEAR CLEAR BREAK SET VERIFY ON SET FEEDBACK ON SET ECHO ON START p8q5.sql
Fes els següents informes utilitzant l'ordre BREAK.
6.
SET PAGES 20 BREAK ON dname COLUMN dname HEADING "DEPARTMENT|NAME" FORMAT A15 COLUMN ename HEADING "EMPLOYEE|NAME" FORMAT A15 select dname, ename from dept, emp where dept.deptno = emp.deptno order by dept.dname /
7.
SET PAGES 25 BREAK ON dname skip 2 COLUMN dname HEADING "DEPARTMENT|NAME" FORMAT A15 COLUMN ename HEADING "EMPLOYEE|NAME" FORMAT A15 select dname, ename from dept, emp where dept.deptno = emp.deptno order by dept.dname /
8.
SET PAGES 50 BREAK ON dname SKIP 3 ON job SKIP 2 COLUMN dname HEADING "DEPARTMENT|NAME" FORMAT A15 COLUMN job HEADING "EMPLOYEE|JOB" FORMAT A15 COLUMN ename HEADING "EMPLOYEE|NAME" FORMAT A15 select dept.dname, emp.job, emp.ename from dept, emp where dept.deptno = emp.deptno order by dept.dname, emp.job /