Notes Oracle

Requêtes et commandes Oracle courtes pour gérer les tables, modifier les colonnes et vérifier l’espace.

Créer et modifier des tables

Créer une table

La clé primaire identifie chaque tâche.

CREATE TABLE demo_tasks (
  task_id NUMBER PRIMARY KEY,
  title VARCHAR2(100 CHAR) NOT NULL
);

Ajouter une colonne

Les tâches existantes ont une échéance nulle.

ALTER TABLE demo_tasks ADD (due_on DATE);

Élargir une colonne

Le titre peut désormais contenir 200 caractères au lieu de 100.

ALTER TABLE demo_tasks MODIFY (title VARCHAR2(200 CHAR));

Renommer une colonne

Mettez également à jour les requêtes qui utilisent l’ancien nom.

ALTER TABLE demo_tasks RENAME COLUMN due_on TO due_date;

Supprimer une colonne

Les valeurs de la colonne sont perdues. Oracle valide automatiquement les changements de structure et ROLLBACK ne restaure pas la colonne.

ALTER TABLE demo_tasks DROP COLUMN due_date;

Examiner la structure d’une table

Dans SQL*Plus ou SQLcl, DESCRIBE affiche les colonnes, leurs types et l’autorisation des valeurs nulles.

DESCRIBE demo_tasks

Travailler avec les lignes

Insérer et consulter une ligne

COMMIT valide l’insertion. La requête retrouve la tâche par sa clé primaire.

INSERT INTO demo_tasks (task_id, title) VALUES (1, 'Review documentation');
COMMIT;
SELECT task_id, title FROM demo_tasks WHERE task_id = 1;

Mettre à jour une ligne

Vérifiez d’abord quelle ligne correspond à WHERE. Avec la validation automatique désactivée, choisissez COMMIT ou ROLLBACK après vérification.

SELECT task_id, title FROM demo_tasks WHERE task_id = 1;
UPDATE demo_tasks SET title = 'Publish documentation' WHERE task_id = 1;

Consulter l’espace

Voir la taille de chaque tablespace

Additionne la taille actuelle des fichiers de données de chaque tablespace. Les tablespaces temporaires sont exclus et la requête nécessite l’accès à DBA_DATA_FILES.

SELECT tablespace_name, ROUND(SUM(bytes) / POWER(1024, 2), 1) AS allocated_mib
FROM dba_data_files
GROUP BY tablespace_name
ORDER BY allocated_mib DESC;

Voir le pourcentage d’utilisation

Le pourcentage se base sur la taille maximale possible, qui peut inclure l’extension automatique. Il faut avoir accès à la vue du dictionnaire.

SELECT tablespace_name, ROUND(used_percent, 1) AS used_pct
FROM dba_tablespace_usage_metrics
ORDER BY used_pct DESC;

Voir l’espace occupé par une table

Affiche l’espace alloué à la table d’exemple dans votre schéma. Les index et les LOB sont stockés dans des segments distincts.

SELECT segment_name, ROUND(bytes / POWER(1024, 2), 1) AS allocated_mib
FROM user_segments
WHERE segment_name = 'DEMO_TASKS' AND segment_type = 'TABLE';