Sunteți pe pagina 1din 8

FaceBook.

com/DevNetSource

FaceBook.com/DevNetSource
Cmd database:
sp_help etudiant-retourn des info sur la table trs importants
createdatabase tp1
on primary(name='tp1',filename='c:\tp1.mdf',size=10mb,maxsize=100mb,filegrowth=5mb)
log on( name='tp1_log',filename='c:\tp1.ldf',size=10,maxsize=100mb,filegrowth=5mb)
drop database tp02supprimer basedonnee
Pour ajouter un fichier
ALTER DATABASE BASE_1 ADD FILE
(NAME = BASE_1dat2,FILENAME = 'C:\ t1dat2.mdf', SIZE = 5MB, MAXSIZE = 100MB,
FILEGROWTH=5MB)
Pour modifier lun des fichiers dune BD
ALTER DATABASE BASE_1 MODIFY file (Name=BASE_1_log, MAXSIZE = 80MB)
Pour renommer une BD:
Sp_renamedb BASE_1, 'BASE_2'
Alter database tp2 modify name=tp3 --renommer basedonnee

Cmd table:

Create table client (id_clt int primary key, nom_clt varchar(50))


drop table commande--supprimer table
delete commande / truncate table commande --vider une table
sp_rename'table1','nouveaunom'--renomer table

Cmd colonne
Alter table client add adresse varchar(50)--ajouter une colonne
Alter table client drop column adresse --supprimer une colonne
ALTER table clt ALTER COLUMN adresse varchar(100)--changer les types
sp_rename 'Table.AncienNom', 'NouveauNom'--renomer colonne

Cmd ligne table :


DELETE FROM commande where id_cmd=1-supprimer les lingne dune table
TRUNCATE TABLE commande vider une table
UPDATE commande SET dscription='hassan'WHERE id_cmd= / >2

SQL Constraints: NOT NULL / UNIQUE / PRIMARY KEY / FOREIGN KEY / CHECK / DEFAULT
ACTIVER / DSACTIVER UNE CONTRAINTE :
Pour dsactiver une contrainte :
ALTER TABLE BUS NOCHECK CONSTRAINT C1
Pour ractiver une contrainte :
ALTER TABLE BUS CHECK CONSTRAINT C1
PRIMARY KEY
Elle implique implicitement UNIQUE et NON NULL.
CREATE TABLE commandes(
id_commande INT PRIMARY KEY )
CREATE TABLE commandes (
no_prodit INT,id_commande INT,PRIMARY KEY(no_produit, id_commande) )
alter table table1 add constraint pk_num primary key (num)
il faut que le cl primaire soit dclar comme not null
alter table table1 drop constraint pk_num

FOREIGN KEY
foreign key (num) references table1(id_cmd)
num int foreign key references table1(id_cmd)
num=colonne de notre table
table1=table reference / id-cmd=colonne reference
alter table table1 add constraint fk_table1 foreign key (num) references
table2(id_cmd)
ajouter cl secondaire
alter table essai4 drop constraint fk_essai4
supprimer foreign key

FaceBook.com/DevNetSource
ON DELETE CASCADE/ ON UPDATE CASCADE
Quand on supprime ou on modifies la cl primaire automatiquement toutes les cl
trangres sont supprimes ou modifier
foreign key (num) references table1(id_cmd) on delete cascade on update cascade
num int foreign key references table1(id_cmd) on delete cascade on update cascade
ON DELETE SET VALUE/ ON UPDATE SET VALUE
Quand on supprime ou on modifies la cl primaire automatiquement toutes les cls
trangres sont NULL
foreign key (num) references table1(id_cmd) on delete set NULL on update set NULL
DEFAULT :
TABLE commandeid_cmd (id_cmd int,num int,nom varchar defaultchaine)
Insert into commande(id_cmd,num)values (8,0),(9,0)
AUTO INCREMENT :
ID int IDENTITY(1,1) PRIMARY KEY,
Auto incrment = IDENTITY(x, y) ; x=position dbut ; y=pas dincrmentation
SQL CHECK () :
P_Id int NOT NULL CHECK (P_Id>0)/ CHECK (P_Id between 0 and 20),
sexe varchar(10) CHECK (sexe in(male,femele)),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
Ajouter check :

ALTER TABLE Persons ADD CONSTRAINT chk_Person CHECK (P_Id>0)


Supprimer check :
ALTER TABLE Persons Drop CONSTRAINT chk_Person

Les Fonctions SQL:


