0% ont trouvé ce document utile (0 vote)
111 vues46 pages

Types de Données et Contraintes SQL

Ce document décrit les différents types de données et contraintes dans MySQL. Il explique les types de données numériques, caractères, dates ainsi que les contraintes comme NOT NULL, UNIQUE, PRIMARY KEY et FOREIGN KEY.

Transféré par

Bouayad Yassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
111 vues46 pages

Types de Données et Contraintes SQL

Ce document décrit les différents types de données et contraintes dans MySQL. Il explique les types de données numériques, caractères, dates ainsi que les contraintes comme NOT NULL, UNIQUE, PRIMARY KEY et FOREIGN KEY.

Transféré par

Bouayad Yassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

MYSQL

Types de données
•Nombres entiers

mot-clé INT, et ses déclinaisons TINYINT, SMALLINT, MEDIUMINT et BIGINT.


La différence entre ces types est le nombre d’octets (donc la place en mémoire)
réservés à la valeur du champ.
Types de données
•L’attribut UNSIGNED

Vous pouvez également préciser que vos colonnes sont UNSIGNED, c’est-à-dire
qu’on ne précise pas s’il s’agit d’une valeur positive ou négative (on aura donc
toujours une valeur positive).
Dans ce cas, la longueur de l’intervalle reste la même, mais les valeurs possibles
sont décalées, le minimum valant 0. Pour les TINYINT, on pourra par exemple
aller de 0 à 255.

•DATE, TIME et DATETIME

Comme son nom l’indique, DATE sert à stocker une date. TIME sert quant à lui à
stocker une heure, et DATETIME stocke...une date ET une heure
Types de données
•Nombres décimaux
Cinq mots-clés permettent de stocker des nombres décimaux dans une colonne :
DECIMAL, NUMERIC, FLOAT, REAL et DOUBLE

NUMERIC et DECIMAL: sont équivalents et acceptent deux paramètres : la


précision et l’échelle.
• La précision définit le nombre de chiffres significatifs stockés, donc les 0 à
gauche ne comptent pas. En effet 0024 est équivalent à 24. Il n’y a donc que
deux chiffres significatifs dans 0024.
• L’échelle définit le nombre de chiffres après la virgule.
Dans un champ DECIMAL(5,3), on peut donc stocker des nombres de 5 chiffres
significatifs maximum, dont 3 chiffres sont après la virgule. Par exemple : 12.354, -
54.258, 89.2 ou -56.
Types de données
•CHAR et VARCHAR

Pour stocker un texte relativement court (moins de 255 octets), vous pouvez
utiliser les types CHAR et VARCHAR. Ces deux types s’utilisent avec un paramètre
qui précise la taille que peut prendre votre texte (entre 1 et 255). La différence
entre CHAR et VARCHAR est la manière dont ils sont stockés en mémoire. Un
CHAR(x) stockera toujours x octets, en remplissant si nécessaire
le texte avec des espaces vides pour le compléter, tandis qu’un VARCHAR(x)
stockera jusqu’à x octets (entre 0 et x), et stockera en plus en mémoire la taille du
texte stocké.
Si vous entrez un texte plus long que la taille maximale définie pour le champ,
celui-ci sera tronqué.
Types de données
•ENUM

Une colonne de type ENUM est une colonne pour laquelle on définit un certain
nombre de valeurs autorisées, de type ”chaîne de caractère”. Par exemple, si l’on
définit une colonne (pour une espèce animale) de la manière suivante

espece ENUM('chat', 'chien', 'tortue')


•SET
SET est fort semblable à ENUM. Une colonne SET est en effet une colonne qui
permet de stocker une chaîne de caractères dont les valeurs possibles sont
prédéfinies par l’utilisateur. La différence avec ENUM, c’est qu’on peut stocker
dans la colonne entre 0 et x valeur(s), x étant le nombre de valeurs autorisées.
Donc, si l’on définit une colonne de type SET de la manière suivante :

espece SET('chat', 'chien', 'tortue')


Création de la base de données
•Création
CREATE DATABASE nom_base;

•Suppression

DROP DATABASE nom_base;

•Utilisation
Pour pouvoir utiliser une BD il faut commencer par la commande suibante

USE nom_base;
Création des tables

•Syntaxe:
Création des tables

•Exemple :

Soit la table Animal defini ci-dessus, donner le script corrsepondant:


Création des tables

•Exemple :
Création des tables

•Verification :

•Structure de la table:

•Suppression de la table:
Les Contraintes

 Les contraintes contrôlent des règles de gestion au niveau


d'une table.
 Les contraintes empêchent la suppression d'une table
lorsqu'il existe des dépendances.
 Types de contraintes valides dans Oracle :
 NOT NULL
 UNIQUE
 PRIMARY KEY
 FOREIGN KEY
 CHECK
