VinzHell's World
  INSTRUCTIONS SQL
 

SQL

SUPER LIEN AVEC TOUS LES COURS SQL EN COMMANDE
CLIQUER ICI==>
http://sql.1keydata.com/fr/
http://sql.developpez.com/


Data Type.

Format

 

 

Numeric exact

 

Integer

Integer(precision)

De -2 147 483 643 à +2 147 483 643 sur 4 octets.

Smallint

Smallint(precision)

De -32 768 à +32767

Numeric

Numeric(precision,scale)

Scale= nbr de décimale

Decimal

decimal(precision,scale)

 

 

Numeric Approximate

 

Real

Real

De -1,175495e-38 à 3,402823e+38 sur 4 octets

Double precision

Double precision

De 2,2250738585072e-308 à 1,79769313486231e+308 sur 8 octets

Float

Float(precision)

Sur 4 octets si precision>25 8 octets si >=25

 

Character string

 

Char

Char(size)

Rempli les blancs par spaces

Varchar

Varchar(size)

Pas d'espaces

Clob

Clob(size)

Utilisé pour les variables et larges groupes de caractères.

 

Bit & binary strings

 

Bit

Bit(size)

Size doit être rempli du size déterminé + court ou + long = erreur (défaut=1)

Bit Varying

Bit varying(size)

Size détermine les caractères maximum + long est rejeté (défaut=illimité)

Blob

Blob(size)

Très large chaîne d'octet.

 

Boolean

 

Boolean

Boolean

True – false – unknown

 

Date time

 

Date

Date()

Année 4 digits - mois 2 digits (01-->12) - jours 2 digits (01-->30) longueur 10 positions.

Time

Time(precision)

Heures 2 digits (00-->23) minutes 2 digits (00-->59) secondes 2 digits décimale optionnelle longueur : 8 positions 9 avec les décimales.

Timestamp

Timestamp(precision)

Réunis date & heure longueur : 19 positions 20 avec les décimales.

With time zone

.....with time zone

Syntaxe : avec time : HH-MM-SS-HH-MM

avec timestamp : YYYY-MM-DD-HH-MM-SS-F..F-HH-MM

Interval

Interval year(precision)

interval month(precision)

inteval Year(prec.)to month

Stocke année et mois.

Interval

Interval(day)

Stocke le jour ou heures ou minute ou seconde

 

 

Constructed composite type

Inexistant dans SyBAse

Array

Array[maximum cardinality]

Acces au tableau par index – renvoi 'null' pour les éléments vides

Row

Nom ROW (fld1,fld2...fldn)

Collection de 1 ou plusieurs éléments (par ex-champs) un champ à un nom et un data type (idem colonnes de table).adresse Row(rue CHAR(20) ville CHAR(20))

Attribut composite.

 

Data Retrieval

 

Select

SELECT colonne_cible FROM Table_cible

Not case sensitive, une ou plusieurs lignes mais les mots-clés ne peuvent pas être splittés.

 

SELECT * FROM Table_cible.

Affiche tout les data de la table.

 

SELECT colonne_cible1, colonne_cible2 FROM Table_cible

Affiche les colonne_cible1 & colonne_cible2 de la table

 

SELECT colonne_cible as nom_de_colonne (alias) FROM Table_cible

Change le nom de la colonne.Entre « » donne des espace vide

Alias crée une colonne virtuelle par ex: Select Firstname, Year_result,(year_result/20)*100 as New_result crée une 3ième colonne new_result

 

Opérateur arithmétiques

 

 

+ - / *

 

 

Opérateur de concatenation

 

 

||

On ne peut pas concaténer autre chose que des caractères -> il faut convertir les données en varchar s'il faut concaténer des variables numériques ou date.

 

« + »

Sur Microsoft SQL Server

Convert

Convert (varchar,Nom_de_colonne)Convert,nom_colonne,style