La Fonction FIRST ():
Spcifier le nombre maximum de rsultats que lont souhaite obtenir.
EXP : Selectionner les 5 premier :
select top 5 nom_groupe from groupe ; select top 5 * from groupe
Slectionner le dernier lment :
select top 1 id_stg,nom,prenom from stg order by id_stg desc
SQL COUNT () :
SELECT COUNT(*) FROM table_name;
SELECT COUNT (DISTINCT column_name) FROM table_name;
SQL UNION :
Pour regrouper le rsultat dans un seul tableau, les colonnes doit tre de mme
types, union limine les rsultats double
;
SELECT nom from stg
UNION
SELECT nom_groupe from groupe
UNIUON ALL retourne toutes les resultat mme les doublon.
SQL INTERSECT / EXCEPT:
Comme une opration de soustraction, les colonnes doit tre de mme types
INTERSECT=retourne tous les enregistrements qui se trouve dans les 2 table
EXCEPT= retourne les enregistrements e table 1 qui ne se trouve pas dans table2
INTERSECT le contraire de EXCEPT
Select nom_societ from fournisseur
Select nom_societ from fournisseur
INTERSECT
EXCEPT
Select nom_societ from client
Select nom_societ from client
SQL ALL / ANY :
Exemple: les employs qui touchent un salaire suprieur n'importe quel autre
employ:
Select * from employ where salaire >=ALL (select salaire from employ )
SELECT * INTO
Pour copier les donnes dune table dans une autre table
Select * into employ2 from employ

FaceBook.com/DevNetSource
SQL VIEW
Une vue cest table virtuelle utiliser pour des raisons de securit, Le SELECT peut
contenir toutes les clauses d'un SELECT, sauf la clause ORDER BY.
create view NOM_VIEW(col1,col2,col3) as select nom,prenom,age from client
select * from NOM_VIEW
drop view NOM_VIEW -supprimer une vue
SQL INDEX
Un index est form de cls auxquelles SQL peut accder trs rapidement.
Comme pour l'index d'un livre, ces cls permettent de lire ensuite directement les
donnes repres par les cls.
CREATE INDEX
Un index se cre par la commande CREATE INDEX :

CREATE [UNIQUE] INDEX nom-index ON NOM_TABLE(col1, col2,...)


On peut spcifier par l'option UNIQUE que chaque valeur d'index doit tre unique
dans la table.
DROP INDEX
Un index peut tre supprim par la commande DROP INDEX :

DROP INDEX nom_index ON NOM_TABLE


Un index est automatiquement supprim ds qu'on supprime la table laquelle il
appartient.
SQL POWER
Pour retourner la puissance de l'expression (ExpressionExposant) :
POWER (Expression, Exposant)
POWER (Prix, 2)
SQL SQRT
Pour retourner la racine carre de l'expression :
SQRT (Expression)
SQRT (Remise)

Fonctions de chanes de caractres


Chaine1 + chaine2 = concatenation des chaines
Select nom+prenom as nom_complet from essai
La langueur dune chaine
Select LEN(chaine1)from table
segmenter une chane de caractre :

select left(chaine1,pos-fin)from table

--segmenter chaine jusqua la pos pos-fin

select SUBSTRING(chaine1,pos-debut,LEN(chaine1))from table --segmenter


apartir de pos-debut jusqua fin (len(chaine1))

Pour retourner la valeur ASCII d'un jeu de caractres indiqu :


ASCII (jeu_caractres)
ASCII (Nom)
supprimer les espaces + tabulation qui se trouve ou debut ou a la fin
select ltrim(chaine)from table / ltrim=au debut / rtrim=a la fin
maj. & min
select upper/lower(chaine1)from table
filtrage des nom:
select nom from client where nom like ah%/like [a-c]%/like cl____

FaceBook.com/DevNetSource

remplacer des caractres:

UPDATE NOM_TABLE SET chaine1


=REPLACE(chaine1,'chaine_rechercher','chaine_remplacer')
Renvoie (n) espace

select nom+SPACE(100)+prenom from etudiant


Renvoie n fois chaine

select REPLICATE(nom+' ',3) from etudiant


Renvoie une chaine de sens invers

Reverse(chaine)

LES FONCTIONS DE DATE :

Fonction DATENAME ()
DATENAME (format, exp1)= Renvoie la partie date sous forme de texte.
Select * from commande where month
(date_commd)=7 and year (date_commd)=2013 ;
Select * from commande where date_commd
between 20131211 and 20131225

FaceBook.com/DevNetSource
Fonction GETDATE ()

Fonction DATEDIFF ()

Fonction CONVERT ()

Fonction DATEADD ()

FaceBook.com/DevNetSource

Les jointures :

Les commandes DCL


