1 / 20

Creazione e manipolazione tabelle

Creazione e manipolazione tabelle. TABELLE una tabella può essere creata in qualsiasi momento,anche quando gli utenti stanno usando il database la struttura della tabella può essere modificata online. REGOLE PER I NOMI

kumiko
Download Presentation

Creazione e manipolazione tabelle

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Creazione e manipolazione tabelle

  2. TABELLE • una tabella può essere creata in qualsiasi • momento,anche quando gli utenti stanno • usando il database • la struttura della tabella può essere modificata • online

  3. REGOLE PER I NOMI Le regole valgono sia per i nomi di colonna che per i nomi di tabella : - devono iniziare con una lettera - la lunghezza varia da 1 a 30 caratteri - può contenere solo caratteri tra A-Z, a-z,0-9, _, $ e # - non è possibile duplicare il nome di un altro oggetto con lo stesso utente

  4. CREATE TABLE CREATE TABLE [schema].tabella (colonna datatype [DEFAULT expr] [,…]); Uno schema è una collezione di oggetti. Se una tabella non appartiene all’utente con cui siamo collegati, il proprietario deve essere specificato SELECT * FROM user_b.employees;

  5. DEFAULT • È possibile specificare una valore di default per le colonne • …hire_date DEFAULT SYSDATE • si possono usare come default caratteri, espressioni o funzioni SQL • Non si possono usare altre colonne o pseudocolonne (SYSDATE, USER) • Il tipo del valore di default deve essere lo stesso della colonna in cui verrà inserito

  6. CREATE TABLE CREATE TABLE dept (deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13));

  7. CREATE TABLE È possibile creare una tabella e inserire le righe combinando lo statement CREATE TABLE con la clausola AS subquery CREATE TABLE dept80 AS SELECT employee_id, last_name. salary*12 ANNSAL, hire_date FROM employees WHERE department_id = 80;

  8. CREATE TABLE • Il numero delle colonne della tabella in cui inserire e quella sorgente devono avere lo stesso numero di colonne e lo stesso tipo • se nella CREATE TABLE vengono specificate le colonne, il numero di colonne deve essere uguale al numero si colonne nella SELECT list • se non vengono specificate di assumeranno le colonne della SELECT list • creando la tabella in questo modo vengono passati soltanto i tipi delle colonne e non i vincoli di integrità

  9. ALTER TABLE • Utilizzare questo statement per: • aggiungere nuove colonne nelle tabelle • modificare una colonna esistente • definire una DEFAULT value per una nuova colonna • cancellare una colonna

  10. ALTER TABLE ALTER TABLE table ADD (colonna datatype [DEFAULT espr] [, colonna datatype]…); ALTER TABLE table MODIFY (colonna datatype [DEFAULT espr] [, colonna datatype]…); ALTER TABLE table DROP COLUMN (colonna);

  11. ALTER TABLE – aggiungere una colonna ALTER TABLE dept80 ADD (job_id VARCHAR2(9)); La nuova colonna viene inserita come ultima tabella. Non è possibile specificare dove posizionare la colonna.

  12. ALTER TABLE – modificare una colonna • ALTER TABLE dept80 • MODIFY (last_name VARCHAR2(30)); • le modifiche possono avvenire la tipo, alla dimensione, o al vaore di default. • è sempre possibile aumentare la dimensione di una colonna ma è possibile diminuire solo se la tabella è vuota o la colonna contiene solo valori nulli • è possibile cambiare il tipo di una colonna solo se contiene valori nulli • è possibile convertire una colonna CHAR in VARCHAR2 o viceversa solo se la colonna contiene valori nulli o se non viene cambiata la dimensione • cambiare una colonna con un default influirà solo sui record inseriti successivamente l’ALTER TABLE

  13. ALTER TABLE – cancellare una colonna • ALTER TABLE dept80 • DROP COLUMN job_id); • statement valido a partire dalla versione 8i • la colonna non deve essere necessariamente vuota • dopo l’alter table deve rimanere almeno una colonna nella tabella • una volta cancellata la colonna è definitivamente persa

  14. SET UNUSED ALTER TABLE table SET UNUSED (colonna); O ALTER TABLE table SET UNUSED COLUMN; È possibile usare: ALTER TABLE table DROP UNUSED COLUMNS;

  15. SET UNUSED • Lo scopo di UNUSED è preparare la colonna per essere cancellata magari in un momento di basso utilizzo del sistema. • Disponibile dalla versione 8i • Lo stato di UNUSED non rimuove la colonna dalla tabella ma tratta la colonna come se effettivamente non esistesse: • - non è possibile fare restore della tabella • - non è possibile accedere alla colonna • - con la SELECT nonè possibile visualizzare i dati della • colonna • - la colonna non appare nella DESCRIBE • - è possibile aggiungere un’altra colonna con lo stesso • nome

  16. CANCELLARE UNA TABELLA • DROP TABLE dept80; • tutti i dati e la struttura vengono cancellati • tutte le transazioni pendenti sono committate • tutti gli indici sono cancellati • non è possibile fare rollback della DROP TABLE • le viste e i sinonimi non vengono canellati ma sono ivalidi • solo il proprietario della tabella o un utente con il privilegio di DROP ANY TABLE può cancellare una tabella

  17. RINOMINARE UN OGGETTO • RENAME dept TO detail_dept; • usato per cambiare il nome a tabelle, viste, sequence o sinonimi • occorre essere il propietario dell’oggetto

  18. TRUNCATE • TRUNCATE TABLE detail_dept; • cancella tutte le righe di una tabella • rilascia lo spazio di memoria usato dalla tabella • non è possibile fare rollback (è un’istruzione DDL) • occorre essere il proprietario della tabella e avere privilegi di DELETE TABLE per effettuare una truncate • differisce dalla DELETE perché cancella le righe dalla tabella ma la prima non rilascia lo spazio di memoria

  19. TRUNCATE • TRUNCATE TABLE detail_dept; • è molto più veloce della DELETE perché: • - essendo uno statement DDL quindi non genera • informazioni di rollback • - facendo la truncate non partono i trigger di • cancellazione della tabella

  20. AGGIUNGERE COMMENTI A UNA TABELLA • COMMENT ON TABLE | COLUMNS employees • IS ‘Employees Information’; • è possibile aggiungere un commento a tabelle o colonne • i commenti sono disponibili sulle tabellle del dizionario dati: • ALL_COL_COMMENTS • USER_COL_COMMENTS • ALL_TAB_COMMENTS • USER_TAB_COMMENTS

More Related