SlideShare une entreprise Scribd logo
Jean-Marie Renouard 
LightPath 2014© 
LightPath 2014© - http://www.jmrenouard.fr 
1
Le logo PHP est du domaine public 
http://commons.wikimedia.org/wiki/File:PHP-logo.svg 
Ce document est licencié sous licence 
◦Attribution-NonCommercial-ShareAlike 
◦CC BY-NC-SA 
Plus de détails: 
http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ 
LightPath 2014© - http://www.jmrenouard.fr 
2
Langage d'interrogation de données. 
Langage de manipulation de données. 
Les types de données. 
Création de tables. 
Opérateurs, fonctions et conversions. 
Les différents types d'index. 
LightPath 2014© - http://www.jmrenouard.fr 
3
LightPath 2014© - http://www.jmrenouard.fr 
4
SELECT [STRAIGHT_JOIN] 
[SQL_SMALL_RESULT] 
[SQL_BIG_RESULT] 
[SQL_BUFFER_RESULT] 
[SQL_CACHE | SQL_NO_CACHE] 
[SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY] select_expression 
STRAIGHT_JOIN : Jointure ordonnée de colonne. 
SQL_SMALL_RESULT : Indication de résultats peu nombreux. 
SQL_BIG_RESULT : Indication de résultats très nombreux. 
SQL_BUFFER_RESULT : Stockage en table temporaire. 
SQL_CACHE | SQL_NO_CACHE : Stockage en cache. 
 SQL_CALC_FOUND_ROWS: Activation du comptage de tuples. 
HIGH_PRIORITY : Priorité augmentée à l'exécution. 
LightPath 2014© - http://www.jmrenouard.fr 
5
 [INTO {OUTFILE | DUMPFILE} 'nom_fichier' export_options] 
 [FROM table_references 
 [WHERE where_definition] 
 [GROUP BY {unsigned_integer | nom_de_colonne | formula} [ASC | DESC], ... 
 [HAVING where_definition] 
 [ORDER BY {unsigned_integer | nom_de_colonne | formula} [ASC | DESC] ,...] 
 [LIMIT [offset,] lignes] 
 [PROCEDURE procedure_name(argument_list)] 
 [FOR UPDATE | LOCK IN SHARE MODE]] 
FOR UPDATE et LOCK IN SHARE MODE 
◦Options de verrouillage des lignes. 
LightPath 2014© - http://www.jmrenouard.fr 
6
Requête simple 
◦select * from user; 
Fusion tuple à tuple 
◦select * db, user; 
Jointure 
◦select u.user , db.db from user u, db db where a.user=db.user group by user; 
LightPath 2014© - http://www.jmrenouard.fr 
7
Agrégation 
◦select a, count(b.db) 
◦from user a, db b 
◦where a.user=b.user 
◦group by a.user; 
 Requêtes imbriquées 
◦select tu.user 
◦from user tu 
◦where NOT EXISTS ( 
◦ select * from db td where td.user=tu.user 
◦) ; 
LightPath 2014© - http://www.jmrenouard.fr 
8
LightPath 2014© - http://www.jmrenouard.fr 
9
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] 
 [INTO] tbl_name [(col_name,...)] 
 VALUES ({expr | DEFAULT},...),(...),... 
 [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] 
 [INTO] tbl_name 
 SET col_name={expr | DEFAULT}, ... 
 [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] 
 [INTO] tbl_name [(col_name,...)] SELECT ... 
LightPath 2014© - http://www.jmrenouard.fr 
10
Insertion simple 
◦INSERT INTO USER VALUES (1, « Paul », « DUPONT »); 
Insert-Affectation 
◦INSERT INTO USER SET USER=‘JEAN’; 
Insertion par requête 
◦INSERT INTO TABLE SELECT * FROM TMP_USER; 
LightPath 2014© - http://www.jmrenouard.fr 
11
LightPath 2014© - http://www.jmrenouard.fr 
12
TINYINT[(M)] [UNSIGNED] [ZEROFILL] : Entier (1 octet ). 
BIT/BOOL/ BOOLEAN : Alias de TinyInt. 
SMALLINT[(M)] [UNSIGNED] [ZEROFILL] : Entier ( 2 octets ) 
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] : Entier ( 3 octets ). 
INT[(M)] [UNSIGNED] [ZEROFILL] : Entier ( 4 octets ). 
INTEGER[(M)] [UNSIGNED] [ZEROFILL] : Alias de INT. 
BIGINT[(M)] [UNSIGNED] [ZEROFILL] : Entier ( noctets ). 
FLOAT(precision) [UNSIGNED] [ZEROFILL]: Nombre à virgule flottante. 
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] : Nombre à virgule flottante. 
LightPath 2014© - http://www.jmrenouard.fr 
13
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] 
◦Nombre à virgule flottante double p. 
DOUBLE PRECISION[(M,D)] 
◦Nombre flottant double précision. 
REAL[(M,D)] [UNSIGNED] [ZEROFILL] : Alias de DOUBLE 
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] 
◦Nombre à virgule :littéral 
DEC[(M[,D])] [UNSIGNED] [ZEROFILL] : Alias de DECIMAL 
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]: Alias de DECIMAL 
FIXED[(M[,D])] [UNSIGNED] [ZEROFILL] : Alias de DECIMAL 
LightPath 2014© - http://www.jmrenouard.fr 
14
 DATE: Date sur l'intervalle de '1000-01-01' à '9999- 12-31' . 
 DATETIME : Combinaison de date et heure. 
TIMESTAMP[(M)] : Timestamp. 
 TIME: Heure sur l'intervalle de +/-838:59:59. 