Voir en fin de texte les fonctions spécifiques de Convert pour avoir les dates sous un format spécifique et immuable en SQL Server.

Distinct

Select DISTICNT colonne_cible from Table_cible

Retire les lignes identiques du résultat par ex s'il y a plusieurs fois le même nom -> il n'apparaîtra qu'une fois, supprime les redondances.

 

Select délimité & ordonné

 

Where

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible = xxx

Affiche la colonne_cible1, colonne_cible2 mais uniquement avec le filtre spécifié dans la condition where peut être utilisé avec<, <=, > >=, =,<>

Between

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible BETWEEN nn AND nn

Affiche la colonne_cible1, colonne_cible2 mais uniquement avec le filtre spécifié.

nn and nn spécifié après between sont deux chiffres précisant la portée. Nn & nn peuvent aussi être des dates à utiliser pour tout intervalle de valeur.

In

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible IN (na,nb,nc)

La condition IN peut être utilisée avec n'importe quel types de data.

Signifie est égal à na OU égal à nb OU égal à nc

Like

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible LIKE 'xyz'

Recherche effectuée avec des caractères et de chiffres. % Remplace plusieurs caractères,_ remplace un caractère.

AND.

 

OR

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible1 LIKE 'xyz' AND [OR] colonne_cible2

AND retourne vrai lorsque les deux conditions sont vraies.

OR retourne vrai lorsque une des deux conditions est vraie.

 

Not

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible1 NOT LIKE 'xyz'

Affiche le résultat s'il n'est pas équivalent à xyz, Peut-être mis devant Like, between, and, or & in

 

Rôle de préséance.

 

 

1

Opérateurs arithmétiques.

 

2

Opérateurs de concaténation.

 

3

Conditions de comparaison.

 

4

IS [NOT] NULL,LIKE, [NOT] IN

 

5

[NOT] BETWEEN

 

6

NOT condition logique.

 

7

AND condition logique.

 

8

OR condition logique.

Order by.

SELECT SELECT colonne_cible FROM Table_cible

ORDER BY colonne_cible DESC [ASC]

Affiche les colonnes selon un ordre ASCendant ou DESCendant par rapport à la colonne_cible spécifié après order by,

Peut-être ordonné sur un alias.

 

SELECT SELECT colonne_cible1,colonne_cible2,colonne_cible3 FROM Table_cible

ORDER BY colonne_cible1 DESC [ASC],colonne_cible2 DESC [ASC]

Affiche les colonnes selon un ordre ASCendant ou DESCendant par rapport aux colonne_cible1, colonne_cible2 spécifié après order by.

Triées 1ere sur la colonne_cible1 ensuite sur la colonne_cible2.

Toujours en fin d'écriture.

 

Numeric value functions

 

Position

POSITION(expression_chaine_1 IN expression_chaine2)

Retourne la position d'une chaîne dans une autre ou expression_chaîne1 est la chaîne à rechercher et expression_chaine2 et la chaîne dans laquelle il faut chercher

 

Extract

Datepart (sql server)

 

EXTRACT (champs_datetime FROM valeur_datetime)

(champs_datetime FROM valeur_interval)

(Champs_timezone FROM valeur_datetime)

 

Isole un simple champ d'un datetime ou d'un interval et le converti en nombre. Les paramètres sont : YEAR, MONTH, DAY, HOUR, MINUTE, SECONDE, FRACTION.

Ex:extract (year from date '08/12/1953') retourne 1953

Avec datepart – yyyy – mm – dd

(yyyy, champs_datetime)

 

datepart(champs_datetime,valeur_datetime)

 

Lenght

Len (sql server)

CHAR_length(chaine_de caratère) ou character_length(chaine_de caratère) ou

Octet_length(chaine_de caratère)

Retourne le nombre de caractères d'octet.ex: select char_length('kim bassinger') retourne 12

un espace = 1 caractère.

Cardinality

