Base de données

publicité
Bases de données
et
SGBD relationnels
Bases de données et SGBD relationnels (1)

Une base de données représente





un ensemble de données d’entreprise,
mémorisé par un ordinateur,
organisé selon un modèle de données
accessible à de nombreuses personnes.
Un Système de Gestion de Bases de Données
(SGBD) représente


un ensemble coordonné de logiciels
permettant de décrire, mémoriser, manipuler, traiter,
interroger les ensembles de données constituant la base.
2
Bases de données et SGBD relationnels (2)

Un SGBD doit satisfaire 5 conditions :
 être une bonne représentation du monde réel,
fiable et à jour : des contraintes d’intégrité doivent
assurer un état cohérent de la base.
 assurer la non-redondance de l’information :
une information doit être implantée une et une
seule fois.
 maintenir l’indépendance des programmes par
rapport aux données, permettant aux
applications de partager les mêmes données.
3
Bases de données et SGBD relationnels (3)

assurer la sécurité et la confidentialité des
données : les données doivent être protégées
contre les accès non autorisés et contre les
pannes intempestives.

autoriser le partage des données, permettant à
plusieurs utilisateurs de modifier des données
quasiment en même temps tout en assurant un
résultat cohérent pour un utilisateur consultant la
base.
4
Historique des SGBD (1)

Première génération (années 70)
hiérarchique ou modèle en réseau.
:
modèle

Modèle hiérarchique : les données sont représentées sous
forme d’une hiérarchie arborescente à plusieurs niveaux.
Chaque niveau est constitué d’un ou de plusieurs groupes
de données pouvant se décomposer à leur tour.

Modèle en réseau : extension du précédent, où les liens
entre
objets
peuvent
exister
sans
restrictions,
indépendamment de la structure de l’arbre.
5
Historique des SGBD (2)


Deuxième génération (années 80) : modèle
relationnel.
 Les données sont représentées sous forme
tabulaire, avec indépendance totale entre les
logiciels et le support de stockage.
 Langages spécifiques permettant d’accéder aux
données de manière assez naturelle : QBE, SQL.
 Quelques SGBD relationnels : ORACLE, INGRES,
SYBASE, DBASE2, ACCESS, mySQL.
Troisième génération (fin des années 90) : modèle
objets.
 SGBD objets : O2, ORACLE.
6
Objectifs d’un modèle relationnel

Les principaux objectifs d’un modèle relationnel
sont :
 utiliser des structures de données simples


proposer des langages permettant d’accéder aux
données de manière assez naturelle



une table relationnelle est un tableau
QBE, SQL
proposer l’indépendance entre les données et
les traitements exécutés sur ces données
permettre à chaque utilisateur d’avoir une vue de
la base de données appropriée à ses besoins.
7
Le modèle relationnel (1)




Le concept de base du modèle relationnel est la
relation, de structure tabulaire
Une relation a plusieurs attributs
Le degré de la relation est le nombre de ces
attributs
Exemple : la relation PRODUIT, de degré 3,
comporte
les
attributs
:
num_produit,
nom_produit et stock
num_produit
N101
N201
N251
N541
…
nom_produit
table
chaise
fauteuil
lit
…
…
stock
25
120
36
12
8
Le modèle relationnel (3)

On représente symboliquement une relation R
par un schéma SR de la forme :
R(clé, attribut 2, attribut 3, …, attribut n).

On aura donc :
PRODUIT(num_produit, nom_produit, stock).
9
Exemple de base de données relationnelle (1)

Relation VOL (numvol, depart, arrivee, numav,
numpil, jdep, hdep, jarr, harr)
numvol : numéro du vol (clé)
arrivee : ville d’arrivée
numpil : numéro du pilote
hdep : heure de départ
harr : heure d’arrivée
NUMVOL
V0001
V0002
V0003
V0004
V0005
V0006
V0007
V0008
V0009
V0010
DEPART
Paris
Londres
Berlin
Londres
Bruxelles
Berlin
Paris
New York
Paris
Berlin
ARRIVEE
San Francisco
Moscou
Madrid
Madrid
Rome
Amsterdam
Bruxelles
Paris
Bruxelles
Madrid
NUMAV
A0001
A0003
A0002
A0004
A0006
A0005
A0001
A0001
A0004
A0002
NUMPIL
P0002
P0001
P0003
P0006
P0005
P0001
P0002
P0003
P0006
P0004
depart : ville de départ
numav : numéro d’avion
jdep : jour de départ (clé)
jarr : jour d’arrivée
JDEP
15/05/2004
15/05/2004
15/05/2004
16/05/2004
16/05/2004
16/05/2004
16/05/2004
17/05/2004
17/05/2004
17/05/2004
HDEP
10:00
10:30
11:15
06:20
10:00
14:30
18:00
03:00
06:00
08:00
JARR
16/05/2004
15/05/2004
15/05/2004
16/05/2004
16/05/2004
16/05/2004
16/05/2004
17/05/2004
17/05/2004
17/05/2004
HARR
09:30
17:00
18:00
09:30
15:10
17:00
20:00
21:30
07:00
11:00
10
Exemple de base de données relationnelle (2)