La Contrainte NOT NULL
Interdit la présence de valeurs NULL dans la
colonne
EMP
EMPNO ENAME JOB ... COMM DEPTNO

7839 KING PRESIDENT 10


7698 BLAKE MANAGER 30
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
...

Contrainte NOT NULL Absence de contrainte Contrainte


(aucune ligne ne peut NOT NULL NOT NULL
avoir de valeur NULL (toute ligne peut avoir
dans cette colonne) une valeur NULL dans
cette colonne)
La Contrainte NOT NULL

Se définit au niveau colonne

SQL> CREATE TABLE emp(


2 empno NUMERIC(4),
3 ename VARCHAR2(10) NOT NULL,
4 job VARCHAR2(9),
5 mgr NUMERIC (4),
6 hiredate DATE,
7 sal NUMERIC (7,2),
8 comm NUMERIC (7,2),
9 deptno NUMERIC (7,2) NOT NULL);
La Contrainte de Clé UNIQUE
contrainte de clé UNIQUE
DEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

A insérer Interdit
50 SALES DETROIT (DNAME¾SALES
existe déjà)
60 BOSTON Autorisé
La Contrainte de Clé UNIQUE

Se définit au niveau table ou colonne

SQL> CREATE TABLE dept(


2 deptno NUMERIC (2),
3 dname VARCHAR2(14),
4 loc VARCHAR2(13),
5 CONSTRAINT dept_dname_uk UNIQUE(dname));
La Contrainte PRIMARY KEY
clé PRIMAIRE
DEPT
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

A insérer interdit (DEPTNO-20


20 MARKETING DALLAS existe déjà)

FINANCE NEW YORK interdit


(DEPTNO est NULL)
La Contrainte PRIMARY KEY

Se définit au niveau table ou colonne

SQL> CREATE TABLE dept(


2 deptno NUMERIC (2),
3 dname VARCHAR2(14),
4 loc VARCHAR2(13),
5 CONSTRAINT dept_dname_uk UNIQUE (dname),
6 CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno));
La Contrainte FOREIGN KEY
DEPT
PRIMARY DEPTNO DNAME LOC
KEY ------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
...
EMP
EMPNO ENAME JOB ... COMM DEPTNO FOREIGN
KEY
7839 KING PRESIDENT 10
7698 BLAKE MANAGER 30
... Interdit
(DEPTNO¾9
A insérer n'existe pas dans
la table DEPT
7571 FORD MANAGER ... 200 9
7571 FORD MANAGER ... 200 Autorisé
La Contrainte FOREIGN KEY

Se définit au niveau table ou colonne

SQL> CREATE TABLE emp(


2 empno NUMERIC (4),
3 ename VARCHAR2(10) NOT NULL,
4 job VARCHAR2(9),
5 mgr NUMERIC (4),
6 hiredate DATE,
7 sal NUMERIC ( 7,2),
8 comm NUMERIC ( 7,2),
9 deptno NUMERIC ( 7,2) NOT NULL,
10 CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)
11 REFERENCES dept (deptno));
Mots-clés Associés à la Contrainte
FOREIGN KEY

 FOREIGN KEY
 Définit la colonne dans la table détail dans une
contrainte de niveau table
 REFERENCES
 Identifie la table et la colonne de la table maître
 ON DELETE CASCADE
 Autorise la suppression d’une ligne dans la table
maître et des lignes dépendantes dans la table détail
La Contrainte CHECK

 Définit une condition que chaque ligne doit


obligatoirement satisfaire

..., deptno NUMBER(2),


CONSTRAINT emp_deptno_ck
CHECK (DEPTNO BETWEEN 10 AND 99),...
Ajout d'une Contrainte

ALTER TABLE table


ADD [CONSTRAINT constraint] type (column);

 Vous pouvez ajouter ou supprimer une contrainte,


mais pas la modifier
 Vous pouvez activer ou désactiver des contraintes
 Pour ajouter une contrainte NOT NULL, utilisez la
clause MODIFY
Ajout d'une Contrainte

Ajouter une contrainte FOREIGN KEY à la


table EMP précisant qu'un manager doit déjà
exister dans la table EMP en tant qu'employé
valide.

SQL> ALTER TABLE emp


2 ADD CONSTRAINT emp_mgr_fk
3 FOREIGN KEY(mgr) REFERENCES emp(empno);
Table altered.
Suppression d'une Contrainte

 Supprimer de la table EMP la contrainte concernant


le manager.
SQL> ALTER TABLE emp
2 DROP CONSTRAINT emp_mgr_fk;
Table altered.
• Supprimer la contrainte PRIMARY KEY de la table DEPT, ainsi que
la contrainte FOREIGN KEY associée définie sur la colonne
EMP.DEPTNO.

SQL> ALTER TABLE dept


