Articles of sql

Utiliser l’adresse e-mail comme clé primaire?

L’adresse e-mail est-elle un mauvais candidat pour le primaire par rapport aux nombres auto-incrémentés? Notre application Web nécessite que l’adresse e-mail soit unique dans le système. J’ai donc pensé utiliser l’adresse électronique comme clé primaire. Cependant, mon collègue suggère que la comparaison de chaînes sera plus lente que la comparaison de nombres entiers. Est-ce une […]

Qu’est-ce qui est plus rapide, SELECT DISTINCT ou GROUP BY dans MySQL?

Si j’ai une table CREATE TABLE users ( id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL, profession varchar(255) NOT NULL, employer varchar(255) NOT NULL, PRIMARY KEY (id) ) et je veux obtenir toutes les valeurs uniques du domaine profession , ce qui serait plus rapide (ou recommandé): SELECT DISTINCT u.profession FROM users u […]

La requête MySQL La chaîne contient

J’ai essayé de comprendre comment faire une requête avec MySQL pour vérifier si la valeur (ssortingng $haystack ) dans une colonne donnée contient certaines données (ssortingng $needle ), comme ceci: mysql_query(” SELECT * FROM `table` WHERE `column`.contains(‘{$needle}’) “); En PHP, la fonction s’appelle substr($haystack, $needle) , donc peut-être: WHERE substr(`column`, ‘{$needle}’)=1

Comment convertir toutes les tables de MyISAM en InnoDB?

Je sais que je peux émettre une table d’alter individuellement pour changer le stockage de table de MyISAM à InnoDB. Je me demande s’il existe un moyen de les transformer rapidement en InnoDB?

Erreur 1046 Aucune firebase database sélectionnée, comment résoudre?

Erreur requête SQL: — — Database: `work` — — ——————————————————– — — Table structure for table `administrators` — CREATE TABLE IF NOT EXISTS `administrators` ( `user_id` varchar( 30 ) NOT NULL , `password` varchar( 30 ) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1; MySQL a déclaré: #1046 – No database selected besoin […]

Modifier une colonne pour qu’elle soit annulable

Je veux modifier une colonne de table pour qu’elle soit nullable. J’ai utilisé: ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL Cela donne une erreur lors de la Modify . Quelle est la syntaxe correcte?

Comment puis-je supprimer plusieurs colonnes avec une seule instruction ALTER TABLE?

Je voudrais écrire une seule commande SQL pour supprimer plusieurs colonnes d’une seule table dans une seule instruction ALTER TABLE . De la documentation ALTER TABLE de MSDN … DROP { [CONSTRAINT] constraint_name | COLUMN column_name } Indique que nom_contrainte ou nom_colonne est supprimé de la table. DROP COLUMN n’est pas autorisé si le niveau […]

Pourquoi quelqu’un utiliserait-il WHERE 1 = 1 AND dans une clause SQL?

Pourquoi quelqu’un utiliserait-il WHERE 1=1 AND dans une clause SQL (Soit un SQL obtenu par des chaînes concaténées, soit une définition de vue) J’ai vu quelque part que cela servirait à protéger contre l’injection SQL, mais cela semble très étrange. S’il y a injection WHERE 1 = 1 AND injected OR 1=1 aurait le même […]

Comment puis-je effectuer une comparaison de chaînes SQL sur MySQL?

J’ai une fonction qui renvoie cinq caractères avec une casse mixte. Si je fais une requête sur cette chaîne, elle retournera la valeur indépendamment de la casse. Comment puis-je rendre les requêtes MySQL sensibles à la casse?

SQL gauche rejoindre vs plusieurs tables sur la ligne FROM?

La plupart des dialectes SQL acceptent les deux requêtes suivantes: SELECT a.foo, b.foo FROM a, b WHERE ax = bx SELECT a.foo, b.foo FROM a LEFT JOIN b ON ax = bx Maintenant, évidemment, lorsque vous avez besoin d’une jointure externe, la deuxième syntaxe est requirejse. Mais en faisant une jointure interne, pourquoi devrais-je préférer […]