Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBenvenuto Gagliardi Modificato 10 anni fa
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 allutente 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 lALTER 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 lalter 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 unaltra 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 delloggetto
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 (è unistruzione 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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.