Maison base de données tutoriel mysql 数据库设计问题 – SQL_MySQL

数据库设计问题 – SQL_MySQL

Jun 01, 2016 pm 01:51 PM
数据库设计

要求:a 表:`id`, `name` ; 作为词表,存放不同的词;b 表:`id`, `attr` ; 作为属性表,存放各种属性;其中,一个词可以有不同的多个属性;而每个词的属性的个数也不一定相同;c 表:`id`, `aid`, `bid` ; 作为关系表,存放每个词的对应关系;写出 SQL 语句,来得到每个词拥有属性总数的逆向(DESC)排序:

各种表的信息如下:

mysql> DESC `a`; DESC `b`; DESC `c`;+-------+---------------------+------+-----+---------+----------------+| Field | Type                | Null | Key | Default | Extra          |+-------+---------------------+------+-----+---------+----------------+| id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment || name  | varchar(255)        | NO   |     | NULL    |                |+-------+---------------------+------+-----+---------+----------------+2 rows in set (0.00 sec)+-------+---------------------+------+-----+---------+----------------+| Field | Type                | Null | Key | Default | Extra          |+-------+---------------------+------+-----+---------+----------------+| id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment || attr  | varchar(255)        | NO   |     | NULL    |                |+-------+---------------------+------+-----+---------+----------------+2 rows in set (0.01 sec)+-------+---------------------+------+-----+---------+----------------+| Field | Type                | Null | Key | Default | Extra          |+-------+---------------------+------+-----+---------+----------------+| id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment || aid   | int(8)              | NO   |     | NULL    |                || bid   | int(8)              | NO   |     | NULL    |                |+-------+---------------------+------+-----+---------+----------------+3 rows in set (0.00 sec)
Copier après la connexion

我们预先放入测试的数据,如下:

mysql> SELECT * FROM `a`; SELECT * FROM `b`; SELECT * FROM `c`;+----+------+| id | name |+----+------+|  1 | a    ||  2 | b    ||  3 | c    ||  4 | d    ||  5 | e    |+----+------+5 rows in set (0.00 sec)+----+------+| id | attr |+----+------+|  1 | 111  ||  2 | 112  ||  3 | 113  ||  4 | 123  ||  5 | 221  ||  6 | 231  ||  7 | 252  ||  8 | 278  ||  9 | 292  || 10 | 256  || 11 | 578  || 12 | 653  || 13 | 521  || 14 | 502  |+----+------+14 rows in set (0.00 sec)+----+-----+-----+| id | aid | bid |+----+-----+-----+|  1 |   1 |   1 ||  2 |   1 |   2 ||  3 |   1 |   4 ||  4 |   1 |   7 ||  5 |   2 |   8 ||  6 |   2 |  11 ||  7 |   3 |   3 ||  8 |   3 |   5 ||  9 |   3 |   6 || 10 |   4 |   9 || 11 |   4 |  10 || 12 |   5 |  12 || 13 |   5 |  13 || 14 |   5 |  14 |+----+-----+-----+14 rows in set (0.00 sec)
Copier après la connexion

首先执行下列语句:

mysql> SELECT COUNT(`bid`) AS `attrcounts` FROM `c` GROUP BY `aid` ORDER BY `attrcounts` DESC;+------------+| attrcounts |+------------+|          4 ||          3 ||          3 ||          2 ||          2 |+------------+5 rows in set (0.00 sec)
Copier après la connexion

进而,我们再连表:

mysql> SELECT a.name, COUNT(c.bid) AS `attrcounts` FROM `c` LEFT JOIN `a` ON a.id = c.aid GROUP BY c.aid ORDER BY `attrcounts` DESC;+------+------------+| name | attrcounts |+------+------------+| a    |          4 || c    |          3 || e    |          3 || b    |          2 || d    |          2 |+------+------------+5 rows in set (0.00 sec)
Copier après la connexion

于是,我们得到了结果;

-------

补充一些基础知识:

如何修改已有表的列:http://www.w3school.com.cn/sql/sql_alter.asp

GROUP BY 相关知识:http://www.w3school.com.cn/sql/sql_groupby.asp

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Problèmes de champs redondants dans la conception de bases de données : meilleures pratiques en programmation PHP Problèmes de champs redondants dans la conception de bases de données : meilleures pratiques en programmation PHP Jun 22, 2023 am 11:02 AM

Avec la popularité d’Internet et le nombre croissant de scénarios d’application, la conception de bases de données est devenue un enjeu extrêmement important. Dans la conception de bases de données, les champs redondants constituent un problème très important. Les champs redondants font référence aux champs en double ou inutiles qui apparaissent lors de la conception de la base de données. Bien que les champs redondants puissent améliorer dans une certaine mesure l'efficacité et la vitesse des requêtes, ils gaspillent également de l'espace de stockage, augmentent les difficultés de maintenance et affectent même la cohérence et la sécurité des données. Par conséquent, en programmation PHP, certaines bonnes pratiques doivent être suivies pour résoudre les problèmes causés par les champs redondants.

Recherche de solutions aux problèmes de conception de bases de données rencontrés lors du développement utilisant la technologie MongoDB Recherche de solutions aux problèmes de conception de bases de données rencontrés lors du développement utilisant la technologie MongoDB Oct 08, 2023 pm 05:53 PM

