Database
 sql >> Base de données >  >> RDS >> Database

CONTRAINTES SQL

Les contraintes SQL spécifient les règles/limitations/restrictions pour les données présentes dans la table. Les contraintes SQL sont spécifiées au moment de la création de la table ou après la création de la table à l'aide de la commande ALTER. Il existe deux types de contraintes contrainte au niveau de la colonne et contrainte au niveau de la table .Comme le niveau de colonne de nom le spécifie, il spécifie une colonne particulière. Dans une contrainte au niveau de la table, elle spécifie plusieurs colonnes ou toutes les colonnes de la table.NOT NULL : Il garantit que la valeur de colonne spécifiée ne peut pas être NULL.UNIQUE : Il garantit que chaque valeur de la colonne est différente.CLÉ PRIMAIRE : La clé primaire garantit à la fois NOT NULL et UNIQUE. Cela signifie que la valeur ne peut pas être nulle et qu'elle doit être différente l'une de l'autre. Par conséquent, la clé primaire identifie de manière unique chaque enregistrement dans la table.CLÉ ÉTRANGÈRE : Il identifie de manière unique l'enregistrement d'une autre table. La clé étrangère est une référence à l'autre table et elle est comme la clé primaire de l'autre table.DEFAULT : Il définit la valeur par défaut lorsque la valeur n'est pas donnée.VÉRIFIER : Il garantit que toutes les valeurs de la colonne satisfont une condition.INDEX : L'index est créé et utilisé pour récupérer les données de la base de données.

NON NULL

La valeur par défaut pour chaque colonne est NULL. Les contraintes non nulles garantissent que la valeur de la colonne ne doit pas être nulle. Cette contrainte garantit toujours que la colonne a une certaine valeur. Il ne permet pas d'insérer ou de mettre à jour un enregistrement sans mentionner la valeur de ce champ. L'utilisateur peut ajouter cette contrainte à une ou plusieurs colonnes ou à toutes les colonnes de la table.Syntaxe : CREATE  TABLE table_name (colonne 1 type de données NOT NULL,………) ;Exemple : Créer la table STUDENT(student_id int NOT NULL,student_name varchar(10),student_dept varchar(10) NOT NULL,classyear int); Dans l'exemple ci-dessus, NOT NULL contrainte est appliquée sur deux colonnes student_id et student_dept dans la table STUDENT lors de la création de la table. La description de la table STUDENT montre quelles colonnes peuvent être NULL ou ne peuvent pas être NULL. Voir l'écran de sortie au moment de l'insertion des valeurs dans le tableau, la contrainte non nulle ne permet pas d'entrer la valeur NULL dans les champs sur lesquels la contrainte est appliquée.UNIQUE La contrainte unique évite les entrées en double dans la colonne. Une table peut avoir plusieurs clés uniques.Syntaxe : CREATE  TABLE nom_table (colonne 1 type de données UNIQUE,………) ;Exemple : créer une table student(student_id int Unique,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ); Vous pouvez écrire la requête ci-dessus sous une autre forme. Créer une table student(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,unique (student_id));# définir plusieurs colonnes uniques en une seule fois Syntaxe : CREATE  TABLE nom_table(type de données colonne 1, ……… colonne n, contrainte nom_contrainte Unique (colonne1,..));Exemple : créer une table étudiant (student_id int, nom_étudiant varchar (10) unique, étudiant_dept varchar (10) non nul, année de classe int, contrainte cs_studentunique (id_étudiant, nom_étudiant)); # Ajouter une contrainte UNIQUE à l'aide de l'instruction ALTERSyntaxe : Alter table table_nameAdd Unique (column_name);Exemple : Alter table StudentAdd Unique (student_id);Syntaxe : Alter table nom_tableAjouter une contrainte nom_contrainte Unique (column1,column2) ;Exemple : Alter table StudentAdd Constraint cs_student Unique (student_id,student_name);clé primaire La clé primaire identifie de manière unique chaque enregistrement dans la colonne, une table a une seule clé primaire. La clé primaire peut être une seule colonne ou un groupe de colonnes.Syntaxe : Créer une table nom_table( type de données de la colonne Clé primaire, type de données de la colonne2, ………) ;Exemple : Créer la table STUDENT(student_id int Primary Key,student_name varchar(20),student_dept varchar(20),classyear int); Syntaxe : Créer une table nom_table( type de données colonne1,type de données colonne2,………type de données colonne n,clé primaire (nom_colonne));Exemple : Créer une table Student(student_id int,student_name varchar(10),student_dept varchar(10),classyear int,Primary key (student_id)); # Utilisation de l'instruction ALTER Syntaxe : alter table table_nameadd clé primaire (column_name); Exemple : alter table studentadd clé primaire (student_id); Syntaxe : alter table table_namedrop clé primaire ;Exemple : modifier la clé primaire de la table studentdrop ;

