Une brève introduction au mode serveur SQL de Mysql
mysql Modes du serveur SQL
Le serveur MySQL peut fonctionner dans différents modes SQL, et différents modes peuvent être appliqués à différents clients. De cette façon, chaque application peut personnaliser le mode de fonctionnement du serveur en fonction de ses propres besoins.
Le schéma définit quelle syntaxe SQL MySQL doit prendre en charge et quel type de contrôles de validation des données doivent être effectués. Cela facilite l'utilisation de MySQL dans différents environnements et avec d'autres serveurs de bases de données. Vous pouvez définir le mode SQL par défaut en démarrant mysqld avec l'option --sql-mode="modes". Cette valeur peut également être laissée vide (--sql-mode = "") si vous souhaitez la réinitialiser. Vous pouvez également utiliser l'instruction SET [SESSION|GLOBAL] sql_mode='modes' pour définir la variable sql_mode
après le démarrage afin de changer le mode SQL. La définition d'une variable GLOBAL nécessite l'autorisation SUPER et affecte le fonctionnement de tous les clients connectés à partir de ce moment. La définition de la variable SESSION n'affecte que le client actuel. Tout client peut modifier sa valeur sql_mode de session à tout moment. Modesis est une série de modes différents séparés par des virgules («, »). Vous pouvez utiliser l'instruction SELECT @@sql_mode pour interroger
le mode actuel. La valeur par défaut est vide (aucun mode n'est défini). Valeur sql_mode principalement importante
・ANSI
Modifier la syntaxe et le comportement pour les rendre plus cohérents avec le SQL standard.
・STRICT_TRANS_TABLES
Abandonnez l'instruction si la valeur donnée ne peut pas être insérée dans la table de transaction. Pour les tables non transactionnelles, si une valeur apparaît dans la ligne 1 d'une instruction à une seule ligne ou d'une instruction à plusieurs lignes, l'instruction est ignorée. Une description plus détaillée est donnée plus loin dans cette section.
・TRADITIONNEL
Faites en sorte que MySQL se comporte comme un système de base de données SQL "traditionnel". Une description simple de ce mode consiste à « donner une erreur au lieu d'un avertissement » lorsqu'une valeur incorrecte est insérée dans une colonne. Remarque
: abandonnez INSERT/UPDATE dès qu'une erreur est trouvée. Ce n'est pas ce que vous voulez si vous utilisez un moteur de stockage non transactionnel, car les modifications de données apportées avant l'erreur ne seront pas "reconduites", ce qui entraînera des mises à jour "seulement partiellement effectuées". Ce manuel fait référence au « mode strict », ce qui signifie un mode dans lequel au moins STRICT _TRANS_TABLES ou STRICT _ALL_TABLES est activé. Tous les modes pris en charge sont décrits ci-dessous :
・ALLOW_INVALID_DATES
Ne vérifiez pas toutes les dates en mode strict. Vérifie uniquement les mois entre 1 et 12 et les jours entre 1 et 31. Ceci est important dans les applications Web lorsque vous obtenez l'année, le mois et le jour à partir de trois champs différents et que vous souhaitez enregistrer exactement ce que l'utilisateur a inséré (sans validation de date). Ce mode fonctionne pour les colonnes DATE et DATETIME. Ne convient pas aux colonnes TIMESTAMP, qui nécessitent une validation de date. Avec le mode strict activé, le serveur nécessite un mois et un jour valides, pas seulement dans les plages 1 à 12 et 1 à 31 respectivement. Par exemple, « 2004-04-31 » est légal lorsque le mode strict est désactivé, mais illégal lorsque le mode strict est activé. Pour permettre le masquage des dates fixes en mode strict, ALLOW_INVALID_DATES doit également être activé.
・ANSI_QUOTES
Traitez '"' comme un guillemet d'identification (caractère de guillemet '''), et non comme un caractère de guillemet pour chaîne
. En mode ANSI, vous pouvez utilisez toujours ''' pour citer l'identifiant Avec ANSI_QUOTES activé, vous ne pouvez pas citer une chaîne avec des guillemets doubles, car elle est interprétée comme l'identifiant ・ERROR_FOR_pISION_BY_ZEROEn mode strict, pendant. INSERT ou UPDATE, s'il est divisé par zéro (ou MOD(X, 0)), une erreur est générée (sinon un avertissement) lors de la division par zéro. MySQL renvoie
NULL Si utilisé dans INSERT IGNORE ou UPDATE. IGNORER, MySQL génère un avertissement de division par zéro, mais le résultat de l'opération est NULL L'ordre de priorité de l'opérateur est
expression Par exemple, NOT a BETWEEN b AND c est interprété comme NOT (. a ENTRE b ET c). Dans certaines anciennes versions de MySQL, l'expression est interprétée comme (NON a) ENTRE b ET c). Activez le mode HIGH_NOT_PRECEDENCESQL pour obtenir le résultat priorité
supérieur précédent.
mysql> SET sql_mode = ''; mysql> SELECT NOT 1 BETWEEN -5 AND 5; -> 0 mysql> SET sql_mode = 'broken_not'; mysql> SELECT NOT 1 BETWEEN -5 AND 5; -> 1
・IGNORE_SPACE
autorise les espaces entre les noms de fonctions et '('. Force tous les noms de fonctions à être traités comme des mots enregistrés. Le résultat est que si vous Pour accéder à un nom de base de données, de table ou de colonne enregistré sous forme de mot, vous devez le référencer. Par exemple, grâce à la fonction USER(), le nom de la table utilisateur dans la base de données mysql et la colonne Utilisateur dans la table. sont sauvegardés, vous devez donc les citer :
SELECT "User" FROM mysql."user";
・NO_AUTO_CREATE_USER
防止GRANT自动创建新用户,除非还指定了密码。
・NO_AUTO_VALUE_ON_ZERO
NO_AUTO_VALUE_ON_ZERO影响AUTO_INCREMENT列的处理。一般情况,你可以向该列插入NULL或0生成下一个序列号。NO_AUTO_VALUE_ON_ZERO禁用0,因此只有NULL可以生成下一个序列号。
如果将0保存到表的AUTO_INCREMENT列,该模式会很有用。(不推荐采用该惯例)。例如,如果你用mysqldump转储表并重载,MySQL遇到0值一般会生成新的序列号,生成的表的内容与转储的表不同。重载转储文件前启用NO_AUTO_VALUE_ON_ZERO可以解决该问题。mysqldump在输出中自动包括启用NO_AUTO_VALUE_ON_ZERO的语句。
・NO_BACKSLASH_ESCAPES
禁用反斜线字符(‘\')做为字符串内的退出字符。启用该模式,反斜线则成为普通字符。
・NO_DIR_IN_CREATE
创建表时,忽视所有INDEX DIRECTORY和DATA DIRECTORY指令。该选项对从复制服务器有用。
・NO_ENGINE_SUBSTITUTION
如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎。
・NO_FIELD_OPTIONS
不要在SHOW CREATE TABLE的输出中打印MySQL专用列选项。该模式在可移植模式(portability mode)下用于mysqldump。
・NO_KEY_OPTIONS
不要在SHOW CREATE TABLE的输出中打印MySQL专用索引选项。该模式在可移植模式(portability mode)下用于mysqldump。
・NO_TABLE_OPTIONS
不要在SHOW CREATE TABLE的输出中打印MySQL专用表选项(例如ENGINE)。该模式在可移植模式(portability mode)下用于mysqldump。
・NO_UNSIGNED_SUBTRACTION
在减运算中,如果某个操作数没有符号,不要将结果标记为UNSIGNED。请注意这样使UNSIGNED BIGINT不能100%用于上下文中。参见12.8节,“Cast函数和操作符”。
・NO_ZERO_DATE
在严格模式,不要将 '0000-00-00'做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告。
・NO_ZERO_IN_DAT
在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告。
・ONLY_FULL_GROUP_BY
不要让GROUP BY部分中的查询指向未选择的列。
・PIPES_AS_CONCAT
将||视为字符串连接操作符(+)(同CONCAT()),而不视为OR。
・REAL_AS_FLOAT
将REAL视为FLOAT的同义词,而不是DOUBLE的同义词。
・STRICT_TRANS_TABLES
为所有存储引擎启用严格模式。非法数据值被拒绝。后面有详细说明。
・STRICT_TRANS_TABLES
为事务存储引擎启用严格模式,也可能为非事务存储引擎启用严格模式。后面有详细说明。
严格模式控制MySQL如何处理非法或丢失的输入值。有几种原因可以使一个值为非法。例如,数据类型错误,不适合列,或超出范围。当新插入的行不包含某列的没有显示定义DEFAULT子句的值,则该值被丢失。
对于事务表,当启用STRICT_ALL_TABLES或STRICT_TRANS_TABLES模式时,如果语句中有非法或丢失值,则会出现错误。语句被放弃并滚动。
对于非事务表,如果插入或更新的第1行出现坏值,两种模式的行为相同。语句被放弃,表保持不变。如果语句插入或修改多行,并且坏值出现在第2或后面的行,结果取决于启用了哪个严格选项:
・对于STRICT_ALL_TABLES,MySQL返回错误并忽视剩余的行。但是,在这种情况下,前面的行已经被插入或更新。这说明你可以部分更新,这可能不是你想要的。要避免这点,最好使用单行语句,因为这样可以不更改表即可以放弃。
・对于STRICT_TRANS_TABLES,MySQL将非法值转换为最接近该列的合法值并插入调整后的值。如果值丢失,MySQL在列中插入隐式 默认值。在任何情况下,MySQL都会生成警告而不是给出错误并继续执行语句。13.1.5节,“CREATE TABLE语法”描述了隐式默认值。
Le mode strict n'autorise pas les dates illégales, telles que « 2004-04-31 ». Il n'autorise pas les dates interdites utilisant la partie « zéro », telles que les dates « 2004-04-00 » ou « zéro ». Pour le désactiver, activez les modes SQL NO_ZERO_IN_DATE et NO_ZERO_DATE basés sur le mode strict.
Si vous n'utilisez pas le mode strict (c'est-à-dire n'activez pas le mode STRICT_TRANS_TABLES ou STRICT_ALL_TABLES), MySQL insérera les valeurs ajustées et donnera un avertissement pour les valeurs illégales ou manquantes. En mode strict, vous pouvez le faire via INSERT IGNORE ou UPDATE IGNORE. Voir Section 13.5.4.22, « Syntaxe SHOW warns ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

Apache se connecte à une base de données nécessite les étapes suivantes: Installez le pilote de base de données. Configurez le fichier web.xml pour créer un pool de connexion. Créez une source de données JDBC et spécifiez les paramètres de connexion. Utilisez l'API JDBC pour accéder à la base de données à partir du code Java, y compris l'obtention de connexions, la création d'instructions, les paramètres de liaison, l'exécution de requêtes ou de mises à jour et de traitement des résultats.

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

Le rôle principal de MySQL dans les applications Web est de stocker et de gérer les données. 1.MySQL traite efficacement les informations utilisateur, les catalogues de produits, les enregistrements de transaction et autres données. 2. Grâce à SQL Query, les développeurs peuvent extraire des informations de la base de données pour générer du contenu dynamique. 3.MySQL fonctionne basé sur le modèle client-serveur pour assurer une vitesse de requête acceptable.

La clé de l'installation de MySQL est d'élégance pour ajouter le référentiel MySQL officiel. Les étapes spécifiques sont les suivantes: Téléchargez la clé GPG officielle MySQL pour empêcher les attaques de phishing. Ajouter un fichier de référentiel MySQL: RPM -UVH https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Mise à jour du référentiel Cache: Yum Update Installation Mysql: Yum install install install starting starting mysql Service: SystemCTL start start mysqld starger bugo boartup Service mysql Service: SystemCTL start start mysqld starger bugo bo onthing staring Service mysql Service: SystemCTL Start Start MySQLD Set Out Up Boaching Staring Service MySQL Service: SystemCTL Start Start MysQL