YEAR[(2|4)] : Année au format 2 ou 4 chiffres. 
LightPath 2014© - http://www.jmrenouard.fr 
15
[NATIONAL] CHAR/CHARACTER(M) [BINARY | ASCII | UNICODE]: 
◦Une chaîne de caractère de taille fixe (255 caractères) 
[NATIONAL] VARCHAR(M) [BINARY] 
◦Une chaîne de taille dynamique. 
CHAR : Alias de CHAR(1) . 
VARCHAR: Alias de CHARACTER VARYING . 
LightPath 2014© - http://www.jmrenouard.fr 
16
TINYBLOB/TINYTEXT 
◦Données de 2^8 octets. 
BLOB/TEXT 
◦Données de 2^16 octets. 
MEDIUMBLOB/MEDIUMTEXT 
◦Données de 2^24 octets. 
LONGBLOBLONGTEXT 
◦Données de 2^32 octets. 
ENUM('value1','value2',...) 
◦Une énumération de 65535 valeurs distinctes. 
SET('value1','value2',...) 
◦Un ensemble de 64 membres maximum. 
LightPath 2014© - http://www.jmrenouard.fr 
17
LightPath 2014© - http://www.jmrenouard.fr 
18
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name 
[(create_definition,...)] 
[table_options] [select_statement] 
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name 
[(] LIKE old_tbl_name [)]; 
LightPath 2014© - http://www.jmrenouard.fr 
19
Requête SQL 
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name 
[(create_definition,...)] 
[table_options] [select_statement] 
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name 
[(] LIKE old_tbl_name [)]; 
CREATE TABLE t ( 
c1 CHAR(20) CHARACTER SET utf8, 
c2 CHAR(20) CHARACTER SET latin1 COLLATE latin1_bin 
); 
LightPath 2014© - http://www.jmrenouard.fr 
20
column_definition 
col_name type [NOT NULL | NULL] [DEFAULT default_value] 
[AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string'] 
[reference_definition] 
reference_option 
RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT 
LightPath 2014© - http://www.jmrenouard.fr 
21
create_definition: 
column_definition 
| [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) 
| KEY [index_name] [index_type] (index_col_name,...) 
| INDEX [index_name] [index_type] (index_col_name,...) 
| [CONSTRAINT [symbol]] UNIQUE [INDEX] 
[index_name] [index_type] (index_col_name,...) 
| [FULLTEXT|SPATIAL] [INDEX] [index_name] (index_col_name,...) 
| [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition] 
| CHECK (expr) 
LightPath 2014© - http://www.jmrenouard.fr 
22
index_col_name: 
col_name [(length)] [ASC | DESC] 
reference_definition: 
REFERENCES tbl_name [(index_col_name,...)] 
[MATCH FULL | MATCH PARTIAL] 
[ON DELETE reference_option] 
[ON UPDATE reference_option] 
LightPath 2014© - http://www.jmrenouard.fr 
23
table_option 
{ENGINE|TYPE} = {BDB|HEAP|ISAM|InnoDB|MERGE|MRG_MYISAM|MYISAM} 
| AUTO_INCREMENT = value | AVG_ROW_LENGTH = value | CHECKSUM = {0 | 1} 
| COMMENT = 'string' | MAX_ROWS = value | MIN_ROWS = value 
| PACK_KEYS = {0 | 1 | DEFAULT} | PASSWORD = 'string' | DELAY_KEY_WRITE = {0 | 1} 
| ROW_FORMAT = { DEFAULT | DYNAMIC | FIXED | COMPRESSED } 
| RAID_TYPE = { 1 | STRIPED | RAID0 } RAID_CHUNKS = value RAID_CHUNKSIZE = value 
| UNION = (tbl_name[,tbl_name]...) | INSERT_METHOD = { NO | FIRST | LAST } 
| DATA DIRECTORY = 'absolute path' | INDEX DIRECTORY = 'absolute path' 
| [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] 
LightPath 2014© - http://www.jmrenouard.fr 
24
LightPath 2014© - http://www.jmrenouard.fr 
25
Opérateurs logiques 
AND, OR, NOT IN, BETWWEN 
Opérateurs de comparaison 
 <, >, <=, >=, =, !=, <> 
Opérateurs mathématiques 
 +,-,*,/, %,^, ||/, |/, !, @, &, |, ~, >>, << 
Les opérateurs 
LightPath 2014© - http://www.jmrenouard.fr 
26
LightPath 2014© - http://www.jmrenouard.fr 
27
ABS(X) : Valeur absolue de X . 
ACOS(X) : Arccosinus de X. 
ASIN(X) : Arcsinus de X. 
ATAN(X) : Arctangente de X. 
ATAN(Y,X) : Arctangente (Y,X) 
ATAN2(Y,X) : Arctangente des variables de Y / X 
CEILING(X)/CEIL(X) : Valeur entière supérieure de X . 
COS(X) : Cosinus de X , où X est donné en radian. 
COT(X) : Cotangente de X . 
Fonctions mathématiques 
LightPath 2014© - http://www.jmrenouard.fr 
28
CRC32(expr) : Somme de contrôle - entier 32 bits non-signé. 
DEGREES(X) :Conversion de radian en degré. 
EXP(X) : Exponentiel x : e^x 
FLOOR(X) : Valeur entière inférieure de X . 
LN(X) : Logarithme naturel de X (népérien). 
LOG(X)/LOG(B,X) : Logarithme de X en base B sinon LN(X) . 
LOG2(X) : Logarithme en base 2 de X . 
LOG10(X) : Logarithme en base 10 de X . 
MOD(N,M) : Reste de la division de N par M . 
Fonctions mathématiques 
LightPath 2014© - http://www.jmrenouard.fr 
29
PI() : Valeur de Pi. 
POW(X,Y)/POWER(X,Y) : Valeur de X élevée à la puissance Y. 
RADIANS(X) : Conversion de degré en radian. 
RAND()/RAND(N) : Nombre aléatoire à virgule flottante. 
ROUND(X)/ROUND(X,D) : Arrondi à un nombre à D décimales. 
SIGN(X) : Signe de l'argument sous la forme -1 , 0 , ou 1. 
SIN(X) : Sinus de X , où X est donnée en radian. 
SQRT(X) : Racine carrée de X. 
TAN(X) : Tangente de X en radian. 
TRUNCATE(X,D) : Troncature à D décimales. 
Fonctions mathématiques 
LightPath 2014© - http://www.jmrenouard.fr 
30
LightPath 2014© - http://www.jmrenouard.fr 
31
ASCII(str) : Code ASCII du premier caractère de la chaîne. BIN(N) : Chaîne représentant la valeur binaire de N BIT_LENGTH(str) : Nombre de bits de la chaîne de caractères str . CHAR(N,...) : Chaîne identifiée par leur code ASCII. CHAR_LENGTH(str) : Nombre de caractères de la chaîne str CHARACTER_LENGTH(str): Alias de CHAR_LENGTH. COMPRESS(string_to_compress) : Compression de la chaîne. CONCAT(str1,str2,...) : Concaténation des arguments. CONCAT_WS(separator, str1, str2,...) : Idem avec un séparateur. 
Fonctions sur chaîne de caractère 
LightPath 2014© - http://www.jmrenouard.fr 
32
CONV(N,from_base,to_base) : Conversion de N entre différentes bases. 
ELT(N,str1,str2,str3,...) : Élement N+1 de la liste d'argument 
EXPORT_SET(bits,on,off,[séparateur,[nombre_de_bits]]) : 
Conversion de bits en chaîne. 
FIELD(str,str1,str2,str3,...) : Index de la chaîne str dans les arguments. 
FIND_IN_SET(str,strlist) : Index de la chaîne la liste strlist 
H.EX(N_or_S) : Conversion chaîne/héxadécimal. 
INSERT(str,pos,len,newstr) : Chaîne de caractères avec newstr insérée. 
INSTR(str,substr) : Index de la première occurrence de la chaîne. 
Fonctions sur chaîne de caractère 
LightPath 2014© - http://www.jmrenouard.fr 
33
LCASE(str) : Alias de Lower() LEFT(str,len) : len premiers caractères LENGTH(str) : Taille de la chaîne str , mesurée en octets. LOAD_FILE(file_name) : Contenu sous la forme d'une chaîne de caractères. LOCATE(substr,str)/LOCATE(substr,str,pos) : Position de la première occurrence. LOWER(str) : Chaîne str avec tous les caractères en minuscules LPAD(str,len,padstr) : Chaîne de caractères str , complétée à gauche. LTRIM(str) : Chaîne de caractères str sans les espaces initiaux. MAKE_SET(bits,str1,str2,..) : Découpage de la chaîne en liste. 
Fonctions sur chaîne de caractère 
LightPath 2014© - http://www.jmrenouard.fr 
34
MID(str,pos,len) : Alias de SUBSTRING(str,pos,len) . 
OCT(N) : Chaîne de caractère représentant la valeur octal. 
OCTET_LENGTH(str) : Alias de OCTET_LENGTH() 
ORD(str) : Code du premier caractère de la chaîne str. 
POSITION(substr IN str) : Alias de LOCATE(substr,str) . 
QUOTE(str) : Échappement les caractères spéciaux d'une chaîne. 
REPEAT(str,count) : Répetition de la chaîne. 
REPLACE(str,from_str,to_str) : Substitution de chaîne. 
REVERSE(str) : Chaîne inverse de la chaîne str. 
Fonctions sur chaîne de caractère 
LightPath 2014© - http://www.jmrenouard.fr 
35
RIGHT(str,len) : len derniers caractères de la chaîne str. RPAD(str,len,padstr) : Complétion droite de la chaîne str. RTRIM(str) : Chaîne de caractères str sans les espaces finaux. SOUNDEX(str) : Valeur soundex de la chaîne. SPACE(N) : Chaîne de N espaces. SUBSTRING(str,pos) : Sous-chaîne. SUBSTRING(str FROM pos) : Alias de SUBSTRING(str, pos). SUBSTRING(str,pos,len) : Idem avec une longueur définie. SUBSTRING(str FROM pos FOR len) : Alias de SUBSTRING(str,pos,len). 
Fonctions sur chaîne de caractère 
LightPath 2014© - http://www.jmrenouard.fr 
36
SUBSTRING_INDEX(str,delim,count) : Intervalle de chaîne 
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str) : Suppression de caractère en début et/ou en fin de chaîne. 
UCASE(str)/UPPER(str) : Mise en majuscule de la chaîne str. 
UNCOMPRESS(string_to_uncompress) : Décompression de la chaîne 
UNCOMPRESSED_LENGTH(compressed_string) : Taille de la chaîne. 
UNHEX(str) : Chaîne héxadécimale en ascii. 
Fonctions sur chaîne de caractère 
LightPath 2014© - http://www.jmrenouard.fr 
37
LightPath 2014© - http://www.jmrenouard.fr 
38
ADDDATE(date,INTERVAL expr type) : Ajout de date. 
ADDDATE(expr,days) : Ajout de date. 
ADDTIME(expr,expr2) : Ajout d'heure. 
CURDATE() : Date actuelle. 
CURRENT_DATE() : Date actuelle. 
CURTIME() : Heure actuelle. 
CURRENT_TIME : Heure actuelle. 
YEAR(date) : Année de la date. 
YEARWEEK(date) : Numéro de la semaine de la date. 
Fonctions sur le temps 
LightPath 2014© - http://www.jmrenouard.fr 
39
CURRENT_TIMESTAMP : Date et heure actuelle. 
DATE(expr) : Extraction de la date. 
DATEDIFF(expr,expr2) : Nombre de jour d'écart. 
DATE_ADD(date,INTERVAL expr type) : Ajout de dates. 
DATE_SUB(date,INTERVAL expr type) : Soustraction de dates. 
DATE_FORMAT(DATE, format) : Date formatée. 
DAY(date) : Alias de dayofthemonth(). 
DAYNAME(date) : Nom du jour. 
Fonctions sur le temps 
LightPath 2014© - http://www.jmrenouard.fr 
40
DAYOFMONTH(date) : Jour du mois (1 à 31). 
DAYOFWEEK(date) : Jour de la semaine (1 : dimanche). 
DAYOFYEAR(date) : Jour de l'année. 
EXTRACT(type FROM date) : Extraction d'information de temps. 
FROM_DAYS(N) : Nombre de jours depuis N. 
FROM_UNIXTIME(unix_timestamp): Conversion d'un timestamp. 
GET_FORMAT(type) : Format du type de date. 
HOUR(time) : Extraction du nombre d'heure. 
LAST_DAY(date) : Dernier jour du mois courant. 
Fonctions sur le temps 
LightPath 2014© - http://www.jmrenouard.fr 
41
LOCALTIME() : Heure locale. 
LOCALTIMESTAMP : Date et heure locale. 
MAKEDATE(year, nbDay) : Date à partir de l'année et du nombre de jour 
MAKETIME(hour,minute,second) : Heure à partie de heure, minute et seconde. 
MICROSECOND(expr) : Nombre de micro-seconde. 
MINUTE(time) : Nombre de minute. 
MONTH(date) : Mois de la date. 
MONTHNAME(date) : Nom du mois. 
NOW() : Date actuelle. 
Fonctions sur le temps 
LightPath 2014© - http://www.jmrenouard.fr 
42
PERIOD_ADD(P,N) : Ajout de période. 
PERIOD_DIFF(P1,P2) : Différence entre période. 
QUARTER(date) : Trimestre de la date. 
SECOND(time) : Nombre de seconde de la date. 
SEC_TO_TIME(seconds) : Date à partir d'un nombre de s. 
STR_TO_DATE(str,format) : Date à partir d'une chaîne. 
SUBDATE(date,INTERVAL expr type) : Alias de DATE_SUB. 
SUBDATE(expr,days) : Soustraction de 2 dates. 
SUBTIME(expr,expr2) : Soustraction de 2 heures. 
Fonctions sur le temps 
LightPath 2014© - http://www.jmrenouard.fr 
43
SUBTIME(exp1, exp2) : Soustraction de date. 
SYSDATE() : Alias de Now(). 
TIME(expr) : Extraction de l'heure. 
TIMEDIFF(expr,expr2) : Soustraction de 2 heures. 
TIMESTAMP(expr) : Timestamp à partir d'une chaîne. 
TIMESTAMPADD(in,expr,expr2) : Ajout de timestamp. 
TIMESTAMPDIFF(in,expr1,expr2) : Soustraction de timestamp. 
TIME_FORMAT(time,format) : Affichage de l'heure au format. 
TIME_TO_SEC(time) : Conversion en seconde. 
Fonctions sur le temps 
LightPath 2014© - http://www.jmrenouard.fr 
44
TO_DAYS(date) : Nombre de jours depuis la date. 
UNIX_TIMESTAMP() : Timestamp Unix actuelle. 
UNIX_TIMESTAMP(date) : Timestamp Unix de la date. 
UTC_DATE : Date au format UTC. 
UTC_TIME : Heure au format UTC. 
UTC_TIMESTAMP : Timestamp au format UTC. 
WEEK(date [,mode]) : Numéro de la semaine. 
WEEKDAY(date) : Jour de la semaine de la date. 
WEEKOFYEAR(date) : Jour de l'année de la date. 
Fonctions sur le temps 
LightPath 2014© - http://www.jmrenouard.fr 
45
LightPath 2014© - http://www.jmrenouard.fr 
46
AVG(expr) : Moyenne des valeurs. BIT_AND(expr) : ET bit à bit des valeurs. BIT_OR(expr) : OU bit à bit des valeurs. BIT_XOR(expr) : OU EXCLUSIF bit à bit des valeurs. COUNT(expr) : Nombre de valeurs. COUNT(DISTINCT expr,[expr...]) : Nombre de valeurs distinctes. 
Fonctions d’agrégat 
LightPath 2014© - http://www.jmrenouard.fr 
47
•GROUP_CONCAT(expr) : Concaténation des valeurs. 
•MIN(expr) : Valeur minimum. 
•MAX(expr) : Valeur maximum. 
•STD(expr) / STDDEV(expr) : Dérivation standard entre les valeurs. 
•SUM(expr) : Somme des valeurs. 
•VARIANCE(expr) : Variance des valeurs. 
Fonctions d’agrégat 
LightPath 2014© - http://www.jmrenouard.fr 
48
LightPath 2014© - http://www.jmrenouard.fr 
49
Fonctions de chiffrements. 
Fonctions d'informations. 
Fonctions diverses. 
Les autres fonctions 
LightPath 2014© - http://www.jmrenouard.fr 
50
LightPath 2014© - http://www.jmrenouard.fr 
51
Index simple colonne 
CREATE INDEX idx on table_price ( price); 
Index multi-colonne 
CREATE INDEX idx_price_cat in table_price (price, cat); 
Pas d'index sur expression 
SELECT * FROM test1 WHERE lower(col1) = 'value'; 
CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1)); 
 Pas d'index partiel 