Relation PILOTE(numpilote, nom, prenom)
NUMPILOTE
numpilote : numéro du pilote (clé) P0001
P0002
nom : nom du pilote
P0003
P0004
prenom : prénom du pilote
P0005
P0006

NOM
Dupuis
Simon
François
André
Arthur
Mathieu
PRENOM
Antoine
Georges
Luc
Georges
Louis
François
Relation AVION(numavion, type, cap)
numavion : numéro de l’avion (clé)
type : type de l’avion
NUMAVION
A0001
cap : capacité de l’avion
A0002
A0003
A0004
A0005
A0006
TYPE
Boeing 747
Airbus 320
Airbus 300
Boeing 737
DC 10
Boeing 747
CAP
420
300
280
250
120
410
11
Exemple de base de données relationnelle (3)

Les liens entre ces relations sont appelés des
jointures :
 l’attribut NUMAV de VOL représente le même type
d’information que l’attribut NUMAVION de AVION.
On écrira :
VOL.NUMAV = AVION.NUMAVION
 l’attribut NUMPIL de VOL représente le même
type d’information que l’attribut NUMPILOTE de
PILOTE. On écrira :
VOL.NUMPIL = PILOTE.NUMPILOTE
12
SQL
Structured Query Language
Introduction
Interrogation simple
Création de table
Manipulation des n-uplets
Introduction
Questions ?
Qu’est ce que Structured Query Language ?
Comment l’utiliser ?
SQL

Définition


Langage pour accéder aux données gérées par
les SGBD
Peut être associé avec d’autres langages (c++,
java, PHP, …),


Langage déclaratif (non procédural) dérivé du
calcul relationnel



Encapsulation de SQL dans un autre langage
déclarer ce que l’on veut
Langage standard
Chaque implémentation de SQL a de légères
variantes
15
SQL

3 sous langages

Langage de Manipulation de Données (LMD)
Permet d’insérer des n-uplets, de modifier leur valeur, de
les supprimer
 Permet d’interroger le SGBD : requêtes


Langage de définition de données (LDD)


Permet de créer des tables de les modifier et les
supprimer de les renommer
Langage de contrôle de données (LCD)

Permet de gérer le contrôle d’accès aux données des
différents utilisateurs
16
SQL

Vue


Contrainte


Permet de définir des contraintes sur les valeurs des
données
Indexation et regroupement (cluster)


Permet de définir des représentations pour différents
utilisateurs
Permet d’utiliser des mécanisme pour accélérer l’accès aux
données
Transaction


Permet de regrouper des commandes SQL
Permet de définir des points de retour à des moments ou les
valeurs des données étaient cohérentes
17
Tables d’exemples

Table EMP

La table des employés EMP qui a le schéma
suivant


EMP (NUMERO, NOM, JOB, MRG, HIREDATE,
SALAIRE, COMM, DEPTNO)
Table DEP

La table des départements DEPT qui a le schéma
suivant

DEPT (DEPTNO, DNAME, LOC)
18
Table d’exemple : EMP
EMPNO
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844 7876
7900
7902
7934
ENAME
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
JOB
MGR
CLERK
7902
SALESMAN 7698
SALESMAN 7698
MANAGER 7839
SALESMAN 7698
MANAGER 7839
MANAGER 7839
ANALYST 7566
PRESIDENT
SALESMAN 7698
CLERK
7788
CLERK
7698
ANALYST 7566
CLERK
7782
HIREDATE
17-DEC-80
20-FEB-81
22-FEB-81
02-APR-81
28-SEP-81
01-MAY-81
09-JUN-81
09-DEC-82
17-NOV-81
08-SEP-81
12-JAN-83
03-DEC-81
03-DEC-81
23-JAN-82
SAL
800
1600
1250
2975
1250
2850
3000
3000
5000
1500
1100
950
3000
1300
COMM
300
500
1400
DEPTNO
20
30
30
20
30
30
10
20
10
30
20
30
20
10
19
Table d’exemple : DEPT
DEPTNO DNAME
LOC
10
ACCOUNTING
NEW YORK
20
RESEARCH
DALLAS
30
SALES
CHICAGO
40
OPÉRATIONS
BOSTON
20
Requêtes simples
Select … from … where …
Manipulation de données


