数据库设计问题 – SQL_MySQL
要求: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)
我们预先放入测试的数据,如下:
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)
首先执行下列语句:
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)
进而,我们再连表:
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)
于是,我们得到了结果;
-------
补充一些基础知识:
如何修改已有表的列:http://www.w3school.com.cn/sql/sql_alter.asp
GROUP BY 相关知识:http://www.w3school.com.cn/sql/sql_groupby.asp

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)

Sujets chauds

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.

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

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

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 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. 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.

É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 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
