SQL Server Le langage de description des données

Transcription

SQL Server Le langage de description des données
SQL Server
Le langage de description des données
1. Instruction pour la gestion d'une base de données
Création
Suppression
Connexion
create database nomBase
drop database nomBase
use nomBase
2. Création d'une table
create table commande(
id
int identity,
dateCommande datetime not null,
idClient int not null,
constraint pk_commande primary key(id),
constraint fk_commande_client foreign key (idClient ) references client (id));
create table detailCommande (
idCommande int not null,
idProduit int not null,
quantite int not null default 1,
constraint pk_detail primary key (idCommande, idProduit),
constraint c_detail_quantite check (quantite between 1 and 10),
constraint fk_detail_commande foreign key (idCommande) references commande(id) on delete
cascade,
constraint fk_detail_produit foreign key (idproduit) references produit (id) on update cascade
);
null
default
primary key
unique
foreign key
references
check
type
identity
Version
1.1
Autorise ou refuse la valeur null dans la colonne
Fixe la valeur prise par défaut par la colonne.
Définition de la clé primaire.
Définition d'un index assurant l'unicité des valeurs. On peut définir plusieurs
contraintes UNIQUE et le champ peut accepter la valeur null
Contrôle la cohérence des valeurs de la clé étrangère par rapport aux valeurs de la
clé primaire correspondante dans la table de référence.
La table référencée doit contenir une contrainte primary key ou unique sur les
colonnes correspondantes.
L'option on Delete précise l'opération qui va être automatiquement réalisée lors de
la suppression d'une ou plusieurs occurrences dans la table de référence
L'option on update précise l'opération qui va être automatiquement réalisée lors de
la modification d'une ou plusieurs occurrences dans la table de référence
Assure l'intégrité de domaine en limitant les valeurs acceptées par une colonne.
int, decimal(6,2), dateTime, date, char(15) varchar(30), …
voir la liste compléte dans le document SQL Server – les types de données
Définit un champ auto-incrémenté (numérotation séquentielle automatique)
Date
Auteur
19/07/2015 Guy Verghote
1/4
SQL Server
Le langage de description des données
La dernière ligne d'une commande create table peut contenir une virgule.
on peut définir au niveau de la colonne les contraintes primary key, reference, check si
elle ne porte que sur la colonne.
create table commande(
id
int identity primary key ,
dateCommande datetime not null default getdate(),
idClient int not null references client (id))
Cette notation n'est pas conseillée car les contraintes seront nommées par le système qui
leur attribue un nom aléatoire.
Remarques
La contrainte default peut être nommée :
dateCommande datetime not null constraint d_commande_dateCommande
default getdate(),
La contrainte default peut utiliser une fonction comme valeur par défaut
On peut désactiver les contraintes d'intégrité ce qui permet de restaurer la base sans
respecter l'ordre logique de création des enregistrements.
exec sp_msforeachtable 'alter table ? nocheck constraint all'
exec sp_msforeachtable 'alter table ? check constraint all'
Si on précise la clause default lors de la modification d'une colonne, la clause
n'est pas prise en compte.
Si une colonne dispose d'une contrainte not null sans valeur par défaut, l'ajout d'un
enregistrement sans valeur pour la colonne sera refusé,
Version
1.1
Date
Auteur
19/07/2015 Guy Verghote
2/4
SQL Server
Le langage de description des données
3. Modification d'une table
Ajouter une contrainte
alter table nomTable [with noCheck] add
[constraint nomContrainte] expression de la contrainte
Ajouter un index
create [unique] index on nomTable (nomColonne, …)
Supprimer un index
drop index nomTable.nomIndex;
Supprimer une contrainte (primary,
référence, check default)
alter table nomTable drop nomContrainte, …;
Réinitialiser le compteur
dbcc CHECKIDENT('nomTable', RESEED, 0)
Modifier une colonne
alter table nomTable
alter column nomColonne type [contrainte]
Supprimer la contrainte not null
alter table nomTable alter column nomColonne type null
Ajouter la contrainte default
alter table nomTable [with noCheck]
add
[constraint nomContrainte] default valeur for nomColonne
Insérer une nouvelle colonne à la alter table nomTable add nomColonne type [not] null
fin
Supprimer une colonne
alter table nomTable drop column nomColonne [, …]
Une colonne ajoutée est toujours placée à la fin de la table. Si on veut la déplacer il faut
utiliser l'explorateur d'objet de SQL Server Management Studio.
Remarques
Si on ne donne pas de nom à une contrainte, le système lui donne un nom qui
commence par le type de la contrainte, la table et se termine par un identifiant aléatoire
Version
1.1
Date
Auteur
19/07/2015 Guy Verghote
3/4
SQL Server
Le langage de description des données
4. Autres commandes
Lister les bases de données
sp_helpdb
Lister les tables et les vues de la sp_help
base
Information sur une table
sp_help nomtable
Lister les contraintes sur une table
sp_helpconstraint nomtable
Tester l'existence d'une base de if db_id('nomBase') is not null
données
Tester l'existence d'une table
if object_id('nomTable','U') is not null
Tester l'existence d'une vue
if object_id('nomVue','V') is not null
Tester l'existence d'une procédure
if object_id('nomProcedure','P') is not null
Tester l'existence d'une fonction
if object_id('nomFonction','FN') is not null
Utiliser le format standard aaaa-mm- set dateformat ymd
jj
Création d'une table à partir des Select liste des colonnes into nomtable
données d'une autre table
from table1 ……
Définir un champ auto-incrémenté
Ajouter le mot clé identity derrière le type du champ
Récupérer sa dernière valeur
SELECT scope_identity() ou Select @@identity
Permettre de renseigner un champ set identity_insert table on
auto-incrémenté
insert into table (id, lib) values (1,'exemple')
set identity_insert table off
Autre code pour l'existence d'un objet
C = Contrainte CHECK
D = DEFAULT (contrainte ou autonome)
F = Contrainte FOREIGN KEY
Remarques PK = Contrainte PRIMARY KEY
TR = Déclencheur SQL
UQ = Contrainte UNIQUE
TR = Déclencheur DML SQL
UQ = Contrainte UNIQUE
Version
1.1
Date
Auteur
19/07/2015 Guy Verghote
4/4

Documents pareils