Recherche d’information : requête (Queries)
SELECT colonnes FROM tables
WHERE prédicats (condition de recherche)
Stockage de données
INSERT INTO table [col1, col2, ..., coln]
VALUES (value1, value2, ..., valuen)
22
La sélection de n-uplets


Permet de sélectionner certaines colonnes
d'une table, ainsi que certaines lignes
d'une table (les lignes étant sélectionnées
en fonction de leur contenu).
Permet de combiner des informations
venant de plusieurs tables.
23
Requête

Syntaxe globale
select [distinct] { ' [nom table.]nom _col1 [,nom _col2 ...] }
from ( nom table [, nom table2] }
[where prédicat]
[group by nom _col3 [, nom _col4]
[having prédicat] ]
[order by nom _col5 [desc] [,nom _col6 [desc] ...]


[ ] facultatif
Traduction
 Sélection des colonnes
des tables
qui répondent à la condition
regroupé par groupes
qui répondent à la condition sur les groupes
ordonné suivant les valeurs des colonnes
24
Sélection des colonnes (1)

L'ordre le plus simple a la syntaxe suivante :

select * from nom_table.

Dans ce cas, toutes les lignes de la table sont
sélectionnées.

Limitation de la sélection à certaines colonnes,




en indiquant une liste de noms de colonnes à la place de
l'astérisque
select col1 co12 ... from nom_table
Dans ce cas, on parlera projection
exemple :


sélectionner les noms des employés avec leur JOB associé.
select ENAME JOB from EMP;
25
Sélection des colonnes (2)


La clause DISTINCT ajoutée derrière
l'ordre SELECT permet d'éliminer les
duplications si dans le résultat plusieurs
n-uplets sont identiques, un seul sera
conservé.
exemple :



lister les jobs présents dans la table EMP.
select DISTINCT JOB from EMP;
Remarque :

le terme DISTINCT s'applique à toutes les
colonnes sélectionnées.
26
Sélection des lignes (1)





La clause WHERE permet de spécifier quelles
sont les lignes à sélectionner.
Cette clause est suivie d'un prédicat qui sera
évalué pour chaque ligne de la table.
Seules les lignes pour lesquelles le prédicat est
vrai seront sélectionnées.
Dans ce cas, on parlera de restriction
Syntaxe

select …
from nom_table
where prédicat
27
Sélection des lignes (2)

Un prédicat


une expression logique ayant la valeur vrai ou
faux.
L'expression logique peut contenir des






Opérateurs de comparaisons
Opérateurs logiques AND, OR
NOT
BETWEEN
LIKE
IS NULL
28
Opérateurs de comparaisons

Opérateurs de comparaisons :


=, !=, >, >=, <, <
Exercice

sélectionner les employés dont la commission est
supérieure au salaire
29
Opérateurs logiques

Opérateurs logiques



Les opérateurs AND et OR peuvent être utilisés
pour combiner plusieurs prédicats.
Exercice


AND, OR
sélectionner les employés du département 30 ayant un
salaire supérieur à 1500.
Remarque :


L'opérateur AND est prioritaire par rapport à OR.
Des parenthèses peuvent être utilisées
30
Opérateurs NOT, BETWEEN et IN

L'opérateur NOT


Opérateur BETWEEN



placé devant un prédicat en inverse le sens.
expr1 BETWEEN expr2 AND expr3
Ce prédicat est vrai si expr1 est compris entre
expr2 et expr3, bornes incluses.
Opérateur IN :


expr1 IN ( expr2, expr3 ....)
Ce prédicat est vrai si expr1 est égale à l'une des
expressions de la liste entre parenthèses.
31
Opérateurs LIKE et IS NULL

Opérateur LIKE


expr LIKE chaîne
où chaque chaîne est une chaîne de caractères
pouvant contenir l'un des caractères jokers
"_" : remplace 1 caractère exactement.
 "%" : remplace une chaîne de caractères de longueur
quelconque, y compris de longueur nulle.


Opérateur IS NULL


expr IS NULL
Ce prédicat est vrai si l'expression à la valeur
NULL
32
Opérateurs

Exemple


sélectionner les employés qui ont été embauchés
en 1981
syntaxe
select ENAME, HIREDATE from EMP
whrere HIREDATE like '%-%-81';

Exercice


Sélectionner tous les employés qui ont une
commission ?
Sélectionner les employés qui ont un salaire
inférieur à 1200 parmi les clerks et les salesmans.
33
Les expressions (1)

Une expression est soit



une variable désignée par un nom de colonne,
une constante.
Types des expressions



numérique
Caractère
date
34
Les expressions (2)

Constante numérique :



nombre contenant éventuellement un
signe, un point décimal et un exposant de
puissance de dix.
Exemple : -10, 2.5, 1.2 E-10
Constante alphanumérique :



elle se désigne par une chaîne de
caractères entre apostrophes.
Exemple 'MARTIN'.
Attention majuscule minuscule
 ‘MARTIN’
≠ ‘martin’ ≠ ‘Martin’
35
Les expressions (3)

Constante date :


elle se désigne par une chaîne de caractères au
format suivant
jour-mois-année.
jour sur deux chiffres
 le mois est désigné par les trois premières lettres de son
nom en anglais
 l'année est sur deux chiffres



Exemple '1-FEB85‘
Le format est modifiable
36
Classement des n-uplets
sélectionnés (1)





On peut, grâce au mot clé ORDER BY, imposer un ordre
dans une requête.
Cet ordre peut porter sur une ou plusieurs colonnes.
II peut être croissant ou décroissant.
La clause ORDER BY devra être placée derrière la clause
FROM, et après la clause WHERE si elle existe.
Syntaxe


select col1 , col2 ... from nom table where prédicat order by col1
[DESC], col2 [DESC] ...
Le tri se fait


d'abord selon la première colonne spécifiée dans l'ORDER BY,
puis les n-uplets ayant la même valeur dans la première colonne
sont triés selon la deuxième colonne de l'ORDER BY, ....
37
Classement des n-uplets
sélectionnés (2)

Exercices


sélectionner par ordre croissant tous les employés
qui ont été embauché entre le 1ier Décembre 1980
et le 31 Mars 1981.
sélectionner les employés triés par job, et pour
chaque job triés par salaire décroissant.
38
La Jointure


La jointure permet d'obtenir des
informations venant de plusieurs tables
dans un même n-uplet résultat.
Il existe plusieurs type de jointures



l'équi-jointure
La jointure externe
La jointure d'une table à elle-même
39
Equi-jointure (1)

Une jointure se formule en spécifiant plusieurs
tables dans la clause FROM du SELECT.

Syntaxe
select ...
from nom_table1, nom_table2 ...
Where …

Si aucune condition de sélection WHERE,


résultat est le produit cartésien des deux tables,
Dans notre exemple,


EMP et DEPT peuvent être "reliées" par l'attribut DEPTNO.
C'est en utilisant cet attribut que l'on pourra effectuer une
jointure.
40
Equi-jointure (2)

Si l'attribut, qui désigne le numéro de
département, a le même nom dans les
deux tables,



il ait nécessaire de préfixer l'attribut DEPTNO par
le nom de la table dans le critère de jointure.
dept.deptno et emp.deptno
Par contre, le nom des attributs ENAME et LOC
n'ont pas besoin d'être préfixés puisqu'il n'y a pas
d'ambiguïté sur la table à laquelle ces attributs
appartiennent.
41
Equi-jointure (3)
Personnes
nom
prénom
adresse
téléphone
Martin
Pierre
7 allée des vers
0258941236
Dupond
Jean
32 allé Poivrot
0526389152
Bibliothèque
nom
Dernierlivre
Dupond
Robinson
Jospin
Faust
Martin
Misère
On joint les deux tables, grâce
à la colonne nom.
SELECT Personnes.prénom, dernierlivre
FROM Personnes, Bibliothèque
WHERE Personnes.nom = Bibliothèque.nom
prénom
Dernierlivre
Jean
Robinson
Pierre
Misère
Et on combine cette jointure à
une projection sur les attributs
nom et dernierlivre.
Attention à lever toute ambiguïté sur les noms d’attribut
dans le cas où deux tables
possèdent des colonnes de
même nom.
42
Equi-jointure (4)


Les requêtes utilisant très souvent les
jointures, il a été créé des syntaxes plus
rapide
si les attributs ont le même nom.

Syntaxe
SELECT Personnes.nom, nblivres
FROM Personnes INNER JOIN Bibliothèque
USING (nom)

ce qui signifie que les deux relations Personnes
et Bibliothèque sont concaténées (INNER JOIN)
en utilisant (USING) l’attribut nom.
43
Equi-jointure (5)


Si les attributs servant pour la jointure ne portent
pas le même nom, il faut utiliser la syntaxe ON.
Ainsi la jointure précédente peut s’écrire aussi :




SELECT Personnes.nom, nblivres
FROM Personnes INNER JOIN Bibliothèque
ON Personnes.nom = Bibliothèque. emprunteur
Remarque

La méthode INNER JOIN n’inclus les enregistrements de la
première table que s’ils ont une correspondance dans la
seconde table.
Personnes
Bibliothèque
Résultat de la jointure
Nom
Prénom
Emprunteur
Nblivres
Nom
Nblivres
Martin
Jean
Martine
5
Tartan
10
Tartan
Pion
Tartan
10
Dupond
3
Dupond
Jacques
Dupond
3
44
Equi-jointure (6)

Exercice


obtenir la liste des employés avec la localité dans
laquelle ils travaillent
synonyme




On peut associer un synonyme à un nom de table,
il pourra alors être utilisé en préfixant les noms
d'attributs.
Par contre, l'ancien nom de la table ne pourra plus
être utilisé lors du SELECT.
Syntaxe

Select EMPNO, DEPTNO
from EMP e
// e est l’alias de EMP
where e.DEPTNO = 20;
45
La jointure externe (1)



Lorsqu'un n-uplet d'une table figurant dans une jointure n'a
pas de correspondant dans les autres tables, elle ne
satisfait pas le critère d'équi-jointure et donc ne figure pas
dans le résultat de la jointure.
Pour obtenir ces n-uplets, il faut accoler (+) au nom de la
colonne de la table dans laquelle manquent des éléments,
dans la condition d'équi-jointure.
Exemple
select ENAME, LOC
from EMP, DEPT
where EMP.DEPTNO(+) = DEPT.DEPTNO;

Exercice

sélectionner les départements n'ayant pas d'employés
46
La jointure externe (2)
Le (+) n’existe pas en MySQL
 Pour remédier aux limites de INNER JOIN, il existe la syntaxe LEFT
JOIN qui inclus tous les enregistrements de la première table même
s’ils n’ont pas de correspondance dans la seconde table. Dans ce
cas précis, l’attribut non renseigné prendra la valeur NULL.
La jointure devient :

SELECT Personnes.nom, nblivres
FROM Personnes LEFT JOIN Bibliothèque
ON Personnes.nom = Bibliothèque.nom
 RIGHT JOIN est l’opération symétrique

Personnes
Bibliothèque
Résultat de la jointure
Nom
Prénom
Nom
Nblivres
Nom
Nblivres
Martin
Jean
Martine
5
Martin
NULL
Tartan
Pion
Tartan
10
Tartan
10
Dupond
Jacques
Dupond
3
Dupond
3
47
Jointure d'une table à elle-même

II peut être utile de rassembler des
informations venant d'un n-uplet d'une
table avec des informations venant d'un
autre n-uplet de la même table.

Utilisation des synonymes obligatoire
48
Jointure d'une table à elle-même (2)

Exemple


Lister les employés en indiquant pour chacun le
nom de son manager
Syntaxe


Select e.ENAME, m.ENAME
from EMP e, EMP m
where e.MGR = m.EMPNO(+);
Exercice

Sélectionner les employés gagnant plus que
JONES
49
Modification des données
Création, modification, suppression
de données
Modification des données


Le LMD permet également de modifier les
informations contenues dans la base.
II existe trois commandes pour effectuer
des modifications



UPDATE: modifie les valeurs d'une table
INSERT : ajoute des n-uplets à une table
DELETE : supprime des n-uplets à une table
51
Mise à jour - UPDATE (1)


La commande UPDATE permet de modifier les
valeurs d'un ou plusieurs champs
syntaxe



update table
set col1 = nv_valeur, col2 = nv_valeur2 ....
[where prédicat]
Les valeurs col1, col2 ... sont mises à jour dans
tous les n-uplets satisfaisant au prédicats.
En l'absence de la clause WHERE, tous les
n-uplets sont mis à jours.
52
Mise à jour - UPDATE (2)


On peut faire référence aux anciennes
valeurs des champs du n-uplets.
Exercice

le salaire des analystes est augmenté de 10
53
Ajout de n-uplets - INSERT (1)


La commande INSERT permet d'insérer un nuplet dans une table en spécifiant les valeurs à
insérer.
Syntaxe


insert into table (col1, col2 ...)
values (valeur, valeur ....)
La liste des noms de colonne est optionnelle.

Si elle est omise,


la liste des colonnes sera par défaut la liste de l'ensemble des
colonnes de la table dans l'ordre de création de la table.
Si une liste de colonne est spécifiée,

les colonnes ne figurant pas dans la liste auront la valeur
NULL.
54
Ajout de n-uplets - INSERT (2)

exemple, ajouter un nouvel employé


insert into EMP
values (17657, 'WILSON', 'ANALYST', 7566.
‘10-MAY-85' ,3400, NULL, 20);
II est possible d'insérer dans une tables
plusieurs n-uplets provenant d'une autre
table.

Syntaxe

insert into table (col1, col2 ...)
select ....
55
Suppression de n-uplets

La commande DELETE permet de
supprimer les n-uplets d'une table

Syntaxe


En l'absence de la clause WHERE


delete from table
[where prédicat];
tous les n-uplets de la table sont supprimés.
Exemple :


supprimer tous les employés du département 20
delete from EMP
where DEPTNO = 20 ;
56
Langage de définition de données
Création, modification, suppression
de tables
Langage de définition de données
(LDD)


Le LDD permet de créer, de modifier et de
supprimer la description d'une table.
II existe 4 commandes pour effectuer des
modifications




CREATE TABLE: crée une table
ALTER TABLE : modifie la structure d'une table
DROP TABLE : supprime une table
RENAME : renomme la table
58
création d'une table (1)



A la création, la table sera vide.
Cependant, un certain espace lui sera alloué.
Syntaxe



L'option NOT NULL



create table nom_table
(col1 type1 [NOT NULL], col2 type2 [NOT NULL], ...)
assure que le SGBD interdira lors d'un INSERT ou d'un UPDATE
que cette colonne contienne la valeur NULL.
Par défaut, la valeur NULL est autorisée.
Les principaux types des éléments sont :

Char (n)


Number (d)


nombre à d chiffres maximum (38 chiffres significatifs)
Number (d,p)


n caractères maximum (n <= 255)
nombre à d chiffres maximum dont p après le point décimal
Date

élément de type DATE.
59
création d'une table (2)

Exemple

Création de la table EMP on écrira


create table EMP (
EMPNO number(4) not null,
ENAME char(10),
JOB char(9),
MGR number(4),
HIREDATE date,
SAL number(7,2),
COMM number(7,2),
DEPTNO number(2) not null );
Exercice

Créer une table BONUS, en y insérant les noms et les
salaires des MANAGERS.
60
Modification d'une table (1)

II est possible de modifier la définition
d'une table,




soit ajouter une colonne.
soit modifier une colonne existante.
II n'est pas possible de supprimer une colonne
Ajout d'une colonne : ADD

Syntaxe


alter table nom_table
add col1 type1, col2 type2, ....)
Les valeurs de cette colonne seront alors toutes
égales à NULL.
61
Modification d'une table (2)

Modification d'une colonne - MODIFY

II est possible de modifier la définition d'une
colonne, à condition que la nouvelle définition soit
compatible avec le contenu de la colonne :
il est possible d'augmenter la taille maximale de la
colonne,
 il est possible de spécifies NOT NUL si la colonne né
contient aucune valeur NULL...


Syntaxe

alter table nom_table
modify (col1 nv_type1, col2 nv_type2, ....)
62
Suppression d'une table



II est possible de supprimer une table
les n-uplets et la définition de la table sont
détruites.
Syntaxe

drop table nom_table
63
Renommer une table


II est possible de renommer une table
Syntaxe

rename table ancien_nom_table to
nouveau_nom_table
64
Téléchargement