La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

La création de tables LE LANGAGE SQL : LDD Lordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,...

Présentations similaires


Présentation au sujet: "La création de tables LE LANGAGE SQL : LDD Lordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,..."— Transcription de la présentation:

1

2

3

4

5

6

7

8

9

10

11

12 La création de tables LE LANGAGE SQL : LDD Lordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,... ); CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,... );

13 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)

14 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)); CREATE TABLE TELEPHONE (NUMERO INTEGER, TYPE CHAR(2), MARQUE INTEGER, DATE_ACHAT DATE, PRIX DECIMAL (9,2), NUM_PROPRIETAIRE INTEGER, COULEUR VARCHAR(25));

15 LE LANGAGE SQL : LDD Exemple : CREATE TABLE TYPE_TEL ( TYPE CHAR(2), LIB_TYPE VARCHAR(25)); CREATE TABLE TYPE_TEL ( TYPE CHAR(2), LIB_TYPE VARCHAR(25)); CREATE TABLE MARQUE_TEL ( MARQUE INTEGER, LIB_MARQUE VARCHAR(25), PAYS VARCHAR(30)); CREATE TABLE MARQUE_TEL ( MARQUE INTEGER, LIB_MARQUE VARCHAR(25), PAYS VARCHAR(30));

16 LE LANGAGE SQL : LDD La suppression de tables Lordre DROP DROP TABLE nom_de_table; syntaxe DROP TABLE TELEPHONE;

17 LE LANGAGE SQL : LDD La modification de tables Lordre 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]; 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; Exemples : Ajouter une colonne : ALTER TABLE TELEPHONE ADD TELEP_NUM_PIN INTEGER; Supprimer une colonne : ALTER TABLE TELEPHONE DROP COLUMN TELEP_NUM_PIN;

18 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; puis supprimer la table initiale : DROP TABLE TELEPHONE;

19 LE LANGAGE SQL : LDD Les vues CREATE VIEW 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; 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;

20 Les index LE LANGAGE SQL : LDD CREATE [UNIQUE] INDEX ON [ASC|DESC], [ASC|DESC], CREATE [UNIQUE] INDEX ON [ASC|DESC], [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); Exemples : CREATE INDEX I2_TYPE ON TELEPHONE (TYPE); CREATE INDEX I3_TYPMAR ON TELEPHONE (TYPE, MARQUE); CREATE INDEX I4_COULEUR ON TELEPHONE (COULEUR DESC);

21 LE LANGAGE SQL : LDD La suppression dindex DROP INDEX DROP INDEX I2_TYPE; DROP INDEX I4_COULEUR; DROP INDEX I2_TYPE; DROP INDEX I4_COULEUR;

22 LE LANGAGE SQL : LDD Lintégrité des données Les contraintes dinté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 dinté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 dindiquer au SGBDR : quelle valeur par défaut à affecter à une colonne (DEFAULT), quune colonne ne peut pas être null (NOT NULL), quune colonne doit être unique (UNIQUE), ou coder un contrôle sur une colonne (CHECK). Les contraintes se substituent aux contrôles réalisés par programmes. Il existe plusieurs types de contrôles. Il est possible dindiquer au SGBDR : quelle valeur par défaut à affecter à une colonne (DEFAULT), quune colonne ne peut pas être null (NOT NULL), quune colonne doit être unique (UNIQUE), ou coder un contrôle sur une colonne (CHECK). PRIMARY KEY

23 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)); 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.

24 LE LANGAGE SQL : LDD Sil y a plusieurs colonnes qui composent la clé, il faudra utiliser la clause CONSTRAINT qui permet de déclarer une contrainte dinté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)); 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));

25 LE LANGAGE SQL : LDD La FOREIGN KEY Dans lexemple, il faut tout dabord créer une clé primaire sur la table TYPE_TEL et ensuite créer la clé étrangère dans la table TELEPHONE. Dans lexemple, il faut tout dabord créer une clé primaire sur la table TYPE_TEL et ensuite créer la clé étrangère dans la table TELEPHONE.

26 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 ); 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

27 LE LANGAGE SQL : LDD La clause « UNIQUE » Comme indiqué dans la section qui traite des PRIMARY KEY, la clause UNIQU E permet de préciser au SGBDR que la valeur de cette colonne ne doit pas être en doublon dans la table. Comme indiqué dans la section qui traite des PRIMARY KEY, la clause UNIQU E 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)); 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));

28 LE LANGAGE SQL : LDD CHECK Attention : la clause CHECK est implémentée dans MySQL mais na aucun effet Cette clause permet de réaliser toutes sortes de contrôles sur les colonnes dune table. Il faut lutiliser avec précaution car elle peut être source de problème de performances significatives. En effet, à chaque modification de la colonne, lordre est exécuté et peut ralentir sensiblement les mises à jour. Cette clause permet de réaliser toutes sortes de contrôles sur les colonnes dune table. Il faut lutiliser avec précaution car elle peut être source de problème de performances significatives. En effet, à chaque modification de la colonne, lordre 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)); 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));

29 LE LANGAGE SQL : LDD Exercices dapplication 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 le s colonnes GENRE1 associé à PAYS. À 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 le s colonnes GENRE1 associé à PAYS.

30 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); 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);

31 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. 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.

32 LE LANGAGE SQL : LDD Requête d'ajout de colonne. ALTER TABLE FILM ADD (NUM_REAL INTEGER); 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éalisateur DROP TABLE REALISATEUR; CREATE TABLE REALISATEUR (NUM_REAL INTEGER PRIMARY KEY, NOM VARCHAR(50)); –- AJOUT DE LA CONTRAINTE D INTEGRITE ALTER TABLE FILM ADD CONSTRAINT FK_REALISATEUR FOREIGN KEY (NUM_REAL) REFERENCES REALISATEUR; ajout d'une clé étrangère : –- Création de la table Réalisateur DROP TABLE REALISATEUR; CREATE TABLE REALISATEUR (NUM_REAL INTEGER PRIMARY KEY, NOM VARCHAR(50)); –- AJOUT DE LA CONTRAINTE D INTEGRITE ALTER TABLE FILM ADD CONSTRAINT FK_REALISATEUR FOREIGN KEY (NUM_REAL) REFERENCES REALISATEUR;

33 LE LANGAGE SQL : LDD Troisième exercice Créer une vue FILM2 à partir de la table FILM contenant les 4 premières colonnes d e la table FILM ainsi que la colonne RESUME. Supprimer cette vue. Créer une vue FILM2 à partir de la table FILM contenant les 4 premières colonnes d e la table FILM ainsi que la colonne RESUME. Supprimer cette vue.

34 LE LANGAGE SQL : LDD CREATE VIEW FILM2 AS SELECT IDENT_FILM, TITRE, GENRE1, RESUME FROM FILM; Supprimer cette vue. DROP VIEW FILM2; CREATE VIEW FILM2 AS SELECT IDENT_FILM, TITRE, GENRE1, RESUME FROM FILM; Supprimer cette vue. DROP VIEW FILM2; Mediaexport 7: LDD

35 LE LANGAGE SQL : LDD

36

37

38

39

40

41


Télécharger ppt "La création de tables LE LANGAGE SQL : LDD Lordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,..."

Présentations similaires


Annonces Google