CREATE INDEX low_price_idx on table_price(price) where price BETWEEN 1 AND 10; 
Les indexes LightPath 2014© - http://www.jmrenouard.fr 
52
Index BTREE 
Utile quand la granularité des données est forte. 
Ex : pour l'indexation d'identifiant unique. 
Index HASH 
Utile quand la granularité des données est faible. 
 Ex : La couleur d'une voiture. 
Les indexes 
LightPath 2014© - http://www.jmrenouard.fr 
53
Index RTREE 
Utile pour les données spatiales. 
Ex : Coordonnées d'une étoile dans l'univers. 
Index FULLTEXT 
Utile pour les recherche dans du texte. 
Ex : recherche d'un texte à partir d'une citation. 
Les indexes LightPath 2014© - http://www.jmrenouard.fr 
54
Documentation de MySQL 
http://dev.mysql.com/ 
LightPath 2014© - http://www.jmrenouard.fr 
55
LightPath: 
◦Société de conseil et d’ingénierie 
◦Formations, Conseil, Audit et mise en oeuvre 
◦jmrenouard@lightpath.fr 
Jean-Marie RENOUARD 
◦jmrenouard@gmail.com 
◦Twitter: @jmrenouard 
◦http://www.jmrenouard.fr 
LightPath 2014© - http://www.jmrenouard.fr 56

