Transac SQL Régles Règles Régles Régles Sp_helpdb Insertion de

Transcription

Transac SQL Régles Règles Régles Régles Sp_helpdb Insertion de
Régles
Intégrité des données
–
–
–
–
1
Régles
• Create rule state-rule as @state in
(‘ca’,’co’,’wa’)
• Create rule numeroDisque-rang as
@disque between 0 and 60
Liste ou ensemble de valeur
Série de valeurs
Image d’édition
Condition à remplir pour des valeurs
uniques.
CPI-SQLServer : transac
sql
• Une régle est liée à une
marque de réservation
commençant par @.
• Application : sp_bindrule
‘numeroDisque-rang’ ,
‘discounts.discount’
2
CPI-SQLServer : transac
sql
Régles
• Ainsi on applique cette contrainte
à la colonne.
• Sp_unbindrule ‘authors.state’
annulation.
• Drop rule state-rule destruction
de l’objet.
• Application d’un règle sur un type
, alors toutes les colonnes de ce
type sont concernés.
• A l’insert vérifie les valeurs par
défaut puis les régles.
• Update applique les régles.
CPI-SQLServer : transac
sql
• Créate rule nom-regle as
expression.
• Objet qui définit une restriction
sur une colonne
• Assure l’intégrité d’une domaine
• S ’applique à une colonne ou
type de données
• Permet de définir:
Transac SQL
CPI-SQLServer : transac
sql
Règles
4
Sp_helpdb
• Create rule PrixHaut as
@price < 10
• Exec sp_bindrule PrixHaut,
‘titles.price’
• Create rule PrixBas as
@price > 5
• Exec sp_bindrule PrixBas
,’titles.price’
CPI-SQLServer : transac
sql
3
•
•
•
•
•
•
5
Avoir les infos sur une base
Sp_helpdb [nomBase]
Use nomBase
Select db_name()
Sp_help
Sp_helptext
CPI-SQLServer : transac
sql
6
Insertion de données
Update
Delete
• INSERT : ajoute une ou plusieurs
lignes à une table existante.
• Liste de colonne pour la table est
facultative, pour ajouter des
valeurs null, ne pas indiquer la
colonne dans la liste :
• Insert [into] nom_table
[(liste_colonne)] { values
(expression, [expression] …) |
instruction select
• Exercice : insert publishers
values ("9934" , "germinal" ,
"Dunkerque", "NO", "FR")
• UPDATE : modifie tout ou une
partie d' une ligne existante:
Update table set col = " val"
update nom_table Set
nom_colonne = « valeur » where
condition pour restreinte les
actions.
• EXERCICE : update discounts
set discounttype = " remise maxi
de philippe" where stor_id = 1000
• update titles set price = price *
0.9 where pubdate < "JAN 1,
1993"
• DELETE : permet de
supprimer les lignes d' une
table avec ou non une
restriction (where), attention
la destruction est irréversible
• delete publishers where state
= « ZZ"
• Pour supprimer toutes les
lignes rapidement, truncate
table nomTable
CPI-SQLServer : transac
sql
CPI-SQLServer : transac
sql
CPI-SQLServer : transac
sql
7
8
9
1
Exercices
Insertion d’un enregistrement dans la table
discount
insert discounts values ("ma remise",1000, 5, 9,
6.4)
Cela ne fonctionne pas, en effet l’identifiant
magasin 1000 n’existe pas dans la table
Stores.
Nous voyons ici l’interêt des clés étrangères, il
n’est pas possible de faire une erreur, cad
affecter des commandes à un magasin qui
n’existe pas.
Création du magasin Philippe id=1000
insert stores (stor_id , stor_name) values (1000,
"philippe")
On précise que certains champs à insérer.
Rejouer la commande Insert
erreur
insert discounts values ("ma
remise",1000,5,9,6.4)
CPI-SQLServer : transac
10
sql
Exercices
Conversion
Suppression : Delete from nom_table
where condition
EXERCICE
insert discounts values ("ma
remise",6380,5,9,6.4)
insert discounts values ("ma
remise",6380,5,9,6.4)
insert discounts values ("ma
remise",6380,5,9,6.4)
select * from discounts
delete from discounts where stor_id =
6380
select * from discounts
CPI-SQLServer : transac
sql
• Les opérations sur les
chaines comprennent
l’opérateur de concaténation
de chaine et des fonctions.
• Pour concaténer signe +
• ‘london’+’,’+’est’+ ‘england’
• La longueur maxi 255
caractères.
• Voir liste fonction.
11
CPI-SQLServer : transac
sql
12
2

Documents pareils