Salta el contingut

DAM - DAW - MP 0484 Bases de Dades - NF3

Pràctica 13: - DDL

Aquesta pràctica la podem realitzar a la base test.

  1. Crea una taula DEPTS basant-te en la següent informació. Confirma que s'ha creat la taula.

    Nom Columna Tipus de clau Nul/Únic Taula de claus foranes Columna de claus foranes Tipus de dada Longitud
    ID INT 7
    NAME VARCHAR 25

    En MariaDB i MySQL, la longitud dels numeros no es té en compte. Mana el tipus.

    Possible Solució
    CREATE TABLE DEPTS(
           ID   INT(7) ,
           NAME VARCHAR(25) 
    );
    DESCRIBE DEPTS;
    
  2. Omple la taula DEPTS. Amb dades de la taula DEPARTMENTS. Posa-hi només les columnes que calgui.

    Podem fer referència a taules d'altres bases de dades afegint, davant el nom de la taula, el nom de la base de dades i un punt (.)

    Exemple
    SELECT COUNT(*) FROM empresa.employees;
    
    Possible Solució
    INSERT INTO depts
    SELECT DEPARTMENT_ID, SUBSTRING(DEPARTMENT_NAME, 1, 25)
           FROM EMPRESA.DEPARTMENTS;
    
    Fixeu-vos com utilitzem la funció SUBSTRING per agafar només els 25 primers caràcters de DEPARTMENT_NAME ja que aquest pot ser de fins a 30 caràcters i podria no cabre en els 25 de NAME i donaria error
  3. Crea una taula EMP basant-te en la següent informació. Confirma que s'ha creat la taula.

    Nom Columna Tipus de clau Nul/Únic Taula de claus foranes Columna de claus foranes Tipus de dada Longitud
    ID INT 7
    LAST_NAME VARCHAR 25
    FIRST_NAME VARCHAR 25
    DEPT_ID INT 7
    Possible solució
    CREATE TABLE EMP(
           ID   INT(7),
           LAST_NAME VARCHAR(25),
           FIRST_NAME VARCHAR(25),
           DEPT_ID INT(7)
    );
    DESCRIBE EMP;
    
  4. Modifica la taula EMP per a permetre un cognom d'empleat més llarg, de fins a 50 caràcters. Comprova la modificació.

    Possible solució
    ALTER TABLE EMP
          MODIFY LAST_NAME VARCHAR(50);
    DESCRIBE EMP;
    
  5. Comprova que les taules DEPTS i EMP s'emmagatzemen al diccionari de dades. (indicació: INFOMATION_SCHEMA.TABLES (table_schema = 'base de dades'))

    Possible solució
    SELECT table_schema, table_name
    FROM information_schema.tables
    WHERE table_name IN ('EMP','DEPTS');
    
  6. Crea la taula EMPLOYEES2 basant-te en l'estructura de la taula EMPLOYEES. Inclou només les columnes EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY i DEPT_ID.

    Possible solució
    CREATE TABLE employees2
    AS SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, DEPARTMENT_ID 
       FROM empresa.employees;
    
  7. Elimina la taula EMP.

    Possible solució
    DROP TABLE EMP;
    
  8. Canvia el nom de la taula EMPLOYEES2 a EMP2.

    Possible solució
    ALTER TABLE employees2 RENAME TO emp2;
    
  9. Afegeix un comentari a les definicions de les taules DEPTS i EMP que descrigui les taules. Confirma-ho al diccionari de dades.

    Possible solució
    ALTER TABLE emp COMMENT = 'Taula pels Empleats';
    ALTER TABLE depts COMMENT = 'Taula pels Departaments';
    
  10. Elimina la columna FIRST_NAME de la taula EMP. Confirma la modificació comprovant la descripció de la taula.

    Possible solució
    ALTER TABLE EMP DROP COLUMN FIRST_NAME;
    DESCRIBE emp;