2 DROP PRIMARY KEY CASCADE;
Table altered.
Désactivation de Contraintes

 Pour désactiver une contrainte d'intégrité, utiliser la


clause DISABLE de l'ordre ALTER TABLE.
 Pour désactiver les contraintes d'intégrité
dépendantes, ajouter l'option CASCADE.

SQL> ALTER TABLE emp


2 DISABLE CONSTRAINT emp_empno_pk CASCADE;
Table altered.
Activation de Contraintes

 Pour activer une contrainte d'intégrité actuellement


désactivée dans la définition de la table, utiliser la
clause ENABLE.

SQL> ALTER TABLE emp


2 ENABLE CONSTRAINT emp_empno_pk;
Table altered.
 Si vous activez une contrainte UNIQUE ou PRIMARY
KEY, un index correspondant est automatiquement
créé.
Vérification des Contraintes
 Pour afficher les définitions et noms de toutes les

contraintes, interrogez la table USER_CONSTRAINTS.


SQL> SELECT constraint_name, constraint_type,
2 search_condition
3 FROM user_constraints
4 WHERE table_name = 'EMP';

CONSTRAINT_NAME C SEARCH_CONDITION
------------------------ - -------------------------
SYS_C00674 C EMPNO IS NOT NULL
SYS_C00675 C DEPTNO IS NOT NULL
EMP_EMPNO_PK P
...
Affichage des Colonnes Associées aux
Contraintes

Affichez les colonnes associées aux noms de


contraintes au moyen de la vue
USER_CONS_COLUMNS view
SQL> SELECT constraint_name, column_name
2 FROM user_cons_columns
3 WHERE table_name = 'EMP';

CONSTRAINT_NAME COLUMN_NAME
------------------------- ----------------------
EMP_DEPTNO_FK DEPTNO
EMP_EMPNO_PK EMPNO
EMP_MGR_FK MGR
SYS_C00674 EMPNO
SYS_C00675 DEPTNO
Modification des tables

Lorsque l’on modifie une table, on peut vouloir lui ajouter, retirer ou modifier
quelque chose.
Dans les trois cas, c’est la commande ALTER TABLE qui sera utilisée, une
variante existant pour chacune des opérations :
Modification des tables

•Ajout et suppression d’une colonne

Exemple :

•Ajout et suppression d’une colonne

Exemple :
Modification des tables

•Changement du nom de la colonne

Les mots-clés CHANGE et MODIFY peuvent être utilisés pour changer le


type de donnée de la colonne, mais aussi changer la valeur par défaut ou
ajouter/supprimer une propriété AUTO_IN CREMENT. Si vous utilisez
CHANGE, vous pouvez renommer la colonne en même temps. Si vous ne
désirez pas la renommer, il suffit d’indiquer deux fois le même nom.
Voici les syntaxes possibles :
Modification des tables

•Changement du nom de la colonne

Exemple :

•Changement du type de données

Exemple :
INSERTION DES DONNEES

Deux possibilités s’offrent à nous lorsque l’on veut insérer


une ligne dans une table :
• soit donner une valeur pour chaque colonne de la ligne
• soit ne donner les valeurs que de certaines colonnes,
auquel cas il faut bien sûr préciser de quelles colonnes il
s’agit.
INSERTION DES DONNEES

Insertion sans préciser les colonnes

INSERT INTO table [(column [, column...])]


VALUES (value [, value...]);

EXEMPLE:

Pour verifier l’insertion:


INSERTION DES DONNEES

Insertion en précisant les colonnes

Insertion multiple
INSERTION DES DONNEES
Syntaxe alternative
SELECT
SYNTAXE

Exemple:
SELECT

La clause WHERE

SELECT [DISTINCT] {*, column [alias], ...}


FROM table
[WHERE condition(s)];

Exemple :
SELECT

Les opérateurs de comparaison


SELECT

Exemple :
SELECT

Combinaisons de critères
SELECT
OR
AND
SELECT

Tri des données


SELECT

En résumé

•La commande SELECT permet d’afficher des données.


•La clause WHERE permet de préciser des critères de sélection.
•Il est possible de trier les données grâce à ORDER BY, selon un ordre
ascendant (ASC) ou descendant (DESC).
•Pour éliminer les doublons, on utilise le mot-clé DISTINCT, juste après
SELECT.
•LIMIT nb_lignes OFFSET decalage permet de sélectionner uniquement
nb_lignes de résultats, avec un certain décalage
SELECT

Éliminer les doublons

Restreindre les résultats


LIMIT s’utilise avec deux paramètres.
— Le nombre de lignes que l’on veut récupérer.
— Le décalage, introduit par le mot-clé OFFSET et qui indique à partir
de quelle ligne on récupère les résultats. Ce paramètre est facultatif.
S’il n’est pas précisé, il est mis à 0.

Vous aimerez peut-être aussi