DAM - DAW - MP 0484 Bases de Dades - NF3
Pràctica 13: - DDL
Aquesta pràctica la podem realitzar a la base test.
-
Crea una taula
DEPTSbasant-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; -
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 (.)
ExempleSELECT 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ó
SUBSTRINGper agafar només els 25 primers caràcters deDEPARTMENT_NAMEja que aquest pot ser de fins a 30 caràcters i podria no cabre en els 25 deNAMEi donaria error -
Crea una taula
EMPbasant-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; -
Modifica la taula
EMPper 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; -
Comprova que les taules
DEPTSiEMPs'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'); -
Crea la taula
EMPLOYEES2basant-te en l'estructura de la taulaEMPLOYEES. Inclou només les columnesEMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARYiDEPT_ID.Possible solució
CREATE TABLE employees2 AS SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, DEPARTMENT_ID FROM empresa.employees; -
Elimina la taula EMP.
Possible solució
DROP TABLE EMP; -
Canvia el nom de la taula
EMPLOYEES2aEMP2.Possible solució
ALTER TABLE employees2 RENAME TO emp2; -
Afegeix un comentari a les definicions de les taules
DEPTSiEMPque 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'; -
Elimina la columna
FIRST_NAMEde la taulaEMP. Confirma la modificació comprovant la descripció de la taula.Possible solució
ALTER TABLE EMP DROP COLUMN FIRST_NAME; DESCRIBE emp;