Les commandes DCL (Data Control Language) permettent la gestion des droits d'accs
aux objets d'une base de donnes.
Un utilisateur de base de donnes doit possder un compte de scurit afin
d'accder aux tables ou tout autre lment.
GRANT permet d'accorder des droits un (parfois plusieurs sur certains SGBD)
utilisateur
REVOKE permet de retirer des droits un (ou plusieurs sur certains SGBD)
utilisateur
Les privilges sont les clauses qui peuvent tre autorises/retires
un utilisateur. Les principales sont :
DELETE: privilge de supprimer les donnes d'une table
INSERT: privilge d'ajouter des donnes une table
SELECT: privilge d'accder aux donnes d'une table
UPDATE: privilge de mettre jour les donnes d'une table
GRANT permet d'attribuer un privilge diffrents user sur diffrents objets.
GRANT SELECT
Autorise DUBOIS lancer des ordres SQL SELECT sur
ON T_CHAMBRE
la table T_CHAMBRE. Notez l'absence du mot TABLE.
TO DUBOIS
GRANT INSERT, UPDATE, DELETE
Autorise DUVAL et DUBOIS modifier les donnes
ON TABLE T_CHAMBRE
par tous les ordres SQL de mise jour (INSERT,
TO DUVAL, DUBOIS
UPDATE, DELETE) mais pas les lire !
GRANT SELECT
Autorise DUFOUR lancer des ordres SQL SELECT sur
ON TABLE T_CMAMBRE
la table T_CHAMBRE mais aussi transmettre tout
TO DUFOUR WITH GRANT OPTION
autre utilisateur les droits qu'il a acquis dans

FaceBook.com/DevNetSource
GRANT SELECT, INSERT, DELETE
ON TABLE T_CHAMBRE
TO DURAND WITH GRANT OPTION
GRANT SELECT, UPDATE
ON TABLE T_CHAMBRE
TO PUBLIC
GRANT ALL PRIVILEGES
ON TABLE T_CHAMBRE
TO DUBOIS
GRANT UPDATE (CHB_POSTE_TEL,
CHB_COUCHAGE)
ON TABLE T_CHAMBRE
TO DULAC
GRANT INSERT (CHB_NUMERO,
CHB_ETAGE, CHB_BAIN,
CHB_DOUCHE, CHB_WC)
ON TABLE T_CHAMBRE TO DULAC

cet ordre.
Autorise DURAND lancer des ordres SQL SELECT,
INSERT, DELETE sur la table T_CHAMBRE.
Autorise tous les utilisateurs prsent et venir
lancer des ordres SQL SELECT et UPDATE sur la
table T_CHAMBRE.
Ce qui autorise DUBOIS lancer sur la table
T_CHAMBRE, les mmes ordres SQL, que ceux autoris
DURAND (SELECT, INSERT, DELETE).
Cet ordre permet DULAC de modifier uniquement
les colonnes "poste tlphonique" et "nombre de
place de couchage" de la table T_CHAMBRE.
Cet ordre permet DULAC d'insrer une nouvelle
ligne dans la table, uniquement en spcifiant les
colonnes listes. Le problme est que dans cette
liste ne figure pas la colonne clef... Autrement
dit, DULAC ne pourra jamais rien insrer du tout,
sauf si la clef est calcule par un dclencheur
avant insertion.

REVOKE permet de rvoquer, c'est dire "retirer" un privilge.


REVOKE SELECT
Supprime le privilge de selection de la table
ON T_CHAMBRE
T_CHAMBRE attribu DUBOIS dans l'exemple 1.
FROM DUBOIS
REVOKE INSERT, DELETE
Supprime les privilges d'insertion et de
ON TABLE T_CHAMBRE
suppression de la table T_CHAMBRE attribu DUVAL
FROM DUVAL, DUBOIS
et DUBOIS dans l'exemple 2, mais pas celui de mise
jour (UPDATE).
REVOKE GRANT OPTION FOR SELECT
Supprime la possibilit pour DUFOUR de transmettre
ON TABLE T_CMAMBRE
le privilge de slection sur la table T_CHAMBRE.
FROM DUFOUR

CREATE UTILISATEUR :
CREATE LOGIN hassane
WITH PASSWORD = '123456' ;
CREATE LOGIN BrianG WITH PASSWORD = '1301C636F9D'

AFFICHER LES PERMISSIONS:


SELECT GRANTOR, GRANTEE, TABLE_NAME, ' <TABLE>' AS COLUMN_NAME, PRIVILEGE_TYPE,
IS_GRANTABLE
FROM
INFORMATION_SCHEMA.TABLE_PRIVILEGES

S-ar putea să vă placă și