Contenu connexe

Tendances

Client base de données en PHP5
Client base de données en PHP5Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
 
Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
Jean-Marie Renouard
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
Jean-Marie Renouard
 
Configuration PHP5
Configuration PHP5Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
 
Fichier XML et PHP5
Fichier XML et PHP5Fichier XML et PHP5
Fichier XML et PHP5
Jean-Marie Renouard
 
MVC / Frameworks PHP
MVC / Frameworks PHPMVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
 
Présentation de PHP
Présentation de PHPPrésentation de PHP
Présentation de PHP
Jean-Marie Renouard
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
Kristen Le Liboux
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
Engineor
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
 
PHP5 - POO
PHP5 - POOPHP5 - POO
PHP5 - POOmazenovi
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
 
Introduction au Jquery
Introduction au JqueryIntroduction au Jquery
Introduction au Jquery
Abdoulaye Dieng
 
Cours php
Cours phpCours php
Cours php
csskaled
 
Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaireMeet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
Julien Vinber
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
Club Scientifique de l'ESI - CSE
 

Tendances (19)

Client base de données en PHP5
Client base de données en PHP5Client base de données en PHP5
Client base de données en PHP5
 
Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
Configuration PHP5
Configuration PHP5Configuration PHP5
Configuration PHP5
 
Fichier XML et PHP5
Fichier XML et PHP5Fichier XML et PHP5
Fichier XML et PHP5
 
MVC / Frameworks PHP
MVC / Frameworks PHPMVC / Frameworks PHP
MVC / Frameworks PHP
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
 
Présentation de PHP
Présentation de PHPPrésentation de PHP
Présentation de PHP
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
 
PHP5 - POO
PHP5 - POOPHP5 - POO
PHP5 - POO
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Introduction au Jquery
Introduction au JqueryIntroduction au Jquery
Introduction au Jquery
 
Cours php
Cours phpCours php
Cours php
 
Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaireMeet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 

Similaire à SQL et MySQL

oracle : le PL-SQL
oracle : le PL-SQLoracle : le PL-SQL
oracle : le PL-SQL
Mohammed Jaafar
 
1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf
ImaneZoubir1
 
