MySQL a-t-il des tableaux ?
Il n'y a pas de types de tableau dans MySQL. Les éléments du tableau sont généralement divisés par un certain caractère et stockés sous forme de chaîne. La raison pour laquelle il n'y a pas de tableaux dans MYSQL est que la plupart des gens n'en ont pas vraiment besoin. Dans les bases de données relationnelles, utilisant généralement un modèle relationnel, il est préférable d'attribuer chaque unité d'information à une ligne de tableau distincte. Par exemple, on pourrait penser "Je veux une liste de choses" et créer à la place une nouvelle table qui relie les lignes d'une table aux lignes d'une autre table, cela peut représenter une relation "M:N". La base de données peut indexer ces lignes ; les tableaux ne sont généralement pas indexés.
1. Les tableaux sont stockés sous forme de chaînes dans MySQL
Il n'y a pas de types de tableaux dans MySQL. Les éléments du tableau sont généralement divisés par certains caractères et stockés sous forme de chaînes
1.1. d'éléments dans le tableau
Méthode : diviser la chaîne selon le symbole spécifié et renvoyer le nombre d'éléments divisés. Le résultat souhaité peut être obtenu en comptant le nombre de délimiteurs dans la chaîne et en ajoutant 1. La méthode est très simple.
<code>CREATE function Get_StrArrayLength <br/>( <br/>@str varchar(1024), --要分割的字符串 <br/>@split varchar(10) --分隔符号 <br/>) <br/>returns int <br/>as <br/>begin <br/>declare @location int <br/>declare @start int <br/>declare @length int <br/>set @str=ltrim(rtrim(@str)) <br/>set @location=charindex(@split,@str) <br/>set @length=1 <br/>while @location<>0 <br/>begin <br/>set @start=@location+1 <br/>set @location=charindex(@split,@str,@start) <br/>set @length=@length+1 <br/>end <br/>return @length <br/>end<br/></code>
Exemple d'appel :
select Get_StrArrayLength('78,1,2,3',',')
Valeur de retour :
4
1.2 Obtenez l'élément à la position spécifiée dans le tableau
Méthode : divisez la chaîne en fonction du symbole spécifié et renvoyez l'élément avec l'index spécifié. après le fractionnement (notez l'index à partir de 1), aussi pratique qu'un tableau
<code>CREATE function Get_StrArrayStrOfIndex <br/>( <br/>@str varchar(1024), --要分割的字符串 <br/>@split varchar(10), --分隔符号 <br/>@index int --取第几个元素 <br/>) <br/>returns varchar(1024) <br/>as <br/>begin <br/>declare @location int <br/>declare @start int <br/>declare @next int <br/>declare @seed int <br/>set @str=ltrim(rtrim(@str)) <br/>set @start=1 <br/>set @next=1 <br/>set @seed=len(@split) <br/>set @location=charindex(@split,@str) <br/>while @location<>0 and @index>@next <br/>begin <br/>set @start=@location+@seed <br/>set @location=charindex(@split,@str,@start) <br/>set @next=@next+1 <br/>end <br/>if @location =0 select @location =len(@str)+1 <br/>--这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。 <br/>return substring(@str,@start,@location-@start) <br/>end<br/></code>
Exemple d'appel :
select Get_StrArrayStrOfIndex('8,9,4',',',2)
Valeur de retour :
9
1.3 Combinez les deux fonctions ci-dessus pour parcourir les éléments du tableau
Méthode. : Combinez les deux fonctions ci-dessus, comme Traverser les éléments de la chaîne comme un tableau
<code>declare @str varchar(50) <br/>set @str='1,2,3,4,5' <br/>declare @next int <br/>set @next=1 <br/>while @next<=Get_StrArrayLength(@str,',') <br/>begin <br/>print Get_StrArrayStrOfIndex(@str,',',@next) <br/>set @next=@next+1 <br/>end<br/></code>
Résultat de l'appel :
1 2 3 4 5
2 Exemple de stockage d'un tableau (liste) dans MySQL
J'ai deux tables dans MySQL. La table Person a les colonnes suivantes :
id | name | fruits
La colonne fruit peut contenir des chaînes vides ou un tableau comme ("pomme", "orange", "banane") ou ("fraise") etc. La deuxième table est Table Fruit et comporte les trois colonnes suivantes :
____________________________ fruit_name | color | price ____________________________ apple | red | 2 ____________________________ orange | orange | 3 ____________________________ ...,...
Alors, comment dois-je concevoir la colonne fruits de la première table afin qu'elle puisse contenir le tableau de chaînes qui prend la valeur de la colonne fruit_name de la deuxième table ? Puisqu'il n'y a pas de type de données tableau dans MySQL, que dois-je faire ?
Meilleure réponse :
La bonne méthode consiste à utiliser plusieurs tables et à les joindre dans la requête.
Par exemple : la table
CREATE TABLE person ( `id` INT NOT NULL PRIMARY KEY, `name` VARCHAR(50) ); CREATE TABLE fruits ( `fruit_name` VARCHAR(20) NOT NULL PRIMARY KEY, `color` VARCHAR(20), `price` INT ); CREATE TABLE person_fruit ( `person_id` INT NOT NULL, `fruit_name` VARCHAR(20) NOT NULL, PRIMARY KEY(`person_id`, `fruit_name`) );
person_fruit contient une ligne pour chaque fruit auquel une personne est associée et relie efficacement les tables de personnes et de fruits entre elles.
1 | "banana" 1 | "apple" 1 | "orange" 2 | "straberry" 2 | "banana" 2 | "apple"
Lorsque vous souhaitez récupérer une personne et ses fruits, vous pouvez faire quelque chose comme ceci :
SELECT p.*, f.* FROM person p INNER JOIN person_fruit pf ON p.id = pf.person_id INNER JOIN fruits f ON pf.fruit_name = f.fruit_name
Note 1 :
La raison pour laquelle il n'y a pas de tableaux dans SQL est que la plupart des gens n'en ont pas vraiment besoin il. Les bases de données relationnelles (c'est ce qu'est SQL) fonctionnent en utilisant des relations, et la plupart du temps, il est préférable d'avoir une ligne du tableau pour chaque « élément d'information ». Par exemple, vous pourriez penser "Je veux une liste de quelque chose ", mais créez plutôt un nouveau tableau qui relie les lignes d'une table aux lignes d'une autre table Lien . [1] De cette façon, vous pouvez représenter la relation M:N. Un autre avantage est que ces liens n’encombrent pas la ligne contenant l’élément lié. La base de données peut indexer ces lignes. Les tableaux ne sont généralement pas indexés.
Si vous n'avez pas besoin d'une base de données relationnelle, vous pouvez utiliser par exemple un magasin clé-valeur.
"message. Phrase réécrite : Selon la règle d'or, chaque attribut non clé doit fournir des informations correspondantes pour la clé et l'ensemble du fait clé. " Le tableau en fait trop. Il a plusieurs faits, il stocke la commande (ce qui n'a rien à voir avec la relation elle-même). Les performances sont médiocres (voir ci-dessus
Imaginez que vous avez une table de personnes, vous avez une table). table qui peut permettre aux gens d'appeler. Vous pouvez désormais demander à chaque personne d'avoir sa liste de numéros de téléphone, mais chaque personne a de nombreuses autres relations avec beaucoup d'autres choses. Cela signifie-t-il que ma table de personnes doit contenir un tableau de tout ce à quoi elle est connectée ? pas une propriété de la personne elle-même.
[1] : Si la table liée n'a que deux colonnes (la clé primaire de chaque table), cela n'a pas d'importance si la relation elle-même a d'autres propriétés, elle doit être représentée dans ! ce tableau en tant que colonne.
Remarque 2 :
MySQL 5.7 fournit désormais un type de données JSON. Ce nouveau type de données offre une nouvelle façon pratique de stocker des données complexes : listes, dictionnaires, etc.
Le mappage objet-relationnel peut être utilisé. être très complexe, car les Rrays ne sont pas mappés efficacement aux bases de données, historiquement, les gens créaient généralement des tables pour stocker des listes ou des tableaux et ajoutaient chaque valeur en tant qu'enregistrement. La table pouvait n'avoir que 2 ou 3 colonnes, ou en contenir davantage. Colonne. La manière de stocker ces données dépend vraiment des caractéristiques des données
Par exemple, la liste contiendra-t-elle un nombre statique ou dynamique d'entrées, ou la table devrait-elle atteindre des millions d'enregistrements ? de lecture ? Beaucoup d'écriture ? Ce sont tous des facteurs à prendre en compte lorsque vous décidez comment stocker votre collection de données.
De plus, les magasins de données/magasins de fichiers key:value comme Cassandra, MongoDB, Redis, etc. fournissent également une bonne solution. Notez où les données sont réellement stockées (si sur disque ou en mémoire). Toutes les données ne doivent pas nécessairement se trouver dans la même base de données. Certaines données ne correspondent pas bien à une base de données relationnelle et vous pouvez avoir des raisons de les stocker ailleurs, ou vous souhaiterez peut-être utiliser une base de données clé: valeur en mémoire comme cache chaud pour les données stockées quelque part sur le disque ou comme stockage temporaire. comme des séances.
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

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

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 un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

Étapes pour effectuer SQL dans NAVICAT: Connectez-vous à la base de données. Créez une fenêtre d'éditeur SQL. Écrivez des requêtes ou des scripts SQL. Cliquez sur le bouton Exécuter pour exécuter une requête ou un script. Affichez les résultats (si la requête est exécutée).

Erreurs et solutions courantes Lors de la connexion aux bases de données: nom d'utilisateur ou mot de passe (erreur 1045) Blocs de pare-feu Connexion (erreur 2003) Délai de connexion (erreur 10060) Impossible d'utiliser la connexion à socket (erreur 1042) Erreur de connexion SSL (erreur 10055) Trop de connexions Résultat de l'hôte étant bloqué (erreur 1129)
