Partager l'article ! Create TABLE Oracle: Création d'une TABLE Oracle avec l'ordre SQL CREATE TABLE. Comment créer une TABLE dans ma base ...
Comment créer une TABLE dans ma base de données Oracle ? .
Rappel :
• Pour créer une table dans votre schéma, il vous faut le privilège CREATE TABLE ou le privilège CREATE ANY TABLE.
• On crée une table avec la commande SQL CREATE TABLE.
• On modifie la structure d'une table avec la commande SQL ALTER TABLE.
• On supprime une table avec la commande SQL DROP TABLE.
• On vide totalement une table avec la commande SQL TRUNCATE TABLE.
SQL> GRANT CREATE TABLE TO SCOTT; Grant succeeded. SQL> GRANT CREATE ANY TABLE TO SCOTT; Grant succeeded. SQL> |
CREATE ANY TABLE autorise la création de tables dans tout schéma.
CREATE TABLE autorise la création de tables uniquement dans son schéma.
CREATE TABLE [ schema. ]table ( [ column datatype [DEFAULT expr] [NOT NULL][(inline_constraint | inline_ref_constraint )], column datatype... ], [table_constraint [,…]] [table_ref_constraint [,…]] ) [TABLESPACE nom_tablespace] [LOGGING | NOLOGGING] ... ; |
CREATE TABLE scott.vehicule
( vehicule_id NUMBER(6)
, vehicule_marque VARCHAR2(30) CONSTRAINT ck_vehic_marq_nn NOT NULL
, vehicule_modele VARCHAR2(30) CONSTRAINT ck_vehic_mod_nn NOT NULL
, date_sortie DATE
, vehicule_prix NUMBER(10,2)
, CONSTRAINT pk_vehicule_id PRIMARY KEY (vehicule_id)
)
TABLESPACE data;
|
SQL> COLUMN CONSTRAINT_NAME FORMAT A20 SQL> COLUMN INDEX_NAME FORMAT A20 SQL> COLUMN COLUMN_NAME FORMAT A15 SQL> SET LINESIZE 150 SQL> SELECT a.CONSTRAINT_NAME, 2 a.CONSTRAINT_TYPE, 3 a.INDEX_NAME, 4 b.COLUMN_NAME, 5 b.POSITION 6 FROM all_constraints a, all_cons_columns b 7 WHERE a.owner = 'SCOTT' 8 AND a.TABLE_NAME = 'VEHICULE' 9 AND a.CONSTRAINT_NAME = b.CONSTRAINT_NAME; CONSTRAINT_NAME C INDEX_NAME COLUMN_NAME POSITION -------------------- - -------------------- --------------- ---------- PK_VEHICULE_ID P PK_VEHICULE_ID VEHICULE_ID 1 CK_VEHIC_MOD_NN C VEHICULE_MODELE CK_VEHIC_MARQ_NN C VEHICULE_MARQUE SQL> |
CREATE TABLE scott.vehicule
( vehicule_id NUMBER(6)
, vehicule_marque VARCHAR2(30) DEFAULT 'RENAULT'
, vehicule_modele VARCHAR2(30)
, date_sortie DATE
, vehicule_prix NUMBER(10,2)
, CONSTRAINT pk_vehicule_id PRIMARY KEY (vehicule_id,
vehicule_marque,
vehicule_modele)
)
TABLESPACE data;
|
SQL> COLUMN CONSTRAINT_NAME FORMAT A20 SQL> COLUMN INDEX_NAME FORMAT A20 SQL> COLUMN COLUMN_NAME FORMAT A15 SQL> SET LINESIZE 150 SQL> SELECT a.CONSTRAINT_NAME, 2 a.CONSTRAINT_TYPE, 3 a.INDEX_NAME, 4 b.COLUMN_NAME, 5 b.POSITION 6 FROM all_constraints a, all_cons_columns b 7 WHERE a.owner = 'SCOTT' 8 AND a.TABLE_NAME = 'VEHICULE' 9 AND a.CONSTRAINT_NAME = b.CONSTRAINT_NAME; CONSTRAINT_NAME C INDEX_NAME COLUMN_NAME POSITION -------------------- - -------------------- --------------- ---------- PK_VEHICULE_ID P PK_VEHICULE_ID VEHICULE_ID 1 PK_VEHICULE_ID P PK_VEHICULE_ID VEHICULE_MARQUE 2 PK_VEHICULE_ID P PK_VEHICULE_ID VEHICULE_MODELE 3 SQL> |
CREATE TABLE scott.vehicule
( vehicule_id NUMBER(6)
, vehicule_marque VARCHAR2(30)
, vehicule_modele VARCHAR2(30)
, date_sortie DATE CONSTRAINT ck_vehic_date_nn NOT NULL
, vehicule_prix NUMBER(10,2) CONSTRAINT ck_vehic_prix_nn NOT NULL
, CONSTRAINT ck_vehic_prix_min CHECK (vehicule_prix > 0)
, CONSTRAINT un_vehicule_id UNIQUE (vehicule_id)
)
TABLESPACE data;
COMMENT ON COLUMN SCOTT.VEHICULE.VEHICULE_PRIX IS 'Prix neuf';
|
SQL> COLUMN CONSTRAINT_NAME FORMAT A20 SQL> COLUMN INDEX_NAME FORMAT A20 SQL> COLUMN COLUMN_NAME FORMAT A15 SQL> SET LINESIZE 150 SQL> SELECT a.CONSTRAINT_NAME, 2 a.CONSTRAINT_TYPE, 3 a.INDEX_NAME, 4 b.COLUMN_NAME, 5 b.POSITION 6 FROM all_constraints a, all_cons_columns b 7 WHERE a.owner = 'SCOTT' 8 AND a.TABLE_NAME = 'VEHICULE' 9 AND a.CONSTRAINT_NAME = b.CONSTRAINT_NAME; CONSTRAINT_NAME C INDEX_NAME COLUMN_NAME POSITION -------------------- - -------------------- --------------- ---------- UN_VEHICULE_ID U UN_VEHICULE_ID VEHICULE_ID 1 CK_VEHIC_PRIX_MIN C VEHICULE_PRIX CK_VEHIC_PRIX_NN C VEHICULE_PRIX CK_VEHIC_DATE_NN C DATE_SORTIE SQL> |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• Ajouter un champ de table Oracle ALTER TABLE
ADD • Modifier un champ de table Oracle ALTER TABLE MODIFY |