Archive pour octobre 2009
Débuter avec Vi, Vim, Gvim
Samedi 24 octobre 2009Certaines personnes savent que j'utilise très souvent l'éditeur de texte Vim.
Cet éditeur très puissant (a mon goût) permet de faire tout un tas de choses, sur divers systèmes d'exploitations (Windows, Linux, Mac Os...).
Au début, l'utilisation n'est pas facile mais au fil du temps, on peut se retrouver a faire du copier coller de certains fichier dans d'autres dans une fenêtre (en ssh par exemple).
Facilement on peut "découper" notre fenêtre en deux par exemple l'une au dessus de l'autre avec la commande ":new"
Pour la "découper" dans l'autre sens pour en avoir deux l'une a côté de l'autre il suffit d'utiliser la commande ":vsplit"
Avec la commande ":vsplit" si un fichier est déjà ouvert il sera ouvert deux fois, tandis qu'avec la commande ":new" une fenêtre vide sera créé.
Pour ouvrir un fichier dans une des fenêtre vide il suffit d'utiliser ":e chemin/fichier" par exemple ":e /home/choiz/fichier.txt".
Pour passer d'une fenêtre a une autre utilisez "ctrl + w, w" ou "ctrl + w, une flèche" pour désigner la fenêtre du haut du bas droite ou gauche.
Pour fermer une fenêtre allez dans celle-ci et utiliser ":q" ou ":wq" si vous voulez sauvegarder le fichier
Plus d'informations sur "le guide de survie VI" et n'hésitez pas a télécharger et ajouter mon fichier de configuration .vimrc à la racine du répertoire utilisateur par exemple /home/choiz
MySQL : A quoi sert ci dans utf8_general_ci ?
Mardi 13 octobre 2009Vous avez sans doute déjà travaillé avec des bases de données tel que MySQL, PostgreSQL ou autre...
Lors de l'utilisation d'une base MySQL on créer des tables. Dans ces tables nous créons différents champs.
Par exemple sur mon site je veux faire un système d'authentification, je vais donc créer une table "login" avec dedans mes utilisateurs et mots de passe par exemple.
Lors de la création de la table vous avez plusieurs choix déjà le nombre de colonnes pour savoir le nombre de champs :
![]()
Dans notre cas 3 :
L'id, L'identifiant, Le mot de passe.
Ensuite pour chaque champs nous devons indiquer :
- Un nom (id, login, pass)
- Un type (int, varchar, text etc...)
- La taille ou La valeur par exemple 255 pour un varchar ou par exemple ("yes", "no") si on fait un enum et qu'on veut une réponse prédéfinie
- L'interclassement :
Il comprend :
-> le jeu de caractère (ASCII, UTF8, LATIN1 etc...)
-> l'interclassement ou collation (Swedish, French ...)
-> le "_ci" ou "_cs".
A quoi sert l'interclassement ? Lorsque l'on utilise ORDER BY l'interclassement va en fonction de la langue ordonner différemment les résultats. Donc ça peut être très utile !
Alors qu'est ce que le fameux "_ci", "_cs" "_bin" ?
"_ci" pour Case Insensitive,
"_cs" pour Case Sensitive
"_bin" pour Binaire.
Voici les enregistrements dans ma table :
id login pass 1 ChoiZ 123456 2 choiz azerty 3 cHOIz 654321 4 CHOIZ AzertY 5 test test
Imaginons que vous vouliez sélectionner le champ login dans votre table, si il est en "_ci" :
SELECT password FROM users WHERE login="ChoiZ"
SELECT password FROM users WHERE login="choiz"
retournerons les mêmes résutats soit :
Pour le premier et le second cas les colonnes :
1 ChoiZ 123456 2 choiz azerty 3 cHOIz 654321 4 CHOIZ AzertY
En revanche si "_cs" est utilisé :
SELECT password FROM users WHERE login="ChoiZ"
cette requette retournera uniquement la premiere ligne soit :
1 ChoiZ 123456
SELECT password FROM users WHERE login="choiz"
cette requette retournera uniquement la seconde ligne soit :
2 choiz azerty
J'espère que ce billet vous sera utile dans vos futurs développements.