Explorer des solutions aux problèmes de conception de bases de données rencontrés dans le développement de la technologie MongoDB Résumé : Avec le développement rapide du Big Data et du cloud computing, la conception de bases de données est particulièrement importante dans le développement de logiciels. Cet article abordera les problèmes courants de conception de bases de données rencontrés lors du développement et présentera les solutions MongoDB à travers des exemples de code spécifiques. Introduction : Dans le processus de développement logiciel, la conception de bases de données est un maillon clé. Les bases de données relationnelles traditionnelles présentent certains problèmes de performances et d'évolutivité lors du traitement de données à grande échelle. Et MongoD

Pratique de conception de bases de données d'apprentissage Golang pour les applications Web Pratique de conception de bases de données d'apprentissage Golang pour les applications Web Jun 24, 2023 am 10:33 AM

Golang est un langage de programmation développé par Google. Sa simplicité d'utilisation, ses performances supérieures et ses fonctionnalités multiplateformes le rendent de plus en plus populaire dans le développement d'applications Web modernes. Dans le développement d’applications Web, la conception de bases de données est un élément très important. Dans cet article, nous présenterons comment pratiquer la conception de bases de données lors du développement d'applications Web à l'aide de Golang. Choisir une base de données Tout d'abord, nous devons choisir une base de données appropriée. Golang prend en charge une variété de bases de données, telles que MySQL, Po

Conception et application de bases de données PHP et MySQL Conception et application de bases de données PHP et MySQL Jun 20, 2023 am 09:27 AM

PHP et MySQL forment une paire puissante avec une large gamme d'applications. Dans l'industrie Internet, PHP et MySQL sont devenus la configuration standard de la pile technologique, et un grand nombre de sites Web, d'applications Web, de systèmes de gestion backend et d'autres applications ont adopté cette combinaison. Cet article explorera la conception et l'application des bases de données PHP et MySQL et présentera quelques bonnes pratiques. 1. Avantages de PHP et des bases de données MySQL PHP est un langage de programmation Web open source, multiplateforme, côté serveur, offrant un large éventail de scénarios d'application. MySQL est un

Comment implémenter la conception de bases de données pour les SKU multi-spécifications de produits en PHP Comment implémenter la conception de bases de données pour les SKU multi-spécifications de produits en PHP Sep 06, 2023 am 09:03 AM

Comment implémenter la conception de bases de données pour les SKU multi-spécifications de produits en PHP Dans les plateformes de commerce électronique, les spécifications de produits sont un concept très important. Les spécifications du produit peuvent être comprises comme les différents attributs et caractéristiques du produit, tels que la taille, la couleur, le poids, etc. Dans les applications pratiques, pour différentes spécifications, nous devons souvent définir différents prix, stocks, images et autres informations pour chaque combinaison. Cela nous oblige à concevoir une structure de base de données appropriée pour stocker et gérer les spécifications des produits et les informations associées. Cet article présentera comment implémenter des SKU multi-spécifications de produits en PHP.

Explication détaillée de l'application de la clé primaire composite MySQL dans la conception de bases de données Explication détaillée de l'application de la clé primaire composite MySQL dans la conception de bases de données Mar 15, 2024 am 11:33 AM

Explication détaillée de l'application de la clé primaire composite MySQL dans la conception de bases de données. La clé primaire composite MySQL fait référence à une clé primaire composée de plusieurs champs. Un enregistrement est identifié de manière unique en combinant les valeurs de ces champs. Dans la conception de bases de données, les clés primaires composites sont largement utilisées, en particulier lorsqu'une entité doit être identifiée de manière unique. Cet article présentera en détail le concept, les principes de conception et des exemples de code spécifiques des clés primaires composites MySQL. 1. Le concept de clé primaire composite MySQL Dans MySQL, la clé primaire est un champ utilisé pour identifier de manière unique chaque ligne de données dans la table.

Quelles sont les principales étapes de la conception d'une base de données ? Quelles sont les principales étapes de la conception d'une base de données ? Dec 29, 2020 pm 04:13 PM

Étapes : 1. Recueillir et analyser les exigences pour obtenir un dictionnaire de données et un diagramme de flux de données ; 2. Synthétiser, résumer et résumer les exigences des utilisateurs pour former un modèle conceptuel ; 3. Convertir la structure conceptuelle en un modèle de données ; de la base de données ; 5. Établir une base de données, compiler et déboguer les applications et organiser les données dans la base de données ; 6. Évaluer, ajuster et modifier le système de base de données ;

Utilisez MySQL MVCC pour optimiser la conception de la base de données et améliorer les performances des applications Utilisez MySQL MVCC pour optimiser la conception de la base de données et améliorer les performances des applications Sep 08, 2023 am 08:34 AM

Utilisez MySQLMVCC pour optimiser la conception des bases de données et améliorer les performances des applications Résumé : Dans les applications Internet actuelles, les performances des bases de données sont cruciales pour le fonctionnement stable et le temps de réponse du système. En tant que l'un des systèmes de gestion de bases de données relationnelles les plus couramment utilisés, MySQL utilise le contrôle de concurrence multiversion (MVCC) pour améliorer les performances de concurrence et la cohérence des données lors de la conception de la base de données. Cet article présentera les principes de base de MVCC et son implémentation dans MySQL, et donnera quelques exemples d'optimisation de la conception de bases de données. Principes de base de la concurrence multiversion MVCC

See all articles