PAR DÉFAUT

La contrainte DEFAULT est utilisée pour définir la valeur par défaut de la colonne. Cette contrainte peut être appliquée sur une seule colonne ou sur plusieurs colonnes. NULL est une valeur par défaut pour toutes les colonnes de la table. Lorsque l'utilisateur n'applique pas de contrainte nulle ou primaire sur une colonne, sa valeur par défaut est modifiée.Syntaxe : Créer la table nom_table (Type de données de colonne,…….Valeur par défaut du type de données de colonne) ;Exemple : Créer une table étudiant (student_id int,student_name varchar(20),student_dept varchar(20) default 'IT',classyear int); L'écran de sortie affiche la valeur par défaut 'IT' affecté à la colonne student_dept. 'IT' valeur définie sur la colonne student_dept lorsqu'aucune valeur n'est fournie pour la colonne student_dept .  # Ajout de la contrainte DEFAULT sur la colonne à l'aide de l'instruction ALTER  Syntaxe : alter table table_namealter column_nameset valeur par défaut ;Exemple : modifier la table studentalter student_deptset par défaut 'CS' ; Syntaxe : alter table table_namealter column_namedrop default ;Exemple : alter table studentalter student_deptdrop default; Clé étrangère La clé étrangère est un lien entre deux tables. La clé primaire d'une table peut être la clé de référence/étrangère d'une autre table. La table, qui contient une clé étrangère, appelée table enfant et une autre table dont la clé primaire fait référence à cette table est une table parent. L'utilisateur doit entrer des enregistrements dans la table parent avant la table enfant s'il n'y a pas de données présentes dans la table parent. Une table peut avoir une seule clé primaire.Table DEPARTMENT
DEPT_ID DEPT_NAME DEPT_HEAD DEPT_LOC
0001 informatique M. SK Michra 06
0002 CS M. D.P. Patil 04
0003 EXTC Mme. SK Bhosale 05
0004 MECH M. UN B. Jha 07
Tableau ÉTUDIANT
STUDENT_ID STUDENT_NAME DEPT_NAME CLASSYEAR
10001 RAM informatique 02
10002 KIRAN informatique 04
10003 NEHA CS 01
10004 ROOPA MÉCANIQUE 01
ÉTUDIANT Clé primaire   student_idClé étrangère   dept_nameDEPARTMENT Clé primaire   dept_name Ici, DEPARTMENT est la table parent et STUDENT est la table enfant. Clé primaire de la table DEPARTMENT référencée en tant que clé étrangère dans la table des étudiants nommée dept_name. Il est possible que deux tables aient une colonne portant le même nom. Supposons que dans la table des étudiants dept_name est présent avec un nom différent comme student_dept ou quoi que ce soit, cela ne crée aucun problème. La table peut contenir une ou plusieurs clés étrangères.# Appliquer la contrainte lors de la création de la table Syntaxe : // La table parent doit contenir une clé primaire Créer une table nom_table(type de données de colonne Clé primaire,Colonne ……..,Type de données de colonne n);//la table enfant contient une clé étrangère Créer une table nom_table(type de données de colonne,…………,clé étrangère(nom_colonne)References nom_table_parent(nom_colonne de clé primaire));Exemple : Créer une table department(dept_id int,dept_name varchar(30) Clé primaire,dept_head varchar(50),dept_loc int);Créer une table student(student_id int clé primaire,student_name varchar(30),dept_name varchar(30),classyear int,Foreign clé (dept_name)References department (dept_name)); # Appliquer la contrainte de clé étrangère à l'aide de l'instruction Alter Syntaxe : alter table table_nameadd clé étrangère (column_name)references parent_table_name (column_name of primary key);Exemple : alter table studentadd clé étrangère (dept_name)references department(dept_name);Syntaxe : alter table nom_tableadd contrainte nom_contrainteclé étrangère (nom_colonne)references nom_table_parent (nom_colonne de la clé primaire) ;Exemple : alter table studentadd contrainte fk_studentforeign key (dept_name)references department(dept_name);# contrainte DROP Syntaxe : alter table table_namedrop clé étrangère nom_contrainte ;Exemple : alter table studentdrop clé étrangère fk_student;Créer une table étudiant (student_id int, student_name varchar(50) not null, student_dept varchar(30) default 'IT',classyear int check (classyear<5 and classyear>0), clé primaire (student_id) );