PL LSQL.pptx
PL LSQL.pptxPL LSQL.pptx
PL LSQL.pptx
MaNl13
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
James RAVAILLE
 
SQL-ORACLE.pdf
SQL-ORACLE.pdfSQL-ORACLE.pdf
SQL-ORACLE.pdf
SamirAwad14
 
SQL-ORACLE.pptx
SQL-ORACLE.pptxSQL-ORACLE.pptx
SQL-ORACLE.pptx
SamirAwad14
 
Tour C++
Tour C++Tour C++
Tour C++
Sais Abdelkrim
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
marwa baich
 
Chap 3 : structered query language
Chap 3 : structered query languageChap 3 : structered query language
Chap 3 : structered query language
Ramzi Trabelsi
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
Souhaibou Salla
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
webreaker
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
univalence
 
Algo poo ts
Algo poo tsAlgo poo ts
Algo poo ts
mohamed El babili
 
Partie1 TypeScript
Partie1 TypeScriptPartie1 TypeScript
Partie1 TypeScript
Habib Ayad
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
SergeOngolo
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
Asmaa BENGUEDDACH
 
20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soatSOAT
 

Similaire à SQL et MySQL (20)

oracle : le PL-SQL
oracle : le PL-SQLoracle : le PL-SQL
oracle : le PL-SQL
 
1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf
 
PL LSQL.pptx
PL LSQL.pptxPL LSQL.pptx
PL LSQL.pptx
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 
SQL-ORACLE.pdf
SQL-ORACLE.pdfSQL-ORACLE.pdf
SQL-ORACLE.pdf
 
SQL-ORACLE.pptx
SQL-ORACLE.pptxSQL-ORACLE.pptx
SQL-ORACLE.pptx
 
Tour C++
Tour C++Tour C++
Tour C++
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Chap 3 : structered query language
Chap 3 : structered query languageChap 3 : structered query language
Chap 3 : structered query language
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Hello mongo
Hello mongoHello mongo
Hello mongo
 
Algo poo ts
Algo poo tsAlgo poo ts
Algo poo ts
 
Partie1 TypeScript
Partie1 TypeScriptPartie1 TypeScript
Partie1 TypeScript
 
Sql3
Sql3Sql3
Sql3
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
Plsql
PlsqlPlsql
Plsql
 
20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat
 

Plus de Jean-Marie Renouard

Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Manuel De Securite  1.8 (Mise à jour avec DOCKER)Manuel De Securite  1.8 (Mise à jour avec DOCKER)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Jean-Marie Renouard
 
ManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdfManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdf
Jean-Marie Renouard
 
Manuel de sécurité Linux
Manuel de sécurité Linux Manuel de sécurité Linux
Manuel de sécurité Linux
Jean-Marie Renouard
 
Ssh cookbook v2
Ssh cookbook v2Ssh cookbook v2
Ssh cookbook v2
Jean-Marie Renouard
 
Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
Jean-Marie Renouard
 
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur LinuxManuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Jean-Marie Renouard
 

Plus de Jean-Marie Renouard (6)

Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Manuel De Securite  1.8 (Mise à jour avec DOCKER)Manuel De Securite  1.8 (Mise à jour avec DOCKER)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
 
ManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdfManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdf
 
Manuel de sécurité Linux
Manuel de sécurité Linux Manuel de sécurité Linux
Manuel de sécurité Linux
 
Ssh cookbook v2
Ssh cookbook v2Ssh cookbook v2
Ssh cookbook v2
 
Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
 
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur LinuxManuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
 

Dernier

COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
sieousse95
 
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Institut de l'Elevage - Idele
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
Institut de l'Elevage - Idele
 
Présentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptxPrésentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptx
khalilbatariagro
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Daniel Bedard
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
imed53
 

Dernier (7)

COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
 
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
 
Présentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptxPrésentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptx
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
 