Cardinality (collection_value)

Retourne le nombre d'éléments dans un tableau.

Select CARDINALITY (colone_cible) from table_cible

ABS

Abs (valeur_numérique)

Retourne la valeur absolue d'une expression

Mod

% (sql server)

Mod(dividende, diviseur)

Nom_de_colone %diviseur

Retourne le reste de la division.

Select MOD (27,4) retourne 3

 

 

String value function

 

Substring

Substring(chaine from start [for lenght]

Retourne une sous chaîne (bit ou caractère) d'une source

select SUBSTRING ('kim FROM 2 FOR 2) retourne im

Left

Left(chaine,Nbr_Caractère)

Retourne le nbr_de_caractère d'une Chaîne dans une sous-chaîne (bit ou caractère).left(kim,2) retourne ki

Right

Right(chaine,Nbr_Caractère)

Retourne le nbr_de_caractère d'une Chaîne dans une sous-chaîne (bit ou caractère).right (kim,2) retourne im

Upper

Upper(chaîne_de_caractères)

Retourne la chaîne en majuscule

Lower.

Lower(chaîne_de_caractères)

Retourne la chaîne en minuscule.

Trim

TRIM ([both|leading|trailing] caractères FROM chaine_de_caratères)

Retourne la chaîne amputée du caractère.

Both : supprime tous les caractères désignés.Leading: supprime tout les caractères désignés a gauche de la chaîne

Trailing : supprime tous les caractères désignés à droite de la chaîne.

 

Date & time value function

 

Current

Getdate()

(SQL server)

CURRENT_DATE or CURRENT_TIME[(precision)] or CURRENT_TIMESTAMP[(precision)]

Retourne la date, time (heure), ou timestamp (date & heure) courant.

 

 

Local

 

LOCALTIME[(precision)] ou LOCALTIMESTAMP[(precision)]

 

Retourne time, ou timestamp courant de la zone horaire

 

Aggregate function

 

Count

COUNT(*|[distnct|all] nom_de_colonne)

Retourne le total du nbr. de ligne ou de valeurs d'une colonne qui ne contient pas null.distinct : sans les doublons

all (défaut): tout.* tout avec les null

Max

MAX(nom_de_colonne)

Retourne la valeur maximale à l'intérieur d'une colonne spécifique.

Min

MIN(nom_de_colonne)

Retourne la valeur minimum à l'intérieur d'une colonne spécifique

Sum

SUM(nom_de_colonne)

Retourne la somme des valeurs à l'intérieur d'une colonne spécifique.

Avg

AVG(nom_de_colonne)

Retourne la moyenne des valeurs à l'intérieur d'une colonne spécifique.

 

Condition de recherche

 

Case

....

End

CASE

WHEN Condition de recherche1 THEN résultat1

WHEN Condition de recherche THEN résultat2

[ELSE résultatx]

END

Permets de faire une recherche si la condition when est vraie alors résultat.si aucune condition alors sortie de la boucle ou passage par Else s'il est spécifié.

Nullif

NULLIF(valeur-t,valeur X)

Retourne NULL si valeur-t égale valeur X.

Coalesce

COALESCE(valeur-1,valeur-2,valeur-3)

Retourne une valeur dans coalesce si ce n'est pas NULL.

Retourne la première valeur trouvée.

 

Clause avancée Group by

 

Group BY

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible = xxx

GROUP BY

Fait un regroupement, spécifie comment les rangées devront être groupées dans la table.

Les colonnes spécifiées dans le SELECT qui ne sont pas dans la ‘’group function’’ doivent être dans la clause GROUP BY

Les différents groupes sont :

colonne simple, colonnes multiples, nested, having

Colonne simple

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible = xxx

GROUP BY colonne_cible1

Divise la table en sets

Souvent combiné avec des fonctions d'agrégat

Pas de Texte, Byte, Clob,Blob dans une clause

 

Colonne multiple

SELECT colonne_cible1, colonne_cible2 FROM Table_cible WHERE colonne_cible = xxx

GROUP BY colonne_cible1, colonne_cible2

Groupe sur plus d'une colonne.

 

 

Nested

 

 

 

SELECT Nom_de_colonne1,max(avg(nom_de_colonnenumérique)) FROM table_cible GROUP BY nom_de_colonne1

 

 

 

Retourne la ligne avec la moyenne maximale.

Se fait en deux phases :

1. Calcule le résultat moyen.

2. sélectionne le résultat moyen le plus haut

 

 

 

Having

SELECT ...... FROM ......

GROUP BY ....... HAVING (nom_de_colonne) condition

Affiche un set de colonnes restrain. Fait une nouvelle sélection de type where. Filtre le regroupement.

Rollup

 

Group by.... With Rollup

(sql server)

SELECT nom_colonne1,[nom_colonne2] SUM[MAX][AVG...] nom_colonne WHERE....GROUP BY ROLLUP.......

Obtient un tableau avec tous les sous totaux possibles.Utilisé pour produire des ensembles de cumul comme les sous totaux

Cube

 

Utilisé pour produire des valeurs résultantes de cross tabulation, S'applique dans les dataware House. Permets de gérer des données grâce aux calculs matriciels.Crée virtuellement un cube

 

Ensemble de Table

 

Equi-Join

SELECT table1,colonne1,table2.colonne1 FROM table1,table2

Where table1.colonne1= table2.colonne1

Les conditions de jointure sont dans la clause where. Évite les ambiguïtés en préfixant le nom des colonnes avec le nom des tables, permet l'utilisation d'alias pour simplifier les recherches.

 

Equi-join n tables

 

Joindre n tables requière au moins n-1 conditions par exemple: joindre 3tables requière au moins deux jointures.

Self-join

SELECT t1.colonne1, t2.colonne2 FROM table1 as t1, table1 as t2 WHERE t1.colonne = t2.colonne

Joint la table avec elle-même match les informations de la même table. Requière l'utilisation d'alias dans la clause FROM.

Nonequi-join

SELECT s.name,s.year,g.grade

FROM Grade g, Student s

WHERE s.year BETWEEN

g.lower-bound AND g.upper_bound

Fonction inverse a Equi Join

Cross join

(Pas supporté par SQL server)

SELECT course.course_id, professor.professor_id, FROM course CROSS JOIN professor

Très rarement utilisé.

Retourne un produit cartésien comme résultat

Natural join

(Pas supporté par SQL server)

SELECT * FROM t1 NATURAL JOIN t2

Jointure basée sur les colonnes des tables partageant le même nom.

Les valeurs non-identiques sont éliminées

Condition join

SELECT * FROM t1 JOIN t2 on t1.c1= t2.c3

La condition join du natural join est basiquement un equi-join de toutes les colonnes ayant le même nom.

 

 

Inner join

SELECT * FROM t1 join (t2 join t3 on t2.c3 = t3.c2) on t1.c1=t2 .c2

SELECT * FROM t1 INNER JOIN t2 on t1.c1= t2.c2

Jointure entre 3 tables la t2 est une table de liaison avec les FK comprenant les PK de T1 et T3.

Affiche les données des champs qui sont dans l'intersection des deux bases.

 

 

 

Left outer join

SELECT * FROM t1 LEFT OUTER JOIN t2 on t1.c1= t2.c3

Permets de récupérer l'entièreté de la table T1 et la partie commune de la table T2.

 

 

 

Rigth outer join

SELECT * FROM t1 RIGHT OUTER JOIN t2 on t1.c1= t2.c3

Permets de récupérer la partie commune de la table T1 et l'entièreté de la table T2.

 

 

 

Full outer join

SELECT * FROM t1 FULL OUTER JOIN t2 on t1.c1= t2.c3

Full outer join agit comme une combinaison des left et right outer joins

 

 

 

Union

SELECT * from T1

UNION

SELECT * FROM T2

Combine le résultat de plusieurs select en un seul résultat. Les opérateurs sont ALL & DISTINCT (défaut)

 

 

 

Union All

SELECT * from T1

UNION ALL

SELECT * FROM T2

Affiche toutes les occurrences des deux tables.

Union distinct

SELECT * from T1

UNION ALL

SELECT * FROM T2

Affiche qu’une seule fois les tuples se trouvant dans la t1 et dans la t2

Intersect

SELECT * from T1

INTERSECT

SELECT * FROM T2

Retourne les rangs existant dans l'intersection des deux tables.

 

 

 

Except

SELECT * from T1

EXCEPT

SELECT * FROM T2

Retourne les rangs qui sont dans la première table excepté de ceux qui apparaissent aussi dans la deuxième table. Peuvent être utilisés avec ALL & DISTINCT

 

Subqueries

 

 

 

Est une requête qui est évaluée avant le process de la recherche principale

 

SELECT select_list

From table

WHERE expr operator

(SELECT select_list FROM table)

Scellé dans la clause d'un autre select.

Peuvent être utilisé dans WHERE, HAVING, FROM.

Toujours entre parenthèse.Désigné sous outer query

Type de subqueries

 

Atomic (single row subquery)

Row - Table value (multiple row subquery)

 

 

 

 

Single-Row

SELECT last_name FROM student WHERE Year_result>(SELECT year_result FROM student WHERE last_name='bacon'

Retourne seulement une valeur & utilise les opérateurs de comparaison habituel.

Group Functions

SELECT last_name,year_result FROM student WHERE Year_result>(SELECT AVG(year_result) FROM student)

Affiche le résultat des étudiants qui ont un résultat supérieur a la moyenne de l’année.

Having clause

SELECT section_id,AVG(year_result) as Moyenne FROM student

GROUP BY section_id

HAVING AVG( Year_result) = (SELECT AVG(year_result) FROM student)

 

Multiple Row

 

Requête à cardinalité multiple

 

Multiple-row IN

 

 

 

 

 

Multiple-row ANY

SELECT last_name,year_result FROM student

WHERE Year_result IN (SELECT MAX(year_result)

FROM student)

GROUP BY section_id

 

SELECT last_name,year_result FROM student

WHERE Year_result <= ANY (SELECT MAX(year_result)

FROM student)

GROUP BY section_id

IN égale à un des membres présent dans la liste

 

 

 

 

 

 

 

ANY compare la valeur à chaque valeur retournée dans la liste.

Donne comme résultat tout les étudiants qui ont au minimum la valeur la plus petite de la liste

Multiple-row ALL

SELECT last_name,year_result FROM student

WHERE Year_result >= ALL (SELECT MAX(year_result)

FROM student)

GROUP BY section_id

ALL compare la valeur avec toutes les valeurs de la liste et retourne la valeur maximum de la liste

Correlated

 

Utilisé pour les recherches de ligne à ligne.

Chaque sous-recherche est exécutée pour chaque ligne de la OUTER query.

Les informations retournées dépendent des data qui ont été traitées dans la OUTER query

 

SELECT last_name,section_id year_result FROM student AS OUTER

WHERE Year_result >

(SELECT AVG(year_result) FROM student WHERE section_id = OUTER,section_id)

Cherche tous les étudiants qui ont plus que le résultat moyen de leur section.Chaque fois qu'une ligne de la Outer query est traitée la inner query est évaluée,

 

Ordre d’exécution :

 

 

From

Where

Group By

Having

Select

Order By

 

 

 

Limit (mySQL)

 

TOP(access)

SELECT * from table LIMIT x

SELECT * from table LIMIT x,y

Select top x from table

Affiche les x premiers résultats d’une table.Affiche les y résultats d’une table en commencant par x

Affiche les x premiers résultats d’une table en acces

 

 

 

Data Definition Language

Create table

 

 

 

Exemple pour Sqlite

 

CREATE TABLE [Nom_BD(shema).] table

(

colonne datatype [default expr]

);

create table recette (id_recette integer, nom text, page integer, id_liste integer, id_langue integer, constraint id_recette_pk primary key (id_recette), constraint id_liste_fk foreign key (id_liste) references liste (id_liste),constraint id_langue_fk foreign key (id_langue) references langue (id_langue) )

Crée une nouvelle table dans la DB active.

[default expr] spécifie une valeur par défaut pour la colonne lors de l'insertion des datas.

 

Alter table

ALTER TABLE table

ADD (colonne datatype [default expr]

);

Ajoute une nouvelle colonne.Describe permet d’afficher la structure de la table

 

ALTER TABLE table

MODIFY (colonne datatype [default expr]

);

Modifie une colonne existante.

 

ALTER TABLE table

DROP (colonne datatype [default expr]

);

Drop une colonne existante

Supprime tout les datas et les structures d'une table.Ne permet pas de retour en arrière

Truncate table

TRUNCATE TABLE table

Enlève toutes les lignes d'une table. Supprime uniquement les données.

Libère les storages utilisés par la table.Ne permet pas de retour en arrière

Comment on table

COMMENT ON TABLE table|COLUMN table.colonne IS 'text'

Ajoute un commentaire à une table ou à une colonne.

Utiliser text=' ' pour vider le comment.

Constraint

 

Renforce les règles au niveau de la table

Empêche la suppression de la table s'il y a des dépendances.

Peut-être créé soit à la création de la table soit après au niveau de la colonne ou de la table.

Not null

(contrainte de colonne)

CREATE TABLE employe (

id_empl NUMBER(6),

Last_name VARCHAR(25) NOT NULL

.......);

Ne permet pas que la colonne ait la valeur NULL

Disponible seulement au niveau de la colonne.

Unique

(contrainte de table)

CREATE TABLE employe (

id_empl NUMBER(6),

Last_name VARCHAR(25) NOT NULL

email VARCHAR2(25)

.......

CONSTRAINT emp_email UNIQUE(email));

Requière que chaque valeur dans la colonne ou dans un set de colonne (clé) soit unique.

Disponible au niveau de la BD ou de la colonne.

Si la contrainte est décrite au niveau de la table l'on peut alors l'utiliser dans le management de la BD.

Primary key

CREATE TABLE employe (

id_empl NUMBER(6),

Last_name VARCHAR(25) NOT NULL

.......

CONSTRAINT id_dept_pk PRIMARY KEY(id_empl));

TSQL primarykey(id.empl)

Créer la clé primaire de la table.

Disponible au niveau de la BD ou de la colonne.

Implique un index (physique) dans la table.

 

 

 

Foreign key

CONSTRAINT name FOREIGN KEY (nom_de_clé) REFERENCES(nom_de_table.nom_de_clé)

FOREIGN KEY : Défini la colonne dans la chaîne fille au niveau de la contraint de table.

REFERENCES: identifie la table et la colonne de la table parent.

ON DELETE CASCADE: supprime les lignes dépendantes dans la table fille lorsqu'une ligne de la table mère est supprimée.

ON DELETE SET NULL: converti les valeurs des foreign key dépendante à NULL.

Check

......,salary NUMBER(2)

CONSTRAINT emp_salary_min CHECK (salary > 1000)

Défini une condition que chaque colonne doit satisfaire les expressions suivantes n'est pas autorisées :

CURRVAL,NEXTVAL,LEVEL & ROWNUM

Calls to SYSDATE,UID,USER, & USERENV functions

Recherche qui réfère à d'autres valeurs dans d'autres lignes.

 

Ajout de contrainte avec ALTER TABLE

 

 

 

Il faut utiliser l'ALTER TABLE pour :

Ajouter ou supprimer une contrainte sans modifier la structure.

Permettre ou mettre hors d'action une contrainte.

Ajouter une contrainte NOT NULL en utilisant la clause MODIFY.

 

ALTER TABLE employe

ADD CONSTRAINT emp_manager_fk

FOREIGN KEY (manager_id)

REFERENCES employe(employe_id);

Une contrainte FOREIGN KEY est ajoutée à la table employe indique qu'un manager peut exister comme un employé dans la table EMPLOYE.

Drop

ALTER TABLE employe

DROP CONSTRAINT emp_manager_fk;

Retire une constraint d'une table.

Disabbling

ALTER TABLE employe

DISABLE CONSTRAINT emp_emp_id_pk CASCADE

Exécute la clause DISABLE du statement ALTER TABLE pour désactiver une contrainte d'intégrité.

Applique l'option CASCADE pour désactiver les contraintes d'intégrité dépendantes.

 

SELECT constraint_name,constraint_type,search_condition

FROM user_constraint

WHERE table_name='empoye'

Recherche la table USER_CONSTRAINT pour visualiser toutes les définitions de contrainte et leurs noms.

 

SELECT constraint_name,column_name

FROM user_cons_column

WHERE table_name = 'employe'

Visualise les colonnes associées avec les noms des contraintes dans la user_cons_column

Data Manipulation Language

 

Insert

INSERT INTO table [(colonne [,colonne...])] VALUES(value[,value...])

 

INSERT INTO table [(colonne [,colonne...])] (select value[,value...] from…)

Insère un enregistrement dans une table. Un enregistrement à la fois. Si la liste des colonnes n'est pas utilisée, la liste doit suivre l'ordre des colonnes. Les caractères et les dates doivent être mise entre simple cote. Les valeurs oubliées sont traitées comme NULL .

Lorsque il y a l’utilisation d’un select pour l’encodage des valeurs ->il ne faut pas utiliser VALUES

Update

UPDATE table SET colonne = valeur [,colonne=valeur,...]

[WHERE condition];

Modifie la valeur d'une ou de plusieurs colonnes dans un ou plusieurs enregistrements.

Peut-être utilisé avec les conditions de recherche ou des sous-requêtes requêtes.

L'absence de condition where signifie tous les enregistrements.

Delete

DELETE FROM table

[WHERE condition];

Retire des enregistrements d'une table, Peut être utilisé avec les conditions de recherche. L'absence de condition where signifie tous les enregistrements.

Merge

MERGE INTO table_name

USING(table|view|subquery)

ON (joint condition)

WHEN MATCHED THEN

UPDATE SET

col1=col_val1,

col2=col_val2

WHEN NOT MATCHED THEN

INSERT (colomn_list)

VALUES (column_value);

Utilisé lorsque l’on veut fusionner des bases de données secondaires dans une base de données principale (par ex : BD de délégué sur la route et BD de la société).Update et insert des datas dans une table conditionnellement.

Update si l'enregistrement existe.Insert si c'est un nouvel enregistrement.

 

 

Travailler avec les vues.

 

 

 

Principes :

Présente des subsets logique ou des combinaisons de datas

Peut-être basée sur des tables ou des vues.Ne stocke pas de data mais permet aux datas de changer à travers la vue.

Stockée comme un select dans le data dictionnary

Utilisée pour restreindre les accès aux datas, faire de recherche complexe plus facilement, présente différentes vue des même datas.

Simple views

CREATE VIEW studentVU1010

AS SELECT student_id,first_name,year_result

FROM student

WHERE section_id='1010'

Les datas proviennent d'une seule table.

NO functions

NO group of datas

Permets les DML à travers la vue.

Complex views

CREATE VIEW complVU (name,minres,maxres,avgr)

AS SELECT se.section_name,min(st.year_result),max((st.year_result),avg(st.year_result)

FROM student st,section se

WHERE st.section_id=se.section_id

GROUP BY se section_nam

Vue complexe :

-Les datas proviennent d'une ou plusieurs tables.-Functions.

-Groupes de data

-Permets les DML à travers la vue (sous réserve)

 

CREATE [OR REPLACE]

[FORCE|NOFORCE] View vue [(alias[,alias]...)

AS subquery

[WITH CHECK OPTION[ CONSTRAINT contrainte]]

[WITH READ ONLY CONSTRAINT contrainte]]

ON REPLACE recrée la vue si elle existe déjà.

FORCE créer la vue sans se soucier que la table existe.

NO FORCE créer la vue seulement si la table existe.

Vue nom de la vue.

Subquery est un select complet

WITH CHECK OPTION spécifie que seulement les lignes accessibles par la vue peuvent être insérée ou mise à jour.

WITH READ ONLY empêche toute action de DML sur la vue.

Contrainte est le nom assigné à CHECK OPTION ou à READ ONLY.

Querying a view

SELECT *

FROM studentVU1010

WHERE result >50

 

 

DML operation

 

Removing row

 

Adding Data

 

Interdit dans les vues simples contenant :

Group functions

A GROUP BY clause

le mot clé DISTINCT

Un pseudo colonne ayant comme mot-clé ROWNUM.

Colonne définies pas des expressions.Colonne NOT NULL dans les tables non sélectionnée dans la vue

With Check Option

CREATE OR REPLACE VIEW studVu

AS SELECT *

FROM studen

WHERE section_id =1010

WITH CHECK OPTION CONSTRAINT studvu_ck

Empêche les changements dans la section_id pour chaque row autrement il y aurait violation de la contrainte with check option

Utilisation limitée pour protéger l'intégrité des data.

Cette option spécifie que les inserts et les update exécutés à travers la vue ne peuvent créer des rows que la vue ne peut sélectionner en affichant une erreur avec le nom de la contrainte.

With read only

CREATE OR REPLACE VIEW studVu

AS SELECT *

FROM studen

WHERE section_id =1020

WITH READ ONLY CONSTRAINT studvu_ck

Empêche toutes les opérations DML sur la vue.

Removing a view

DROP VIEW view

Supprimer une vue ne supprime pas les datas de la table d'origine de la vue.

 

 

 

 

Fonction de Convert

 

Lorsque vous extrayez une date sous forme littérale, SQL Server se servira à nouveau des paramètres régionaux pour formater la chaîne de caractères. Vous risquez d'être surpris par le résultat...

Si vous voulez un format immuable et reproductible, vous devez utiliser la fonction CONVERT, qui, à l'aide d'un paramètre de style peut vous donner différentes présentations :

 

Style

Présentation

0 ou

100

mois jj aaaa hh:mmAM (ou PM)

101

 

mm/jj/aa

102

 

aa.mm.jj

103

 

jj/mm/aa

104

 

jj.mm.aa

105

 

jj-mm-aa

106

 

jj-mm-aa

107

 

mois jj, aa

108

 

hh:mm:ss

9 ou

109

mois jj aaaa hh:mm:ss:mmmAM (ou PM)

110

 

mm-jj-aa

111

 

aa/mm/jj

112

 

aammjj

13 ou 113

jj mois aaaa hh:mm:ss:mmm

114

 

hh:mm:ss:mmm

20 ou 120

aaaa-mm-jj hh:mm:ss

21 ou 121

aaaa-mm-jj hh:mm:ss.mmm

126

 

aaaa-mm-jj Thh:mm:ss.mmm

130

 

jj mon aaaa hh:mm:ss:mmmAM

131

 

jj/mm/aa hh:mm:ss:mmmAM

 
   
 
Ce site web a été créé gratuitement avec Ma-page.fr. Tu veux aussi ton propre site web ?
S'inscrire gratuitement