la création de tables le langage sql : ldd lordre create create table nom_de_table (nom_colonne...
Post on 03-Apr-2015
110 Views
Preview:
TRANSCRIPT
La création de tables
LE LANGAGE SQL : LDD
L’ordre CREATE
CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne, Nom_colonne Type_colonne, ... );
LE LANGAGE SQL : LDD
Exemple :
Voici 3 structures de tables :
TELEPHONE (NUMERO, #TYPE,#MARQUE,DATE_ACHAT, PRIX,NUM_PORTABLE,COULEUR)
MARQUE (MARQUE,LIB_MARQUE, PAYS)
TYPE_TEL(TYPE,LIB_TYPE)
LE LANGAGE SQL : LDD
Exemple :
CREATE TABLE TELEPHONE (NUMERO INTEGER , TYPE CHAR(2), MARQUE INTEGER, DATE_ACHAT DATE, PRIX DECIMAL (9,2), NUM_PROPRIETAIRE INTEGER, COULEUR VARCHAR(25));
LE LANGAGE SQL : LDD
Exemple :
CREATE TABLE TYPE_TEL (TYPE CHAR(2),
LIB_TYPE VARCHAR(25));
CREATE TABLE MARQUE_TEL (MARQUE INTEGER,
LIB_MARQUE VARCHAR(25), PAYS VARCHAR(30));
LE LANGAGE SQL : LDD
La suppression de tables
L’ordre DROP
DROP TABLE nom_de_table;
syntaxe
DROP TABLE TELEPHONE;
LE LANGAGE SQL : LDD
La modification de tables
L’ordre ALTER
ALTER TABLE nom_de_table [ADD nom_de_colonne Type_colonne] [,DROP COLUMN nom_de_colonne] [,ADD CONSTRAINT nom_contrainte] [,DROP CONSTRAINT nom_contrainte];
Exemples : Ajouter une colonne : ALTER TABLE TELEPHONE ADD TELEP_NUM_PIN INTEGER;
Supprimer une colonne :
ALTER TABLE TELEPHONE DROP COLUMN TELEP_NUM_PIN;
LE LANGAGE SQL : LDD
Renommer une table (RENAME)
RENAME nom_de_table_ancien TO nom_de_table_nouveau;
RENAME TELEPHONE TO SAV_TELEPHONE;
Attention : certains SGBDR ne connaissent pas cet ordre. Dans ce cas il faut créer une autre table avec la même structure comme ceci :
CREATE TABLE SAV_TELEPHONE AS SELECT * FROM TELEPHONE;
puis supprimer la table initiale : DROP TABLE TELEPHONE;
LE LANGAGE SQL : LDD
Les vues
CREATE VIEW <Nom_Vue> AS SELECT ...
Exemple : CREATE VIEW TEL_DATE AS SELECT TELEPHONE.DATE_ACHAT, TELEPHONE.TYPE , TYPE_TEL.LIB_TYPE, TELEPHONE.MARQUE ,MARQUE_TEL.LIB_MARQUE
FROM TELEPHONE, TYPE_TEL, MARQUE_TEL
WHERE TELEPHONE.TYPE = TYPE_TEL.TYPE AND TELEPHONE.MARQUE = MARQUE_TEL.MARQUE;
Les index
LE LANGAGE SQL : LDD
CREATE [UNIQUE] INDEX <nom index> ON <nom table> <nom colonne 1> [ASC|DESC], <nom colonne 2> [ASC|DESC], ... ...
Exemples : CREATE INDEX I2_TYPE ON TELEPHONE (TYPE); CREATE INDEX I3_TYPMAR ON TELEPHONE (TYPE, MARQUE); CREATE INDEX I4_COULEUR ON TELEPHONE (COULEUR DESC);
LE LANGAGE SQL : LDD
La suppression d’index
DROP INDEX <nom_index>
DROP INDEX I2_TYPE; DROP INDEX I4_COULEUR;
LE LANGAGE SQL : LDD
L’intégrité des données
Les contraintes d’intégrité permettent de maintenir la base cohérente. On confie au SGBDR les tâches de contrôle de la validité des données qui sont insérées.
Les contraintes se substituent aux contrôles réalisés par programmes. Il existe plusieurs types de contrôles. Il est possible d’indiquer au SGBDR : quelle valeur par défaut à affecter à une colonne (DEFAULT), qu’une colonne ne peut pas être null (NOT NULL), qu’une colonne doit être unique (UNIQUE), ou coder un contrôle sur une colonne (CHECK).
PRIMARY KEY
LE LANGAGE SQL : LDD
CREATE TABLE TELEPHONE (NUMERO INTEGER PRIMARY KEY,
TYPE VARCHAR(2), MARQUE INTEGER, DATE_ACHAT DATE, PRIX DECIMAL(9,2), NUM_PROPRIETAIRE INTEGER, COULEUR VARCHAR(25));
Exemple : déclaration de PRIMARY KEY sur une colonne
Automatiquement la colonne numéro sera NOT NULL et UNIQUE.
LE LANGAGE SQL : LDD
S’il y a plusieurs colonnes qui composent la clé, il faudra utiliser la clause CONSTRAINT qui permet de déclarer une contrainte d’intégrité.
CREATE TABLE TELEPHONE (NUMERO INTEGER ,
TYPE VARCHAR(2), MARQUE INTEGER, DATE_ACHAT DATE, PRIX DECIMAL(9,2), NUM_PROPRIETAIRE INTEGER, COULEUR VARCHAR(25), CONSTRAINT PK_TELEPHONE PRIMARY KEY (NUMERO,TYPE,MARQUE));
LE LANGAGE SQL : LDD
La FOREIGN KEY
Dans l’exemple, il faut tout d’abord créer une clé primaire sur la table TYPE_TEL et ensuite créer la clé étrangère dans la table TELEPHONE.
LE LANGAGE SQL : LDD
ALTER TABLE TYPE_TEL ADD CONSTRAINT PK_TELEPHONE PRIMARY KEY (TYPE); CREATE TABLE TELEPHONE (NUMERO INTEGER , TYPE VARCHAR(2), MARQUE INTEGER, DATE_ACHAT DATE, PRIX DECIMAL(9,2), NUM_PROPRIETAIRE INTEGER, COULEUR VARCHAR(25), CONSTRAINT FK_TYPE FOREIGN KEY (TYPE) REFERENCES TYPE_TEL );
La FOREIGN KEY
LE LANGAGE SQL : LDD
La clause « UNIQUE »
Comme indiqué dans la section qui traite des PRIMARY KEY, la clause UNIQUE permet de préciser au SGBDR que la valeur de cette colonne ne doit pas être en doublon dans la table.
CREATE TABLE TELEPHONE (NUMERO INTEGER PRIMARY KEY,
TYPE VARCHAR(2) DEFAULT ’AU’, MARQUE INTEGER, DATE_ACHAT DATE DEFAULT CURRENT_DATE, PRIX DECIMAL(9,2) DEFAULT 0, NUM_PROPRIETAIRE INTEGER UNIQUE, COULEUR VARCHAR(25));
LE LANGAGE SQL : LDD
CHECK
Attention : la clause CHECK est implémentée dans MySQL mais n’a aucun effet
Cette clause permet de réaliser toutes sortes de contrôles sur les colonnes d’une table. Il faut l’utiliser avec précaution car elle peut être source de problème de performances significatives. En effet, à chaque modification de la colonne, l’ordre est exécuté et peut ralentir sensiblement les mises à jour. CREATE TABLE TELEPHONE (
NUMERO INTEGER PRIMARY KEY, TYPE VARCHAR(2) CHECK (VALUE IN (SELECT TYPE FROM TYPE_TEL)),
MARQUE INTEGER CHECK (VALUE BETWEEN 1 AND 99), DATE_ACHAT DATE, PRIX DECIMAL(9,2) CHECK (VALUE > 0), NUM_PROPRIETAIRE INTEGER,
COULEUR VARCHAR(25));
LE LANGAGE SQL : LDD
Exercices d’application
Premier exercice
À partir du contenu de ce tableau, écrire la syntaxe de création de la table FILM. Mettre un index primaire sur la colonnes IDENT_FILM puis un index non unique sur les colonnes GENRE1 associé à PAYS.
LE LANGAGE SQL : LDD
CREATE TABLE FILM (IDENT_FILM INTEGER PRIMARY KEY,TITRE VARCHAR(50),GENRE1 VARCHAR(20),RECETTE DECIMAL(15,2),DATE_SORTIE DATE,PAYS SMALLINT,NB_ENTREE INTEGER,RESUME VARCHAR(2000),DATE_SAISIE TIMESTAMP
);
Requête de création d'index
CREATE INDEX I2_GENREPAYS ON FILM (GENRE1, PAYS);
LE LANGAGE SQL : LDD
Deuxième exercice
Ajouter une colonne complémentaire nommée NUM_REAL. Cette colonne est une clé externe sur la table REALISATEUR. Ajouter une valeur par défaut sur la colonne RECETTE avec la valeur 0. Mettre les colonnes TITRE et PAYS en NOT NULL. Supprimer la contrainte.
LE LANGAGE SQL : LDD
Requête d'ajout de colonne.ALTER TABLE FILM ADD (NUM_REAL INTEGER);
ajout d'une clé étrangère :
–- Création de la table RéalisateurDROP TABLE REALISATEUR;CREATE TABLE REALISATEUR(NUM_REAL INTEGER PRIMARY KEY,NOM VARCHAR(50));
–- AJOUT DE LA CONTRAINTE D INTEGRITEALTER TABLE FILM ADD CONSTRAINT FK_REALISATEUR FOREIGN KEY (NUM_REAL) REFERENCES REALISATEUR;
LE LANGAGE SQL : LDD
Troisième exercice
Créer une vue FILM2 à partir de la table FILM contenant les 4 premières colonnes de la table FILM ainsi que la colonne RESUME. Supprimer cette vue.
LE LANGAGE SQL : LDD
CREATE VIEW FILM2 AS SELECT IDENT_FILM, TITRE, GENRE1, RESUME FROM FILM;
Supprimer cette vue.
DROP VIEW FILM2;
Mediaexport 7: LDD
LE LANGAGE SQL : LDD
LE LANGAGE SQL : LDD
LE LANGAGE SQL : LDD
LE LANGAGE SQL : LDD
LE LANGAGE SQL : LDD
LE LANGAGE SQL : LDD
LE LANGAGE SQL : LDD
top related