SQL et MySQL

  • 1. Jean-Marie Renouard LightPath 2014© LightPath 2014© - http://www.jmrenouard.fr 1
  • 2. Le logo PHP est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg Ce document est licencié sous licence ◦Attribution-NonCommercial-ShareAlike ◦CC BY-NC-SA Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ LightPath 2014© - http://www.jmrenouard.fr 2
  • 3. Langage d'interrogation de données. Langage de manipulation de données. Les types de données. Création de tables. Opérateurs, fonctions et conversions. Les différents types d'index. LightPath 2014© - http://www.jmrenouard.fr 3
  • 4. LightPath 2014© - http://www.jmrenouard.fr 4
  • 5. SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY] select_expression STRAIGHT_JOIN : Jointure ordonnée de colonne. SQL_SMALL_RESULT : Indication de résultats peu nombreux. SQL_BIG_RESULT : Indication de résultats très nombreux. SQL_BUFFER_RESULT : Stockage en table temporaire. SQL_CACHE | SQL_NO_CACHE : Stockage en cache.  SQL_CALC_FOUND_ROWS: Activation du comptage de tuples. HIGH_PRIORITY : Priorité augmentée à l'exécution. LightPath 2014© - http://www.jmrenouard.fr 5
  • 6.  [INTO {OUTFILE | DUMPFILE} 'nom_fichier' export_options]  [FROM table_references  [WHERE where_definition]  [GROUP BY {unsigned_integer | nom_de_colonne | formula} [ASC | DESC], ...  [HAVING where_definition]  [ORDER BY {unsigned_integer | nom_de_colonne | formula} [ASC | DESC] ,...]  [LIMIT [offset,] lignes]  [PROCEDURE procedure_name(argument_list)]  [FOR UPDATE | LOCK IN SHARE MODE]] FOR UPDATE et LOCK IN SHARE MODE ◦Options de verrouillage des lignes. LightPath 2014© - http://www.jmrenouard.fr 6
  • 7. Requête simple ◦select * from user; Fusion tuple à tuple ◦select * db, user; Jointure ◦select u.user , db.db from user u, db db where a.user=db.user group by user; LightPath 2014© - http://www.jmrenouard.fr 7
  • 8. Agrégation ◦select a, count(b.db) ◦from user a, db b ◦where a.user=b.user ◦group by a.user;  Requêtes imbriquées ◦select tu.user ◦from user tu ◦where NOT EXISTS ( ◦ select * from db td where td.user=tu.user ◦) ; LightPath 2014© - http://www.jmrenouard.fr 8
  • 9. LightPath 2014© - http://www.jmrenouard.fr 9
  • 10. INSERT [LOW_PRIORITY | DELAYED] [IGNORE]  [INTO] tbl_name [(col_name,...)]  VALUES ({expr | DEFAULT},...),(...),...  [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] INSERT [LOW_PRIORITY | DELAYED] [IGNORE]  [INTO] tbl_name  SET col_name={expr | DEFAULT}, ...  [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] INSERT [LOW_PRIORITY | DELAYED] [IGNORE]  [INTO] tbl_name [(col_name,...)] SELECT ... LightPath 2014© - http://www.jmrenouard.fr 10
  • 11. Insertion simple ◦INSERT INTO USER VALUES (1, « Paul », « DUPONT »); Insert-Affectation ◦INSERT INTO USER SET USER=‘JEAN’; Insertion par requête ◦INSERT INTO TABLE SELECT * FROM TMP_USER; LightPath 2014© - http://www.jmrenouard.fr 11
  • 12. LightPath 2014© - http://www.jmrenouard.fr 12
  • 13. TINYINT[(M)] [UNSIGNED] [ZEROFILL] : Entier (1 octet ). BIT/BOOL/ BOOLEAN : Alias de TinyInt. SMALLINT[(M)] [UNSIGNED] [ZEROFILL] : Entier ( 2 octets ) MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] : Entier ( 3 octets ). INT[(M)] [UNSIGNED] [ZEROFILL] : Entier ( 4 octets ). INTEGER[(M)] [UNSIGNED] [ZEROFILL] : Alias de INT. BIGINT[(M)] [UNSIGNED] [ZEROFILL] : Entier ( noctets ). FLOAT(precision) [UNSIGNED] [ZEROFILL]: Nombre à virgule flottante. FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] : Nombre à virgule flottante. LightPath 2014© - http://www.jmrenouard.fr 13
  • 14. DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] ◦Nombre à virgule flottante double p. DOUBLE PRECISION[(M,D)] ◦Nombre flottant double précision. REAL[(M,D)] [UNSIGNED] [ZEROFILL] : Alias de DOUBLE DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] ◦Nombre à virgule :littéral DEC[(M[,D])] [UNSIGNED] [ZEROFILL] : Alias de DECIMAL NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]: Alias de DECIMAL FIXED[(M[,D])] [UNSIGNED] [ZEROFILL] : Alias de DECIMAL LightPath 2014© - http://www.jmrenouard.fr 14
  • 15.  DATE: Date sur l'intervalle de '1000-01-01' à '9999- 12-31' .  DATETIME : Combinaison de date et heure. TIMESTAMP[(M)] : Timestamp.  TIME: Heure sur l'intervalle de +/-838:59:59. YEAR[(2|4)] : Année au format 2 ou 4 chiffres. LightPath 2014© - http://www.jmrenouard.fr 15
  • 16. [NATIONAL] CHAR/CHARACTER(M) [BINARY | ASCII | UNICODE]: ◦Une chaîne de caractère de taille fixe (255 caractères) [NATIONAL] VARCHAR(M) [BINARY] ◦Une chaîne de taille dynamique. CHAR : Alias de CHAR(1) . VARCHAR: Alias de CHARACTER VARYING . LightPath 2014© - http://www.jmrenouard.fr 16
  • 17. TINYBLOB/TINYTEXT ◦Données de 2^8 octets. BLOB/TEXT ◦Données de 2^16 octets. MEDIUMBLOB/MEDIUMTEXT ◦Données de 2^24 octets. LONGBLOBLONGTEXT ◦Données de 2^32 octets. ENUM('value1','value2',...) ◦Une énumération de 65535 valeurs distinctes. SET('value1','value2',...) ◦Un ensemble de 64 membres maximum. LightPath 2014© - http://www.jmrenouard.fr 17
  • 18. LightPath 2014© - http://www.jmrenouard.fr 18
  • 19. CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_statement] CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(] LIKE old_tbl_name [)]; LightPath 2014© - http://www.jmrenouard.fr 19
  • 20. Requête SQL CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_statement] CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(] LIKE old_tbl_name [)]; CREATE TABLE t ( c1 CHAR(20) CHARACTER SET utf8, c2 CHAR(20) CHARACTER SET latin1 COLLATE latin1_bin ); LightPath 2014© - http://www.jmrenouard.fr 20
  • 21. column_definition col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string'] [reference_definition] reference_option RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT LightPath 2014© - http://www.jmrenouard.fr 21
  • 22. create_definition: column_definition | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) | KEY [index_name] [index_type] (index_col_name,...) | INDEX [index_name] [index_type] (index_col_name,...) | [CONSTRAINT [symbol]] UNIQUE [INDEX] [index_name] [index_type] (index_col_name,...) | [FULLTEXT|SPATIAL] [INDEX] [index_name] (index_col_name,...) | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition] | CHECK (expr) LightPath 2014© - http://www.jmrenouard.fr 22
  • 23. index_col_name: col_name [(length)] [ASC | DESC] reference_definition: REFERENCES tbl_name [(index_col_name,...)] [MATCH FULL | MATCH PARTIAL] [ON DELETE reference_option] [ON UPDATE reference_option] LightPath 2014© - http://www.jmrenouard.fr 23
  • 24. table_option {ENGINE|TYPE} = {BDB|HEAP|ISAM|InnoDB|MERGE|MRG_MYISAM|MYISAM} | AUTO_INCREMENT = value | AVG_ROW_LENGTH = value | CHECKSUM = {0 | 1} | COMMENT = 'string' | MAX_ROWS = value | MIN_ROWS = value | PACK_KEYS = {0 | 1 | DEFAULT} | PASSWORD = 'string' | DELAY_KEY_WRITE = {0 | 1} | ROW_FORMAT = { DEFAULT | DYNAMIC | FIXED | COMPRESSED } | RAID_TYPE = { 1 | STRIPED | RAID0 } RAID_CHUNKS = value RAID_CHUNKSIZE = value | UNION = (tbl_name[,tbl_name]...) | INSERT_METHOD = { NO | FIRST | LAST } | DATA DIRECTORY = 'absolute path' | INDEX DIRECTORY = 'absolute path' | [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] LightPath 2014© - http://www.jmrenouard.fr 24
  • 25. LightPath 2014© - http://www.jmrenouard.fr 25
  • 26. Opérateurs logiques AND, OR, NOT IN, BETWWEN Opérateurs de comparaison  <, >, <=, >=, =, !=, <> Opérateurs mathématiques  +,-,*,/, %,^, ||/, |/, !, @, &, |, ~, >>, << Les opérateurs LightPath 2014© - http://www.jmrenouard.fr 26
  • 27. LightPath 2014© - http://www.jmrenouard.fr 27
  • 28. ABS(X) : Valeur absolue de X . ACOS(X) : Arccosinus de X. ASIN(X) : Arcsinus de X. ATAN(X) : Arctangente de X. ATAN(Y,X) : Arctangente (Y,X) ATAN2(Y,X) : Arctangente des variables de Y / X CEILING(X)/CEIL(X) : Valeur entière supérieure de X . COS(X) : Cosinus de X , où X est donné en radian. COT(X) : Cotangente de X . Fonctions mathématiques LightPath 2014© - http://www.jmrenouard.fr 28
  • 29. CRC32(expr) : Somme de contrôle - entier 32 bits non-signé. DEGREES(X) :Conversion de radian en degré. EXP(X) : Exponentiel x : e^x FLOOR(X) : Valeur entière inférieure de X . LN(X) : Logarithme naturel de X (népérien). LOG(X)/LOG(B,X) : Logarithme de X en base B sinon LN(X) . LOG2(X) : Logarithme en base 2 de X . LOG10(X) : Logarithme en base 10 de X . MOD(N,M) : Reste de la division de N par M . Fonctions mathématiques LightPath 2014© - http://www.jmrenouard.fr 29
  • 30. PI() : Valeur de Pi. POW(X,Y)/POWER(X,Y) : Valeur de X élevée à la puissance Y. RADIANS(X) : Conversion de degré en radian. RAND()/RAND(N) : Nombre aléatoire à virgule flottante. ROUND(X)/ROUND(X,D) : Arrondi à un nombre à D décimales. SIGN(X) : Signe de l'argument sous la forme -1 , 0 , ou 1. SIN(X) : Sinus de X , où X est donnée en radian. SQRT(X) : Racine carrée de X. TAN(X) : Tangente de X en radian. TRUNCATE(X,D) : Troncature à D décimales. Fonctions mathématiques LightPath 2014© - http://www.jmrenouard.fr 30
  • 31. LightPath 2014© - http://www.jmrenouard.fr 31
  • 32. ASCII(str) : Code ASCII du premier caractère de la chaîne. BIN(N) : Chaîne représentant la valeur binaire de N BIT_LENGTH(str) : Nombre de bits de la chaîne de caractères str . CHAR(N,...) : Chaîne identifiée par leur code ASCII. CHAR_LENGTH(str) : Nombre de caractères de la chaîne str CHARACTER_LENGTH(str): Alias de CHAR_LENGTH. COMPRESS(string_to_compress) : Compression de la chaîne. CONCAT(str1,str2,...) : Concaténation des arguments. CONCAT_WS(separator, str1, str2,...) : Idem avec un séparateur. Fonctions sur chaîne de caractère LightPath 2014© - http://www.jmrenouard.fr 32
  • 33. CONV(N,from_base,to_base) : Conversion de N entre différentes bases. ELT(N,str1,str2,str3,...) : Élement N+1 de la liste d'argument EXPORT_SET(bits,on,off,[séparateur,[nombre_de_bits]]) : Conversion de bits en chaîne. FIELD(str,str1,str2,str3,...) : Index de la chaîne str dans les arguments. FIND_IN_SET(str,strlist) : Index de la chaîne la liste strlist H.EX(N_or_S) : Conversion chaîne/héxadécimal. INSERT(str,pos,len,newstr) : Chaîne de caractères avec newstr insérée. INSTR(str,substr) : Index de la première occurrence de la chaîne. Fonctions sur chaîne de caractère LightPath 2014© - http://www.jmrenouard.fr 33
  • 34. LCASE(str) : Alias de Lower() LEFT(str,len) : len premiers caractères LENGTH(str) : Taille de la chaîne str , mesurée en octets. LOAD_FILE(file_name) : Contenu sous la forme d'une chaîne de caractères. LOCATE(substr,str)/LOCATE(substr,str,pos) : Position de la première occurrence. LOWER(str) : Chaîne str avec tous les caractères en minuscules LPAD(str,len,padstr) : Chaîne de caractères str , complétée à gauche. LTRIM(str) : Chaîne de caractères str sans les espaces initiaux. MAKE_SET(bits,str1,str2,..) : Découpage de la chaîne en liste. Fonctions sur chaîne de caractère LightPath 2014© - http://www.jmrenouard.fr 34
  • 35. MID(str,pos,len) : Alias de SUBSTRING(str,pos,len) . OCT(N) : Chaîne de caractère représentant la valeur octal. OCTET_LENGTH(str) : Alias de OCTET_LENGTH() ORD(str) : Code du premier caractère de la chaîne str. POSITION(substr IN str) : Alias de LOCATE(substr,str) . QUOTE(str) : Échappement les caractères spéciaux d'une chaîne. REPEAT(str,count) : Répetition de la chaîne. REPLACE(str,from_str,to_str) : Substitution de chaîne. REVERSE(str) : Chaîne inverse de la chaîne str. Fonctions sur chaîne de caractère LightPath 2014© - http://www.jmrenouard.fr 35
  • 36. RIGHT(str,len) : len derniers caractères de la chaîne str. RPAD(str,len,padstr) : Complétion droite de la chaîne str. RTRIM(str) : Chaîne de caractères str sans les espaces finaux. SOUNDEX(str) : Valeur soundex de la chaîne. SPACE(N) : Chaîne de N espaces. SUBSTRING(str,pos) : Sous-chaîne. SUBSTRING(str FROM pos) : Alias de SUBSTRING(str, pos). SUBSTRING(str,pos,len) : Idem avec une longueur définie. SUBSTRING(str FROM pos FOR len) : Alias de SUBSTRING(str,pos,len). Fonctions sur chaîne de caractère LightPath 2014© - http://www.jmrenouard.fr 36
  • 37. SUBSTRING_INDEX(str,delim,count) : Intervalle de chaîne TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str) : Suppression de caractère en début et/ou en fin de chaîne. UCASE(str)/UPPER(str) : Mise en majuscule de la chaîne str. UNCOMPRESS(string_to_uncompress) : Décompression de la chaîne UNCOMPRESSED_LENGTH(compressed_string) : Taille de la chaîne. UNHEX(str) : Chaîne héxadécimale en ascii. Fonctions sur chaîne de caractère LightPath 2014© - http://www.jmrenouard.fr 37
  • 38. LightPath 2014© - http://www.jmrenouard.fr 38
  • 39. ADDDATE(date,INTERVAL expr type) : Ajout de date. ADDDATE(expr,days) : Ajout de date. ADDTIME(expr,expr2) : Ajout d'heure. CURDATE() : Date actuelle. CURRENT_DATE() : Date actuelle. CURTIME() : Heure actuelle. CURRENT_TIME : Heure actuelle. YEAR(date) : Année de la date. YEARWEEK(date) : Numéro de la semaine de la date. Fonctions sur le temps LightPath 2014© - http://www.jmrenouard.fr 39
  • 40. CURRENT_TIMESTAMP : Date et heure actuelle. DATE(expr) : Extraction de la date. DATEDIFF(expr,expr2) : Nombre de jour d'écart. DATE_ADD(date,INTERVAL expr type) : Ajout de dates. DATE_SUB(date,INTERVAL expr type) : Soustraction de dates. DATE_FORMAT(DATE, format) : Date formatée. DAY(date) : Alias de dayofthemonth(). DAYNAME(date) : Nom du jour. Fonctions sur le temps LightPath 2014© - http://www.jmrenouard.fr 40
  • 41. DAYOFMONTH(date) : Jour du mois (1 à 31). DAYOFWEEK(date) : Jour de la semaine (1 : dimanche). DAYOFYEAR(date) : Jour de l'année. EXTRACT(type FROM date) : Extraction d'information de temps. FROM_DAYS(N) : Nombre de jours depuis N. FROM_UNIXTIME(unix_timestamp): Conversion d'un timestamp. GET_FORMAT(type) : Format du type de date. HOUR(time) : Extraction du nombre d'heure. LAST_DAY(date) : Dernier jour du mois courant. Fonctions sur le temps LightPath 2014© - http://www.jmrenouard.fr 41
  • 42. LOCALTIME() : Heure locale. LOCALTIMESTAMP : Date et heure locale. MAKEDATE(year, nbDay) : Date à partir de l'année et du nombre de jour MAKETIME(hour,minute,second) : Heure à partie de heure, minute et seconde. MICROSECOND(expr) : Nombre de micro-seconde. MINUTE(time) : Nombre de minute. MONTH(date) : Mois de la date. MONTHNAME(date) : Nom du mois. NOW() : Date actuelle. Fonctions sur le temps LightPath 2014© - http://www.jmrenouard.fr 42
  • 43. PERIOD_ADD(P,N) : Ajout de période. PERIOD_DIFF(P1,P2) : Différence entre période. QUARTER(date) : Trimestre de la date. SECOND(time) : Nombre de seconde de la date. SEC_TO_TIME(seconds) : Date à partir d'un nombre de s. STR_TO_DATE(str,format) : Date à partir d'une chaîne. SUBDATE(date,INTERVAL expr type) : Alias de DATE_SUB. SUBDATE(expr,days) : Soustraction de 2 dates. SUBTIME(expr,expr2) : Soustraction de 2 heures. Fonctions sur le temps LightPath 2014© - http://www.jmrenouard.fr 43
  • 44. SUBTIME(exp1, exp2) : Soustraction de date. SYSDATE() : Alias de Now(). TIME(expr) : Extraction de l'heure. TIMEDIFF(expr,expr2) : Soustraction de 2 heures. TIMESTAMP(expr) : Timestamp à partir d'une chaîne. TIMESTAMPADD(in,expr,expr2) : Ajout de timestamp. TIMESTAMPDIFF(in,expr1,expr2) : Soustraction de timestamp. TIME_FORMAT(time,format) : Affichage de l'heure au format. TIME_TO_SEC(time) : Conversion en seconde. Fonctions sur le temps LightPath 2014© - http://www.jmrenouard.fr 44
  • 45. TO_DAYS(date) : Nombre de jours depuis la date. UNIX_TIMESTAMP() : Timestamp Unix actuelle. UNIX_TIMESTAMP(date) : Timestamp Unix de la date. UTC_DATE : Date au format UTC. UTC_TIME : Heure au format UTC. UTC_TIMESTAMP : Timestamp au format UTC. WEEK(date [,mode]) : Numéro de la semaine. WEEKDAY(date) : Jour de la semaine de la date. WEEKOFYEAR(date) : Jour de l'année de la date. Fonctions sur le temps LightPath 2014© - http://www.jmrenouard.fr 45
  • 46. LightPath 2014© - http://www.jmrenouard.fr 46
  • 47. AVG(expr) : Moyenne des valeurs. BIT_AND(expr) : ET bit à bit des valeurs. BIT_OR(expr) : OU bit à bit des valeurs. BIT_XOR(expr) : OU EXCLUSIF bit à bit des valeurs. COUNT(expr) : Nombre de valeurs. COUNT(DISTINCT expr,[expr...]) : Nombre de valeurs distinctes. Fonctions d’agrégat LightPath 2014© - http://www.jmrenouard.fr 47
  • 48. •GROUP_CONCAT(expr) : Concaténation des valeurs. •MIN(expr) : Valeur minimum. •MAX(expr) : Valeur maximum. •STD(expr) / STDDEV(expr) : Dérivation standard entre les valeurs. •SUM(expr) : Somme des valeurs. •VARIANCE(expr) : Variance des valeurs. Fonctions d’agrégat LightPath 2014© - http://www.jmrenouard.fr 48
  • 49. LightPath 2014© - http://www.jmrenouard.fr 49
  • 50. Fonctions de chiffrements. Fonctions d'informations. Fonctions diverses. Les autres fonctions LightPath 2014© - http://www.jmrenouard.fr 50
  • 51. LightPath 2014© - http://www.jmrenouard.fr 51
  • 52. Index simple colonne CREATE INDEX idx on table_price ( price); Index multi-colonne CREATE INDEX idx_price_cat in table_price (price, cat); Pas d'index sur expression SELECT * FROM test1 WHERE lower(col1) = 'value'; CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));  Pas d'index partiel CREATE INDEX low_price_idx on table_price(price) where price BETWEEN 1 AND 10; Les indexes LightPath 2014© - http://www.jmrenouard.fr 52
  • 53. Index BTREE Utile quand la granularité des données est forte. Ex : pour l'indexation d'identifiant unique. Index HASH Utile quand la granularité des données est faible.  Ex : La couleur d'une voiture. Les indexes LightPath 2014© - http://www.jmrenouard.fr 53
  • 54. Index RTREE Utile pour les données spatiales. Ex : Coordonnées d'une étoile dans l'univers. Index FULLTEXT Utile pour les recherche dans du texte. Ex : recherche d'un texte à partir d'une citation. Les indexes LightPath 2014© - http://www.jmrenouard.fr 54
  • 55. Documentation de MySQL http://dev.mysql.com/ LightPath 2014© - http://www.jmrenouard.fr 55
  • 56. LightPath: ◦Société de conseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 56