Skip to content

Instantly share code, notes, and snippets.

@nkaurelien
Last active February 27, 2024 15:31
Show Gist options
  • Save nkaurelien/7b765a9ccbab9418706651d30ed5aeed to your computer and use it in GitHub Desktop.
Save nkaurelien/7b765a9ccbab9418706651d30ed5aeed to your computer and use it in GitHub Desktop.

INSTALLATION

COMMANDES

  1. Lancer sqlplus : le client shell de oracle
 sqlplus /nolog
  1. Se conncter a sysdba
connect /as sysdba;

connect sys/ as sysdba
show user;

Affiche USER est "SYS"

  1. se connecter a la BD
select name from  v$DATABASE;

pour connaitre la version de oracle

SELECT * FROM v$version;
  1. Affichage des table spaces

ce sont des aliases sur les fichies system

select tablespace_name from dba_tablespaces;
select tablespace_name, file_name from dba_data_files;
create tablespace TBS_DATA datafile 'C:\ORACLE\ORADATA\XE\DATA_01.DBF' size 2M autoextend ON maxsize 50M;
  1. pour afficher le nom de la BD
select name from  v$DATABASE;
  1. Creation de Users

Signature create user {username} identified by {motdepasse} default tablespace {latablespace}

create user nkaurelien identified by nkaurelien0 default tablespace tbs_data;
alter user nkaurelien identified by nkaurelien0;

Pour la version 18c, il d'abord lancer la commande suivante

alter session set "_ORACLE_SCRIPT"=true;
  1. designer le tablespace pour les operations de tri

modifier l'utilisateur pour executer les operations de tri (ORDER BY, GROUP BY, UNION, ) dans le tablespace temp

alter user nkaurelien temporary tablespace temp;
  1. donner le role dba(admin) a notre user et se connecter a notre compte
grant dba to nkaurelien;
connect nkaurelien/nkaurelien0;
show user;
  1. Afficher la liste de tables

    • pour voir mes tables
select table_name, tablespace_name from user_tables;
- pour voir les tables du dba (de l'admin db)
select table_name, tablespace_name from dba_tables;
- pour voir les tables du dba et celles qui m'ont ete attribuées
select table_name, tablespace_name from all_tables;
  1. Creation des index

create index idx_ord_cust_id on orders(cust_id);

la bonne pratique demande de creer les index et les tables dans des tablespaces separés

create tablespace TBS_INDEX datafile 'C:\ORACLE\ORADATA\XE\INDEX_01.DBF' size 2M autoextend ON maxsize 50M;

create  index  idx_ord_cust_id on orders(cust_id) tablespaces tbs_index; 

select index_name from user_indexes;
select index_name from dba_indexes;
select index_name from dba_indexes;
desc dba_indexes;

NB: lors de la creation avec les commandes CREATE, le system genere un nom sous la forme 'SYS_%' exemple 'SYS_5135665'

Il est preferable de bien separar les instructions de creation de table des celles de indexes , des sequences et etc...,

Creons les tables et ensuite ajoutons les contraintes avec le ALTER, ca rend le script maintenable et les noms des objets ( index) sont clair et ont un sens pour le developpeurs.

  1. Raccourci
  • l: pour afficher la dernier commande en tampon.
  • r: rappeler la memoire tampon
  • c: pour corriger le texte en tampon, il faut saisir le
  1. Generation de script
  • exemple
select 'ALTER INDEX'||index_name||'REBUILD TABLESPACE tbs_index'||char(10) from dba_indexes  where owner = 'DWA';
  • Generer les instructions de creation des index sur le
select lower('CREATE index idx_'|| substr(cons.TABLE_NAME, 1, 5) || '_' || cons.COLUMN_NAME ||' ON '|| cons.TABLE_NAME||'('|| cons.COLUMN_NAME ||');')
from user_cons_columns cons join user_constraints using (constraint_name) 
where  constraint_type ='R';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment