0% ont trouvé ce document utile (0 vote)
101 vues14 pages

Memento MySQL

Mémento du langage MySQL

Transféré par

troubadour2404
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
101 vues14 pages

Memento MySQL

Mémento du langage MySQL

Transféré par

troubadour2404
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
Rodolphe Rimelé | EYROLLES Création d‘une base et de tables Un serveur MySQL contient une ou plusieurs bases de données, interrogeables par un programme client. Chaque base contient au moins une table, structurée en champs (colonnes) définis A sa création, et contenant zéro A plusieurs enregistrements (lignes|. ReWARGUE Ce memento offre tine sélection des commanties les plus utiles, n’hésitez pas a consulter ka documentation officielle sur hitp:/| ([Link]/doc/, Créer une base de données ou une nouvelle table CREATE DATABASE nom de la base; CREATE TABLE nom_de_la_fable { nom_champ] typs_champiflongueur) altributs, nom_champ2 type_chomp2{longueur) attributs, type_clé] nom_clél, lype_clé2 nom _clé2, ... ) TYPE = type _de table; Chaque champ {colonne) est défini par un nom, un type dont la longueur est spéci- fige (voir plus loin « Types de champs »), et des attributs, séparés par des virgules, pouvant prendre ces valeurs : NULL / NOT NULL Le champ peut étre vide, en prenant ou non la valeur NULL DEFAULT 'valeur_par_defau? Le champ a une valeur par défaut. AUTO_INCREMENT Sa valeur est auto-incrémentée a chaque nouvelle insertion (clé primaire et type numérique requis) RewAkave La longubur est facultative pour les types llmhériques “CHAR et VARCHAR. File n’est pas permise pour les autres types (dates, TEXT, BLOB, ENUM, SET... ‘Les clés (index) de la table sont indiqués par leur type (voir plus loin « Types d’'in- dex ») et leur nom (champ @ indexer} Le type de table est spécifié 4 la création par la clause TYPE=type_de_fable en fin d/instruction CREATE TABLE. Les types par défaut sont : MylSAM Format par défaut MEMORY (HEAP) En mémoire vive, rapide mais perte des données au redémarrage du serveur InnoDB Permet les transactions et les locks avances Exewrie CREATE TABLE adresses (id INT NOT NULL UNSIGNED AUTO. INCREMENT, nom CHAR(50] NOT NULL prenom CHARI4O), anniversaire DATE, PRIMARY KEY|ic) ) TYPE = MyiSAM; Créer une table ayant la méme structure qu'une autre CREATE TABLE nouvelle table LIKE ancianne_table; Créer un index CREATE [type_index] INDEX nom_index ON nom_table (cal_indexea,...); Met en place tine clé nom_index de type type_index (UNIQUE, FULLTEXT ou SPATIAL) Sur une on plusieurs colonnes, dont les noms sont séparés par des virgules. PERFORMANCES Il est possible de spécifier la longueur du champ a indexer entre paren- théses, notamment lorsqu’ll s'agit de champs texte et il est inutile d’indexer toute la chaine de caractéres pour des raisons de performances. Exempus ; CREATE INDEX debut prenom ON camet_adresses|prenom(5}); Btape préliminaire avant toute epération ; la connexion a la base se fait via un client mysql, en ligne de commande ou en mode graphique (MySQL Query Browser...), ou encore 4 travers un langage (PHP, C, Ruby... Connexion en ligne de commande avec le client mysql Sous Linux/Unix, Mac 08 X, et sous Windows {invite de commandes} : mysql -ulogin -[Link] passe Connexion sans spécifier de base de données mysql -ulogin -pmot_de_passe Connexion spécifiant une base de données nom, base Une fois connecté, saisir directement les requétes closes d'un point-virgule. Proouctvrt Instructions utiles en ligne de commande source nom_de fichier Exécute les commandes SQl. stockées dans un fichier. quit OU exit Quitte le client mysql. use Choisit la base de données & utiliser. status Affiche l'état du serveur, ? Alffiche Yaide tee nom_de_fichier Enregistre les commandes entrées et leurs résultats dans un fichier journal LE x oF sr Connexion 4 une base de données Commandes utiles | mysqldump Exporte vers un fichier texte pour sauvegarde cu transfert entre serveurs, une (--opt nom_base| ou toutes [-—all-datoboses} les pases. Exeupte mysqldump ~—opt nom_base > [Link] Meade —-alrceacbcsas > Auer se | myisamehke Verifie, optimise et répare les tables ati format MyISAM. ATTENTION Le serveur doit étre stoppé durant les opérations. mysqlimport Importe un fichier texte dans une table (similaire & LOAD DATA INFILE}. mysqladmin Permet de créer/supprimer une base, exporter des tables, | recharger les droits d'accés, etc. | ExeMPLE Pour changer le mat de passe root myanledmin -u root password mot de paws mysqlchect Utilitaire client de maintenance des tables, pour les vérifier, j Téparer, analyser et optimiser, ATTENTION Le serveur doit éire démarré durant les opérations. mysalshaw Affiche des informations sur une table ow tin index. mysqidumpslow Affiche le journal des requétes les plus lentes, si l'option log- slow-queries est activée sur le serveur. | Connexion via PHP MySQL est souvent utilisé conjointement avec PHP. Les fonctions connect et select_db établesent une connexion MySQL, la fonction query exécute la requéte. Diverses foric~ tions permettent de lire les résulta's retournés. Avec MySQLi (PHP version 5 et supérieures) | imyaali_ connect $mysqi_ server Smysa]_ login, 4mmysqi_password); mysqli_select_db($mysql_base); $resull = mysqli_query|'SELECT * FROM fable’); while($ligne = mysqli fetch_assoc|$resulf} echo $lignet'champ'); mysqli_close(); MySQlLi en mode objet $sql = new mysqli($mysql_server, $mysq] $result = $sql->-query('SELECT * FROM tal whilel$ligne = $resulh>fetch ossoc|)) echo Sligne[!champ'); Ssql->close(); MySQL standord (PHP versions 3 et 4) mysql_connect{$ mysq!_server,$mysql_login, $mysql_password; mysql select db($mysqi_base|; $result = saillcuelyiSHEG) * FROM table’); whilel$lane = mysql_fetch_assoc($resulf) echo $lignel'chomp'); mysql_close(); Fonctions courantes ATENTION Le préfixe mysoli est’& remplacer par mysql dans ces noms de fonctions si le serveur n'est pas Equipe de MySQLi, En ontre, en mode objet, on omet le préfixe Ja fonction est appelée en tant que méthode de V'instance utilisé (exemPte Smysql sfeich assoel), $mysqli->-query($requete)) cu en tant qu’attribut dans le cas de valeurs simples (ex. $result>num_rows, Ssq/->error). in, $mysql_ password, $mysql_base]; mysqli_querylSrequete) Execute une requéte et renvoie le résultat mysgli_fetch_row{$resulf Renvoie la ligne dans une liste. Exenmte whilellist(S champ 1,Schamp2) = mysqli_fetch_row/$resulf) { ... } mysqli_fetch_assoc($resulf Renvois la ligne dans un tableau associatif, mysqli_fetch_array(Sresu/f Renvoie la ligne dans un tableau, mysqli_offected_rows() Renvoie le nombre de lignes affectées par la demiere commande, mysqli_insert_id) Renvoie l'identifiant unique (exemple PRIMARY KEY en AUTO_INCREMENT) de la derniére commande INSERT. mysqli_errorf) Renvoie le message d’erreur né de la derniére requéte. mysqli_num_rows(Sresuj Renvoie le nombre de lignes d'un résultat, mysqli_closel) Perme la connexion MySQL. AUTRES OUTS MySQL Administrator: console graphique officielle de MySQL MySQL Query Browser ; outil on ‘MySQL pour créer, executer et optimiser des re- quétes SQL PhpMyAdmin: cutil PHP c’administration MySQL via une interface web, le plus ré- pandu chez les hébergeurs ([Link] net/) ae ae a ae Renommer/supprimer bases, tables et clés RENAME TABLE oncien_nom TO nouveau_nom: Renomme une table Remarque Pour renommer paar tables, Sénarer les instructions par des virgules, eee les priviléges ALTER et DROP sur l'ancienne table, CREATE et INSI sur la nouvelle: DROP TABLE nom_de_lo_table, nom_de_/a_toble2,...; Supprime une ou plusieurs tables DROP DATABASE nom_de_la_base; Supprime une base de données DROP INDEX nom_index ON nom_table: Supprime un index Eee eet Perrorwances Le choix du type de champ influe sur les performances et économie de stockage, ainsi que sur la simplicité des Tequetes qui en découléront. 11 definit un “nombre fixe ou variable d’cétets pour le stockage de chaque valeur. "INT pour le stockoge de nombres entiers Type Nb d'octets De... Bae TINYINT 1 “128° 127 SMALLINT 2 =32 768 32767 MEDIUMINT 3 -8 388 608 8388 607 INT 4 =21147 483 648 2147483647 BIGINT 8 — -9223372036854775808 9223372036854775 807 ReMarques Si le mot-clé UNSIGNED est specifie, Ja limite inférieure est O [seuls des ‘Tombres positiis sont stackés), 6tla limite supérieure est doublée car on s‘afffanchit dui signe (ex. TINYINT UNSIGNED : 0 4 255}. INTEGER est un synonyme pour INT. On pelt spécifier la longueut maximale du champ, entre parentheses, apres le type. EXEMPLES oge TINYINT(3) UNSIGNED NOT NULL, code_postal MEDIUMINT(5) UNSIGNED NOT NULL Lattribut ZEROFHL définit le caractére « 0» comme remplissage par défaut. Exenre en stockant la valeur 3:-dans une colonne INT(4) ZEROFILL la valeur lue sera 0003. BIT, BOOL, BOOLEAN: types booléens pour valeurs binaires Expriment tne variable née prenaht que deux valeurs (vrai ou faux|, Equivalent 4 un TINYINT(1) stockant 1 ou © dans un champ numérique. FLOAT, DOUBLE, DECIMAL pour les nombres a ule flottante FLOAT et DOUBLE (équiv. REAL) stockent des nombres a virgule flottante. DECIMAL (equiv. NUMERIC) stocke sous forme littérale : chaque caractére représemte un chiffre stocké. REMARGUE Les attributs UNSIGNED et ZEROFILL sont la eusal applicables, CHAR ef VARCHAR pour les chaines de caractéres Stockent des chaines sur un nombre maximal d'octets indiqué entre parentheses — les chaines excédant ce maximum sont tronquées. Sila chaine stockée ocoupe moins d’es- pace, CHAR réserve quand méme ce nombre d’octets en complétant de blanes, a la différence de VARCHAR qui ne stocke que la chaine utile. REMARGUE Si une table comporte au moins un champ de taille variable (VARCHAR, TEXT, BLOB...), tous les champs CHAR sont automatiquement convertis en VARCHAR a la création de la table, car il n'y a aucun intérét 4 les laisser en taille fixe. BINARY et VARBINARY pour les chaines binaires Différent de la méme fagon que CHAR et VARCHAR (voir ci-avant). Ils n’ont pas de jeu de caracteres associé, les tis et comparaisons sont basés sur la valeur numérique de Yostet, et on spécifie leur taille maximale de la méme fagon que CHAR et VARCHAR, a la difference pres qu’elle est définie en octets. TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB pour les chaines longues Une colonne de type TEXT est assimilable 4 une colonne VARCHAR de grande capa- cite, Ce type petit contenir une quantité variable de données, en fonction de l'un des 4 types. Les types BLOB (Binary Long Object) different des types TEXT : ils sont sen- sibles 4 a case (majuscules/minuscules) et triés sur leur valeur binaire. Rewaraue On ne peut spécifier de valeur par défaut pour les types BLOB et TEXT. ee ee Oe @ Types de champs Type Capacité de stockage en caractéres TINYTEXT / TINYBLOB 288 TEXT / BLOB 65535 MEDIUMTEXT / MEDIUMBLOB 16777215 LONGTEXT / LONGBLOB 4294967205 (4 Go) Extyetes prix DECIMAL(6,2}, poids FLOAT UNSIGNED, nom CHAR(30), prenom CHAR(5Q), article TEXT NOT NULL ENUM et SET pour proposer une liste de choix ENUM permet le choix d'une valeur parmi une liste definie a la création de la table. Test possible d’utiliser une chaine vide (' '). La valeur par défaut sera le premier é1é- ment de I'énumeration si la colonne est declaree NOT NULL ou NULL si 1a colonne dispose de cet attribut. Une énumeration peut avoir un maximum de 65535 élements. SET différe a’ENUM car il peut avoir 0 ou plusteurs valeurs choisies dans 1a liste dé- finie 4 la creation de la table. Les valeurs sont s¢parees par des virgules. REMARQUE Pour ‘Selectionner des champs selon des valeurs de SET, Je plus simple est @utiliser Ia fonction FIND_IN_ SET. EXEMPLE peluche ENUM(lapin','éléphant ornitharynque'), couleur ENUM('bleu!,"vert! indigo), quolites SET|'chormante’,'intelligenie','perspicace'), SELECT * FROM nom_iable WHERE FIND_IN_SET|'charmante' qualites)=0; Gestion des dates avec TIME, DATETIME, DATE, TIMESTAMP, YEAR = TIME stocke un format de date en heures, minutes et secondes 'HH:MM:S5' ou 'HHMMSS', ou 'HHH:MM:SS' pour un grand nombre d’heures (intervalle de -838:39:59 4 838:59:59). Les valeurs TIME non valides sont transformées en date zéro '00:00:00' = DATETIME permet de stocker une date et une heure, sous la forme ‘AAAA-MM-JJ HH?! §$' (l'intervalle va de 1000-01-01 00:00:00 4 9999-12-31 23:59:59). = DATE permet de stocker une date, sous la forme 'AAAA-MM-JJ' (l'intervalle ya de 1000-01-01 @ 9988-12-31} = TIMESTAMP différe des autres types date, car il stocke automatiquement I’heure courante lors d‘une commande INSERT ou UPDATE sur les enzegistrements affectes. En d'autres termes, MySQL applique automatiquement la fonction NOW() lorsqu’aucune valeur par défaut n‘est spécifiée lors de 'insertion ou de la modification. Rewraue Pour empécher la mise a jour uitérieure du champ lors de la modification du ‘champ, tui affecter sa propre valeur : UPDATE nem_fable SET colonne_timestamp=colenne_fimesiamp, Le type YEAR représente une année, de 190] 4 2195. Son stockage nécessite un octet. ExeMPLES UPDATE rendezvous SET heure=! 14:30:20" WHERE contact='Corinne!; INSERT INTO rendezvous (description jour] VALUES ('Paintbalh,’2006-05-06'); annee YEAR NOT NULL SELECT * FROM nom_foble WHERE annee=2006; 13 Pour la bonne performance d'une base de données a travers le temps et 4 me= sure de son remplissage, il est souvent nécessaire dy adjoindre un ou plusieurs index accélérant la recherche de champs. Rappelons qu'un index est employé dans une clause WHERE, que tout type de colonne peut étre indexé, qu'il se orée avant ou apres la création de 1a table (voir CREATE INDEX) ot que KEY est sSynonyme de INDEX. EXEMPLE CREATE TABLE fivres (id INT UNSIGNED, titre CHAR(50)}, editeur CHAR(100)}, descrip- tion TEXT, INDEX ide _fiire (fifre) INDEX idx_fitre_editeur (Htreediteur ); A = PRIMARY KEY définit la clé primaire d'une table SQL et porte aussi sur un ou plu- Sieurs champs, pour identifier de fagon unique et rapide un enregistrement précis (ex. : numéro de sécurité sociale). Exemeie PRIMARY KEY (ic) = UNIQUE n’autorise que l'insertion de valeurs ne figurant pas déja dans la colonne. il interdit les doublons car rend impossibie d'obtenit deux enregistrements pour les- quels le chamip est strictement idéntique. Exewpie UNIQUE KEY [titre] m FULLTEXT est voué a l'indexation de texte et permet la recherche d'un ou plusieurs qots avec évaluation de la pertinence (voir “Requétes avancées”, FULLTEXT et MATCH .» AGAINST). Nindexe que des VARCHAR ou TEXT de tables MyISAM. Exempt FULL- TEXT KEY (description) Gestion des utilisateurs CREATE USER /ogin IDENTIFIED BY Crée un nouvel utilisateur ‘mot de_passet- RENAME USER ancien login TO nouveau_login; Renomme un utilisateur SET PASSWORD FOR /agin = Change un mot de passe PASSWORD{'nouveau_mot_de_passe'); DROP USER login; Supprime un utilisateur GRANT droils ON cible TO login WITH Modifie ou attribue des droits options; A un utilisateur REmaRQue Voir ci-aprés le détoil des options paur la gestion des droits. REVOKE dois ON cible FROM login; Révoque les droits d'un utilisateur FLUSH PRIVILEGES; Recharge les droits MySQL ATTENTION Ncubliez pas de recharger les droits aprés loule modification | REMARQUE Options pour Ia gestion des droits cible : nom d'une table nom_table (nom complet : nom_! [Link], 1_fable). Pour attri- “Duer les droits’ a oo des tables d'une base : nom | login ares par des virgules, avec .éventuellement Je mot de passe @ localhost IDENTIFIED | BY 'mot_de_ passe’. droits ; combinaison d'une ou plusieurs des clauses suivantes (liste non exhaustive) ; ALL Tous les droits ALTER Autorise ALTER TABLE CREATE Autorise CREATE TABLE CREATE VIEW Autorise CREATE VIEW DELETE Aamtorise DELETE DROP Autorise DROP TABLE EXECUTE Autorise l'emploi de procédures stock#es FILE Autorise SELECT ... INTO OUTFILE et LOAD DATA INFILE INDEX Autorise CREATE INDEX et DROP INDEX INSERT Autorise INSERT LOCK TABLES Autorise LOCK TABLES PROCESS Autorise SHOW FULL PROCESSLIST RELOAD Autorise FLUSH ‘SELECT Autorise SELECT ! SHOW DATABASES Autorise SHOW DATABASES. SHUTDOWN Autorise mysqladmin shutdown SUPER Autorise entre autres KILL et SET GLOBAL UPDATE Autorise UPDATE USAGE Synonyme de “pas de privilges” GRANT OPTION Synonyme de WITH GRANT OPTION (voir ci-dessous) options est facultatif et peut étre combinaison des valeurs suivantes : WITH GRANT OPTION Donne le droit de modifier les droits des autres utilisateurs WITH MAX_QUERIES_PER_HOUR n WNautorise que n requétes par heure ' WITH MAX_UPDATES_PER_HOUR n Nrautorise que n requétes UPDATE par heure ‘WITH MAX_CONNECTIONS PER HOUR n N'autorise que n connexions par heure WITH MAX_USER_CONNECTIONS n Wautorise que n connexions simultanées EXEMPLE GRANT SELECT,UPDATE DELETE INSERT ON jumbo.t TO ‘dumbo'@" localhost IDENT- FIED BY 'pHpmySqlo0wa' WITH GRANT OPTION; LY) Pour changer la structure d'une table existante : ALTER TABLE nom_fable ... Suivi, au choix, des instructions suivantes : : RENAME nouveau_nom_table Renomme la table MODIFY nom_champ nouveau_type Modifie le type d'un champ | CHANGE nom_champ Change le champ nom_champ vers nouveau_nom_champ nouveau _type nouveau_nom_champ avec le type nouveau_lype ADD nom cham np, tyPe cham Ajoute un champ | Exempts ALTER TAB BLE fable ‘ADD code. ae GRARE AFTER ville: Ruiunalé On précisera la position du chomp dams ke sructura tec les clauses AFTER laprés un quire champ & préciser) et FIRST (en premier). ADD INDEX nom_index type_index Ajoute un index de type fype_index sur (champ, champ2...) champ, chomp2... ADD PRIMARY KEY nom_index Ajoute une clé primaire de type !ype_index type_index (champ, champ2...) sur champ, champ2. rer eer - ier la structure d‘une table ADD UNIQUE nom_index type_index Ajoute un index unique sur champ de type (chomp, champ2...) “ADD FULLTEXT nom_index {champs chanya? DROP nom champ DROP PRIMARY KEY DROP INDEX nom_inclex type_index sur champ, champ?... Ajoute un index de type FULLTEXT sur champ, champ2. Supprime le champ de la structure de la table. Supprime la primaire de la structure de la lable. Supprime un index de la structure de la table. SELECT champ1,champ2 FROM nom. table: clause_where clause_group clause_order clause limit; Sélectionne tous (*} ou certains enregistrements d'une table, répondant éventuellement 4 des conditions. ClauseS CONDIMONNELIES Voir plus loin las clauses WHERE, GROUP BY, ORDER BY, UMIT pour les requétes conditionnelles et triées. SELECT nom,ROUND (2006-annee_naissance) AS age FROM adresses ORDER BY age DESC; SELECT @.jour,[Link] FROM anniversaires AS a.cornel_adresses AS p WHERE [Link] = paid: INSERT INTO nom_table (champ 1.champ2....) VALUES ['voleur!','valeur2...); Le mot clé AS crée un alias sur un nom de colonne ou de table. Il est ainsi possible de raccourcir les noms utilisés pour des sommodités d’écriture, (Ci-contre alias sur champ puis sur table) Insére de nouveaux enregistrements dans une table. ReMaRues Si une colonne n'est pas spécifiée dans ka lise, elle prend la valeur par géfout qui lie 6 csianée los dl eration de table: Sune colorne sséde lattribut AUTO_IN REMENT il suffit de ne pos préciser la colonne & ‘insertion, ou de lui donner la valeur NULL. INS| i i permet les insertions multiples : INSERT INTO mementos (titre,ecliteur] VALUES ('MySQL','Eyrolles'),"XHTML',"Eyralles'); DELAYED En précisant la clause DELAYED aprés INSERT, le serveur rend la main au client et n'insére les lignes que lorsque la table est inutilisée. LOW_PRIORITY La clause LOW_PRIORITY retarde insertion jusqu’a ce qu'il n‘y ait plus de client lisant la table, mais ne rend pas la main. INSERT INTO mementos (titre_memento, description_memento, prix_memento} SELECT fitre,description, ‘5’ FROM livres WHERE type='memenio'; UPDATE nom_fable SET champ ]= ‘nouvelle_valevr'.champ2="aulre_valeur WHERE champ3=champ2+7; Exeniple UPDATE produit prod id=catalogue. INSERT... SELECT permet d'insérer des valeurs partir d’une ow plusieurs autres tables grace a une sous-requéte SELECT. Met & jour des enregistrements dans une table, concemés ou non par une condition, L'UPDATE peut porter sur plusieurs tables. talogue SET produit,prie=[Link] WHERE eMARQUE Il est passible d'utiliser [a clause LIMIT ov ORDER BY pour limiter lo portée des modifications. lg clause WHERE est facultative, dans ce cas tous les enregistrements de la table seront affectés. Si LOW_PRIORITY est spécifié oprés UPDATE, les modifications auront lieu lorsqu’cueun client ne lire: plus la table. Le nombre 'enregistrements affectés est retourné. INSERT INTO participants (ON DUPLICATE KEY UPDATE procéde a [aom_joueur,score} VALUES ['Manw’,1337) une requéte UPDATE si V'insertion ON DUPLICATE KEY UPDATE score=score+ 1337; REPLACE INTO animaux (id,espece,nom) VALUES |2'Lapin','Trudy’); engendre un doublen pour une clé PRIMARY ou UNIQUE Insére ou remplace des enregisttements dans une table. Remaraue REPLACE fenclionne similairement INSERT sauf dans le cas oi Iinsertion erée un doublon dans une table munie d'un index UNIQUE ou PRIMARY KEY. Il n'a. dilleurs de sers qu’avec ces deux lypes dindex. Dans ce cas, 'ancien enregistrement est e' DELETE FROM nom_fable WHERE condition ORDER BY champ_de_tri UMIT limite; TRUNCATE TABLE nom_table; LOAD DATA INFILE ‘[Link]?’ INTO TABLE estomac FIELDS TERMINATED BY '\P LINES TERMINATED BY '\n'; cé avani que le nouveau ne soit inséré. Efface les enregistrements d'une table répondant ou non & une condition, et renvoie le nombre de lignes effacées, éventuellement avec une clause limitative et un ordre de suppression. Equivaut en plus rapide 4 DELETE FROM nom_table; car assimilé & une destruction/création de table. Tnsére dans la base de données un fichier texte qui peut avoir été oréé grace 4 la commande SELECT ... INTO OUTFILE. Reywsoue Lintrpréintion du fichier depend des closes FIELDS ot LINES, inissant Ia facon dont sont separé: Fichier texte, les champs (colonnes) et les lignes du - [ee | | | Cr rd FIELDS peut étre spécifié par une (ew moins) ou plusieurs instructions FERMINA ED BY ‘MI’ : colonnes séparées par. = tabulation) ENCLOSED BY" : colonnes entourées d'un caraciére précis (ex. quillemets) ESCAPED BY '\\" = caractére c’échappement (ici un anfislash simple} mLINES est défini por, STARTING BY "* [les lignes commencent par...) ef [eehuyareD BY ‘\n! {les lignes terminent par...) oU \n est une nouvelle ligne ou line Pour ignorer les lignes superflues an début de fichier, IGNORE nb_de_lignes LINES. SELECT * INTO OUTFILE ‘sangria. t<* Exporte les enregistrements retournés FIELDS TERMINATED BY ',' FROM boissons; par une instruction SELECT vers un fichier texte. (Voir ci-dessus pour la syntaxe des clauses FIELDS et LINES.) Requétes conditionnelles avec Vie L'essentiel étant d’effectuer des requétes SELECT, REPLACE, DELETE ou UPDATE sur les enregistrements d'une table répondant 4 une condition, WHERE se ré— vele indispensable pour mettre en jeu un ou plusieurs tests, portant sur un ou plusieurs champs. Toutes sortes de fonctions peuvent étre utilisées pour com- pater les champs entre eux, ou a des constantes, sauf les fonctions d’aggréga- tion (AVG, MIN, MAX, SUM...}. ExEMPLE SELECT * FROM nom_toble WHERE colonne='valeur'; Ces conditions peuvent étre multiples grace aux opérateurs de comparaison. ‘OPERATEURS DE COMPARAISON Booléens : AND (&&) : ETlogique OR {II} : OU logique Comparateurs : < inférieur 4 égal <= inférieur ou égal > supérieur & different de >= supérieur ou égal Parenthéses de priorité : SELECT * FROM cornet WHERE age>20 AND (code _postal='67' OR age<=35); UKE Teste la validité d'une chaine de caractéres ou d'un nombre par Tapport 4 uné expression pouvant contenir deux caractéres joker : % [aucun ou plusieurs caractéres) : _ (un caractére exactement]. EXEMPLES SELECT prenom FROM camet WHERE prenom LIKE 'Cx'; + Charles, Corinne, Claire SELECT mot,definition FROM dico WHERE mot LIKE 'Fu's + Fusée, Fusil, Futur NOT UKE Seuls les champs ne correspondant pas a I'expression sont valides, REGEXP Teste qu'une chaine est conforme 4 une expression réquliére. EXEMPLE SELECT filre FROM livres WHERE titre REGEXP 'E} si c\'élait +'; STRCMP Compare deux chaines et renvoie 0 si elles sont identiques, -1 si la premiére chaine est plus petite que la seconde, | sinon. STRCMP est insensible 4 la casse. ExeMpLe SELECT titre FROM livres WHERE STRCMPttitra,'mysq!') >= 0; IN / NOTIN Teste I'appartenance d'une valeur une liste. Depuis MySQL 4.1, IN() peut contenir une sous-requéte. EXeMPLe Teen FROM desserts WHERE fruit IN(SELECT nom FROM fruits WHERE nom BETWEEN Teste la présence d'une valeur dans un intervalle, bores inciuses (min <= valeur AND valeur <= max] EXEMPLE SELECT nom,age FROM carnel_adresses WHERE age BETWEEN 20 and 35; NOT Seules les valeurs hors de T'intervalle sont prises en compte BETWEEN FULLTEXT Recherche en texte intégral. N’est possible que sur les colonnes MATCH... dotées d'un index FULLTEXT. Elle est insensible a la casse et la AGAINST taille minimale des mots recherches est de 4 lettres. ‘EXEMPLE SELECT * FROM livres WHERE MATCH(titre,resume)] AGAINST ('mysq!]; Permence Quand MATCH() est ufilisé comme condition de WHERE les lignes retournées sont aulamatiquement organisée par lo pertinence. Exprimée sous forme de décimal po- sifif, elle peut etre sélectionnée pour opérer un tri personnalisé. SELECT id, MATCH(titre,resume| AGAINST |'mysqf') AS pertinence FROM livres; Dans le résultat abtenu figurent tous les enregistrements de Iq table, assortis d'une colonne pertinence dont lo valeur est comprise entre O (pas de similarité) et 1 (Irés pertinent}. ae [ ie Déclencheurs (TRIGGER Un déclencheur (trigge) s‘active lorsqu’un événement survient sur une table. CREATE TRIGGER nom_déclencheur BEFORE|AFTER événement ON nom_foble FOR EACH ROW requéte_d_exécuter, Lévénement peut étre une commande telle que INSERT, UPDATE ou DELETE. Dans la requéte a exécuter, la référence a une colonne doit s'accompagner des mots-clés OLD et NEW : OLD.nom_ligne et NEW.nom_ligne désiqnent respec- tivement la ligne avant et aprés sa modification (ou avant effacement et apres insertion respectivement). ATENTION II ne peut y avoir deux déclencheurs de méme évenement au méme mo- ment. CREATE TRIGGER nécessite le privilége SUPER, Exemple CREATE TRIGGER insertion BEFORE INSERT-ON compiles FOR EACH ROW SET @somme = @samme + [Link]; Supprimer un déclencheur : DROP TRIGGER nom_fable.nom_déclencheur; DISTINCT Permet de ne sélectionner qu'une fois chaque valeur dans une table (sans doublon). Exemrie SELECT DISTINCT ville FROM onnuaire WHERE code postal LIKE '67%'; ORDER BY —Ordonne le résultat de la requéte en triant sur au moins une colonne. Par défaut, le tri est croissant. Pour inverser l'ordre, ajouter la Clause DESC (tri décroissant}. EXEMPLe SELECT nom,prenom FROM ORDER BY age DESC; GROUP BY Groupe Jes résultats d'une requéte selon une ou plusieurs : colonnes, en qénéral pour effectuer dessus des calculs (sommes...J. SKEMPLE SELECT [Link][parties! FROM golf GROUP BY ioveur, TOTAL En ajoutant la clause WITH ROLLUP aprés GROUP BY, une dermiére ligne comprenant le total des valeurs groupees est ajoutée au jeu de résultats, HAYING Ne peut étre utilisé qu’aprés GROUP BY, et, s'il y en a, avant une clause ORDER BY. Opére une sous-sélection des résultats 4 l'aide @une condition supplémentaire (calcul...). Permet d'utiliser des fonctions non autorisées dans une clause WHERE, telles que SUM, AVG, MIN, MAX. ExempLe SELECT clientachats,pays FROM clients WHERE poys='France' GROUP BY client,achats HAVING MAX{achats}> 1000; UMIT Limite a n lignes le résultat retourné, si nécessaire en débutant 4 partir d'une ligne m. Exempie SELECT * FROM nom_iable LIMIT m,n SELECT nom,prenom FROM contacts LIMIT 5,10; La plupart des fonctions sont exploitables dans'un SELECT et/ou dans une clause WHERE SELECT CONCAT|nom,prenom) FROM adresses WHERE LENGTH{ville)>T0: SELECT COUNTI*] FROM nom toble; Compte Jes lignes aun résultat. SELECT ABSI-1337); -% 1337 Renveie la valeur absolue de I'argument. SELECT CEILING(3.21}; > 4 SELECT FLOOR(3.21); 2 3 Waleur entiére supérieure/inférieure de x. SELECT RAND(); > 0.25508742100189 Renvoie un nombre a virgule flottante entre O et | inclus. Remarque Peut servir G ordonner un résultat aléatoirement SELECT * FROM fable ORDER BY RAND|]; SELECT ROUNDI4.7); + 5 Renvoie l'arrendi entier le plus proche. ‘Nomore ce pécmaves = Un deuxiéme araument n peut étre précisé pour orrondir la valeur a n décimales, SELECT TRUNCATE(4.7); > 4 Renvoie l'arqument x tronqué. Nomere be pécimales §= Un deuxiéme argument n peut étre précisé pour ironquer la va- leur 4 n décimales. Fy eR oR Unions et jointures UNION combine les résultats de plusieurs requétes SELECT en un seul résultat. Les colonnes de chaque requeéte doivent étre du méme type. (SELECT champ!.champ2,... FROM nom_tablel) UNION (SELECT champi.champ2. FROM nom_table2\; Le mot-clé ALL renvoie toutes les lignes concemées par:chaque SELECT. Par dé- faut, les lignes retournces sont uniques (comme avec DISTINCT) pour l ensemble du résultat. ‘SELECT a,b FROM table] UNION ALL SELECT c,d FROM table2; Les jointures mettent en relation plusieurs tables grace a uns seule requéte (pro- duit cartésien sur lequel on applique des conditions). Pour préciser le type de jointure INNER JOIN _Sélectionne uniquement les lignes correspondantes qui se trouvent dans les deux tables. LEFT JOIN Sélectionne toutes les lignes de la table de gauche et si tel est le cas les entrées correspondantes dans la table de droite. S' n'y a pas d'entrée correspondante dans la table de droite, elle est remplacée par des valeurs NULL. RIGHT JOIN Sélectionne toutes les lignes dans la table de droite et les entrées comrespondantes dans la table de gauche. S'il n'y en a pas, elle est remplacée par des valeurs NULL. STRAIGHT_JOIN Identique a JOIN, mais la table de gauche est lue avant celle de droite. NATURAL JOIN Jointure sur les colonnes qui possédent le méme nom et le méme type dans les deux tables. Ces clauses JOIN sont utilisées conjointement avec ON ou USING : la clause ON s'eécrit comme une condition utilis¢e dans une clause WHERE ; USING nomme les colonnes communes a exploiter pour la jointure EquivAleNce Ces deux instructions sont équivalentes ; fable? LEFT JOIN jeble2 USING (champ! .champ2.champ3] table!.champ|—table2.champ1 AND toble!,champ2=table2.champ2 AND: fable [Link]=table2.champ3 EXemPes SELECT * FROM foblel, table? WHERE table] id=table2 id: SELECT * FROM fablel LEFT JOIN fable? ON table? id=[Link]; SELECT * FROM tablel LEFT JOIN table? USING (id); SELECT * FROM table? LEFT JOIN fable? USING (champ1,champ2,champ3); SELECT fable!.champ/,table2.champ2 FROM table? JOIN table2 ON table |.champ3=table2 champ: SELECT Renvoie la clé de hachage MDS (Message-Digest Algoxithm) MDS5I'Cygnus"); de la chaine en argument (hexadécimal de 32 caractéres). + del4d8235828 |ObedeOde92ce034b721 SHA1|) ou SHA) =—“Renvoie la somme SHA1 [Secure Hash Algorithm) de la chaine passée en argument (hexadécimal de 40 caractéres}. SELECT SHAI("Cygnus'); ~® ccf25b0c992a7e2fad731 1 107dcfl Oe71 9c269ec PASSWORD), Calcule un mot de passe MySQL a partir de la chaine. Cette fonction est utilisée pour l'encodage des mots de passe stockés dans la table [Link]. SELECT PASSWORD|'banane)); * 33b8ada77dé84dab ENCODE() DECODE() Ces fonctions encodent et décodent respectivement un texte passé en argument 4 l'aide d'une cle elle aussi spécifiée. SELECT ENCODE('C\est un secret’,'banane'); + GcZiF38B4e SELECT DECODE(' Gc2iF38B4e','banane'); = C'est un secret FOUND_ROWSi) Renvoie le nombre d’enregistrements trouvés lors de la demiére requéte. LAST_INSERT_ID) Renvoie le demier identifiant unique {ex : clé en AUTO_INCREMENT) créé par une requéte INSERT. VERSION( Renvoie la version du serveur MySQl. utilisé. USER() Renvoie |'identité de l'utilisateur courant. SELECT USER(); + dumbo@locathost ee - oe BF Manipulation de chaines de caractéres CONCATIchoine!, chaine?,...) LENGTH(chaine) Concaténe des champs ou des chaines de texte. SELECT CONCAT|"ki’, ‘wil, > kivi Renvoie la longueur en octets de ta chaine de texte. SELECT LENGTH|'kiwi'); -® 4 Renvoie la position de la 1° occurrence de la sous-chaine. SELECT INSTR{'J\‘cime Jes kiwis','kiwi'); -® 12 INSTRIchaine, sous-chaine] LEFT(chaine,n) Renvoie les n premiers/derniers caractéres de chaine. RIGHT(chaine,n) SELECT LEFT(‘\'aime les kiwis', 6); -» J'cime LOWER(chaine} Met les caractéres de chaine en minuscules/majuscules. UPPER(choine) SELECT UPPERI‘\ ‘aime les kiwis}; -> J'AIME LES KIWIS REPLACE(chaine, Remplace les sous-chaines chaine_a par chaine_b dans chaine. SELECT REPLACE(‘J\'aime les kiwi + Jaime les oranges cheiine_a,chaine_b} ii orange’); REVERSE(chaine) Renyoie une chaine inversee. SELECT REVERSE('kiwi'|; > iwik SUBSTRING(chaine, Renvoie une sous-chaie de chaine, de longueur na position,nl partir de la position position: SELECT SUBSTRING|'J\ ‘aime les kiwis',8,9}; > les kiwis SELECT NOW|); > 2007-01-27 13:37:00. Renvoie la date actuelle au format H:MiM:SS'. "OYY-MM-DD_ Synonymes SYSDATE(), LOCALTIME(), CURRENT_TIMESTAMP|), LOCALTIMESTAMP() SELECT CURDATE); - 2007-01-27 ‘SELECT CURTIMED; - 13:37:00 ‘SELECT UNIX_TIMESTAMP]); > 1147550227 Renvoie la date au format "YYYY-MM-DD', Renvoie 'heure au format 'HH:MMiSS! Renvoie le timestamp UNIX actuel {nombre de secondes écoulées depuis le I janvier 1970 & 00:00:00) Renarque Si UNIX TIMESTAMP) est appelée avec un argument date, elle renvoie le timestamp correspondant & cette date. SELECT FROM_UNIXTIME(] 147556444); > 2006-05-13 23:44:01 SELECT YEAR('2007-01-27); + 2007 SELECT DAY('2007-01-27"); - 27 SELECT MONTH(|'2007-01-27); » O1 SELECT HOUR['2007-01-27 13:37:00); #13 SELECT MINUTE('13:37:00'); 2 37 SELECT SECOND(' 13:37:00"); + 00 SELECT DAYNAME\NOW()); - Saturday SELECT MONTHNAME(' 2607-01-27"); > January SELECT DAYOFWEEK(|' 2007-01-27); @ 5 Renvoie une date sous la forme “YYYY-MM-DD HH:MM:$S' a partir d’un timestamp UNIX. Renvoient respectivement l'année, le jour et le mois d’une date. Renvoient respectivement l'heure, les minutes et les secondes d'une date. Renvoient respectivement le nom du jour et le nom du mois de la date passée en argument Renvoie l'index du jour dé la semaine (1 =Dimanche..., 7 = Samedi). SELECT DAYOFYEAR(' 2007-01-27"); + 117 Renvoie le jour de l'année (1 4 366}. SELECT WEEK('2007-01-27); + 17 SELECT DATE('2007-01-27 13:27:00"); =» 2007-01-27 SELECT TIME('2007:01-27 13:37:00'); > 13:37:00 SELECT QUARTER(' 2007-01-27"); 1 Renvoie le numéro de la semaine. Extrait la partie date d’une expression, Extrait la partie horaire d'une expression. Renvoie le trimestre de la date (1 a 4). SELECT SEC_TO_TIME|49050); + 13:37:90 Renvoie argument donné en secondes SELECT TIME _TO_SEC(' 13:37:30"); > 49050 SELECT ADDTIME('2007-01-27'00:00:00', ‘13:37:30; > 2007-01-27 13:37:30 SELECT DATEDIFF('2007-01-27 00:00:00", '2007-01-17)); 10 SELECT STR_TO_DATE('2007/01/27 13.37,30', “6X7 %m/%d WH. %i.%s'; ® 2007-01-27 13:37:30 SELECT DATE_FORMAT('2007-01-27 au format 'HH:MM:SS': Convertit en secondes l'argument donné en heures, minutes et secondes: Ajoute une valeur de type TIME 4 une valeur DATE ou DATETIME, Renvoie le nombre de jours entre une date de début et une date de fin (types DATE ou DATETIME). Applique un format date 4 une chaine de caractéres pour renvoier une valeur DATETIME. Pormate une date. 13:37:30", "8W %M WY, %H:%i%%s'|; -% Saturday January 2007, 13:37:30 SELECT DATE_ADD('2007-01-27 23:59:59, INTERVAL 1 SECOND); > 2007-01-28 00:00:00 SELECT DATE _SUB('2007-01-27', INTERVAL 37 DAY); 2006-12-27, Ee ‘Opérations arithmetiques d’addition et de soustraction sur des dates, Remargue Se référer 4 la documentation MySQL pour la syntaxe des intervalles ee fF Procédures stockées et fonctions Une procedure stockee est créée avec CREATE PROCEDURE et appelee avec la commande CALL ; elle renvoie un résultat via les paramétres de retour (OUT). Une procédure peut renvoyer une valeur scalaire, et etre appelée depuis une commande SQL, comme toute autre fonction. Une fonction est créée avec CREATE FUNCTION. Remarque La commaide delimiter permet d'utiliser "/ dans la détlaration de 1a proc dure ou de 1a fonction: : i CREATE PROCEDURE CREATE PROCEDURE nom_procedure (paramétres) instructions poraméires Liste des paramétres acceptés par la fonction, suivis de leur type (ex. nom CHAR(20), age TINYINT). Chaque paramétre est de type IN par défaut. Il est possible de spécifier OUT ou INOUT pour les paramétres de sortie instructions Suite d'instructions SQL, entourées par BEGIN et END. Example delimiter // CREATE PROCEDURE prac (OUT poids INT) BEGIN SELECT SUM[poids_kg) INTO poids FROM commande; END Jf delimiter ; Usage CALL proc|@nom variable); Autres éléments de langage : DECLARE nom_variable fype_variable; SET nom_voriable = expression: REPEAT ... UNTIL conclition END REPEAT; WHILE condition DO ... END WHILE; Déclaration de variable locale Affectation de variable Boucles. Pour sortir d'une boucle LOOP ; LEAVE. LOOP ... END LOOP; IF condition THEN ... ELSE ... END IF; CASE variable WHEN valeur THEN ... END CASE; DECLARE nom_curseur CURSOR FOR requefe_select; Déclaration de curseur OPEN nom_curseur; ‘Ouverture de curseur FETCH nom_curseur INTO variables; Lecture de curseur CLOSE nom_curseur; Fermeture de curseur CREATE FUNCTION CREATE FUNCTION nom_fenction (paramétres) RETURNS typs_retour instructions paraméires Liste des paramétres acceptés par la fonction, suivis de leur type (ex. nom CHAR(20), age TINYINT) type_retour Type MySQL retoumé par la fonction (ex. CHAR(IO), INT) instructions Suite d'instructions SOL, terminées par RETURN variable Exemrle delimiter | CREATE FUNCTION presentation (nom CHAR|20), age TINYINT] RETURNS: CHAR(SO} RETURN CONCAT|nom,' a ‘,age,’ ans); Idelimiter ; USAGE SELECT presentation( Vocelyat24)/-¥ Uocelm 624 ons Conditions SHOW CREATE PROCEDURE | FUNCTION SHOW CREATE PROCEDURE nom_pracedure; Renvoie l'instruction permettant de SHOW CREATE FUNCTION nom_fonetion; recréer la procédure ou la fonction. DROP PROCEDURE nom_pracedure; Supprime une procédure ou DROP FUNCTION nom_fonction; une fonction. Une transaction n'est effective que sur une table de type InnoDB et BDB (mode autocommit désactivé : SET AUTOCOMMIT=0;}. Elle permet de revenir si né- cessaire [en cas d’erreur) 4 l'état initial de la table, avant le début de Ja tran— saction, Elle débute par START TRANSACTION et se termine par COMMIT, ROLL- BACK restaure l'état initial de la table avant la fin de la transaction et les Modifications ne sont pas appliquées. START TRANSACTION; START TRANSACTION; UPDATE nom_fable SET modifications; UPDATE nom_foble SET modifications; UPDATE nom_table SET autres modifications; ROLLBACK; ee ee Airey CREATE VIEW nom_de_la_vue fae uné nouvelle vue d’aprés une raquéte AS requete_select; {CT qui fournit la définition de la vue. CREATE VIEW memento AS seuecr} ie » pti FROM livres WHERE type='memenic'; SHOW CREATE VIEW memenio —Affiche la commande qui a créé la vue. “> SELECT titre, description,prix FROM livres WHERE type—'memento! ALTER VIEW nom_de_la_ye AS Modifie une vue existante en nouvelle requete_ select; lui assignant une nouvelle définition. ALTER VIEW memenio AS SELECT titre, descriplion FROM livres WHERE prix='5'; DROP VIEW nom_de_la_vuei, Supprime une ou plusieurs Yues nom_de_la_vue2,. (séparées par des virgules). mM SHOW GRANTS SHOW GRANTS FOR login; Affiche les droits attribués a l'utilisateur SHOW GRANTS FOR CURRENT_USER: login sous forme de requéte SQL. SHOW INDEX SHOW INDEX FROM nom_table; Affiche les index de la table. Les champs suivants sont retoumés : Table Nom de ta table. Non_unique _1 si les doublons sont autorisés, 0 sinon. Key_name Nom de Yindex Seq in_index Position de la colonne dans I'index Column_name Nom de la colonne indexée Collation Mode de tri de I’index ('A’ tri ascendant, NULL pas de tri) Cardinality Nombre de valeurs uniques de l'index Sub_part Nombre de caractéres si la colonne est partiellement indexée, NULL sinon. Packed Mode de compactage de la clé Null YES si la colonne peut contenir NULL Index type ‘Type dl'iridex (BTREE, FULLTEXT, HASH,RTREE] ‘Comment Informations complémentaires SHOW STATUS SHOW STATUS; Informe sur le statut du serveur : SHOW STATUS LIKE 'Toble%'; wariables du serveur, liste des processus SHOW VARIABLES; en cours d’exécution, avec la requéte SHOW VARIABLES LIKE 'max%e'; exécutée correspondante, l'utilisateur SHOW PROCESSLIST; et le numéro de processus, etc. KILL KILL numero_processus; ‘Termine un processus grace a la commande KILL suivie du numéro de processus concerné. ReMangUe Seuls les droits d'administrateur (SUPER) permettent de yoir la liste de tous les prooessus et de les terminer, 2 défaut seuls les processus ublisaleur courant eont Accessinles. EXPLAIN PERFORMANCES Cette commande est essentielle a I'optimisation de tables. En faisant précéder une requéte SELECT avec le mot-clé EXPLAIN, MySQL renvoie un enregistrement indiquant comment il traitera la requéte : id Identifiant de requéte select_type Type de requéte SELECT table Table utilisée pour la requéte type Type de jointure pane Index utilisables pour effectuer la requéte ¢} Index réellement utilisé key_len Taille de la clé d'index utilisée (plus la valeur est petite plus Vindex est rapide} ref Références utilisées avec Ja clé key pour effectuer la requéte rows Estimation du nombre de lignes a parcourir dans la table pour effectuer la requéte extra Informations complémentaires sur la méthode appliquée. Ce, oe ~~ ee mac quts acts Réporer et restaurer ANALYZE TABLE nom_table; Analyse et stocke la clé de distribution de la table qui permet de décider dans quel ordre les tables doivent étre rassemblées lors des jointures qui ne s‘effectuent pas sur une constante. OPTIMIZE TABLE nom_toble; Défragmente une table. Optimise les performances suite 4 un grand nombre d'insertions et effacements, CHECK TABLE nom_foble; —Vérifie 'intégrité d'une table, REPAIR TABLE nom_foble; _ Tente la réparation d'une table corrompue. LOCK TABLES fablel,table2 READ; Verrouille une ou plusieurs tables en lecture. LOCK TABLES fablel,icble2 WRITE; Verrouille une ou plusieurs tables en écriture. Remaraue Seule la connexion courante peut lire et écrire sur cette table. Les autres connexions sont bloquées en écriture. UNLOCK TABLES; Déverrouilie les tables précédemment spécifiées. BACKUP TABLE nom_fable Sauvegarde les fichiers de definition et TO '/chemin/sur/le/disque'; de données de la table vers le chemin spécifié, afin de la restaurer ultérieurement, Seules les tables MylSAM sont supportées. RESTORE TABLE nom_toble Restaure une table a partir d‘une FROM ‘/chemin/sur/le/disque'; sauvegarde effectuée avec BACKUP TABLE, stockée sur le disque dans le dossier chemin. Les variables serveur sont définies en priorité par les commandes passées en argument au démarrage du serveur mysqld et dans les fichiers de configura- tion : /etc/mysql/[Link] ou /etc/[Link] sous Linux et C:\Windows \[Link] OU. C:\[Link] sous Windows. Leur liste est consultable avec la commande SHOW VARIABLES; . Variables courantes port = 3306 Port utilisé par le serveur. Par défaut : 3306 socket = /var/run/mysqld/ Socket 4 utiliser mysqld. sack usr Dossier d'installation de MySQL /var/lib/mysql Dossier de données de MySQL Chemin utilisé pour le stockage des fichiers temporaires languoge = Langue utilisée par le serveur pour afficher les /usr/share/mysql/french messages key buffer size = 16M Taille du buffer utilisé pour le cache des blocs d'index log = /var/log/mysql/[Link] Log de toutes les requétes log-bin = /var/log/mysql/ Log binaire [Link] leg tececres = /var/log/ Log des requétes les plus lentes, dont la durée mysql/[Link] est spécifiée par la variable long_query_time, en secondes max_connections = 128 Nombre maximal de clients MySQL simultanés query_cache_limit = 1M Ne met pas en cache les résultats plus grands que la valeur spécifiée query_cache size = 16777216 Mémoire allouée pour la mise en cache des requétes précédentes Remarciements.¢ Corinne Schillinaer— ‘MEMENTO MYSQL/RIMELE PRIX EDITEL) Dee SEU! 0A 9 12012 “INFORMATIQUE DENT 782212 ‘2425 010969 01559673 038053 3a Conapion Now Compo

Vous aimerez peut-être aussi