数据库设计问题 – 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

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Erforschung von Lösungen für Datenbankdesignprobleme, die bei der Entwicklung der MongoDB-Technologie auftreten. Zusammenfassung: Angesichts der rasanten Entwicklung von Big Data und Cloud Computing ist das Datenbankdesign in der Softwareentwicklung besonders wichtig. In diesem Artikel werden häufige Probleme beim Datenbankdesign erörtert, die während der Entwicklung auftreten, und MongoDB-Lösungen anhand spezifischer Codebeispiele vorgestellt. Einleitung: Im Softwareentwicklungsprozess ist das Datenbankdesign ein wichtiges Glied. Herkömmliche relationale Datenbanken weisen bei der Verarbeitung großer Datenmengen einige Leistungs- und Skalierbarkeitsprobleme auf. Und MongoD

Mit der Popularität des Internets und der zunehmenden Anzahl von Anwendungsszenarien ist das Datenbankdesign zu einem äußerst wichtigen Thema geworden. Beim Datenbankdesign sind redundante Felder ein sehr wichtiges Thema. Redundante Felder beziehen sich auf doppelte oder unnötige Felder, die beim Entwurf der Datenbank erscheinen. Obwohl redundante Felder die Abfrageeffizienz und -geschwindigkeit bis zu einem gewissen Grad verbessern können, verschwenden sie auch Speicherplatz, erhöhen die Wartungsschwierigkeiten und beeinträchtigen sogar die Datenkonsistenz und -sicherheit. Daher sollten bei der PHP-Programmierung bestimmte Best Practices befolgt werden, um die durch redundante Felder verursachten Probleme zu lösen.

Golang ist eine von Google entwickelte Programmiersprache. Aufgrund ihrer Benutzerfreundlichkeit, überlegenen Leistung und plattformübergreifenden Funktionen wird sie in der modernen Webanwendungsentwicklung immer beliebter. Bei der Entwicklung von Webanwendungen ist das Datenbankdesign ein sehr wichtiger Teil. In diesem Artikel stellen wir vor, wie man das Datenbankdesign bei der Entwicklung von Webanwendungen mit Golang übt. Auswahl einer Datenbank Zunächst müssen wir eine geeignete Datenbank auswählen. Golang unterstützt eine Vielzahl von Datenbanken, wie MySQL, Po

So implementieren Sie das Datenbankdesign für Produkt-SKUs mit mehreren Spezifikationen in PHP. In E-Commerce-Plattformen sind Produktspezifikationen ein sehr wichtiges Konzept. Unter Produktspezifikationen können die verschiedenen Attribute und Eigenschaften des Produkts verstanden werden, wie z. B. Größe, Farbe, Gewicht usw. In praktischen Anwendungen müssen wir für unterschiedliche Spezifikationen häufig unterschiedliche Preise, Lagerbestände, Bilder und andere Informationen für jede Kombination festlegen. Dazu müssen wir eine geeignete Datenbankstruktur entwerfen, um Produktspezifikationen und zugehörige Informationen zu speichern und zu verwalten. In diesem Artikel wird erläutert, wie Sie Produkt-SKUs mit mehreren Spezifikationen in PHP implementieren

MySQL-Datenbankdesign: Menüliste des Bestellsystems Einführung: In der Gastronomie ist das Design und die Implementierung des Bestellsystems von entscheidender Bedeutung. Eine der Kerndatentabellen ist die Menütabelle. In diesem Artikel wird detailliert beschrieben, wie eine effektive Menütabelle entworfen und erstellt wird, um die Funktionen des Bestellsystems zu unterstützen. 1. Anforderungsanalyse Bevor wir die Menüliste entwerfen, müssen wir die Anforderungen und Funktionen des Systems klären. Im Bestellsystem muss die Menütabelle relevante Informationen zu jedem Gericht speichern, einschließlich Gerichtname, Preis, Klassifizierung, Beschreibung usw. Darüber hinaus müssen Sie auch die Gerichte berücksichtigen

Verwenden Sie MySQLMVCC, um das Datenbankdesign zu optimieren und die Anwendungsleistung zu verbessern. Zusammenfassung: Bei heutigen Internetanwendungen ist die Datenbankleistung entscheidend für den stabilen Betrieb und die Reaktionszeit des Systems. Als eines der am häufigsten verwendeten relationalen Datenbankverwaltungssysteme verwendet MySQL Multiversion Concurrency Control (MVCC), um die Parallelitätsleistung und Datenkonsistenz beim Entwurf der Datenbank zu verbessern. In diesem Artikel werden die Grundprinzipien von MVCC und seine Implementierung in MySQL vorgestellt und einige Beispiele für die Optimierung des Datenbankdesigns gegeben. Grundprinzipien der MVCC-Mehrversions-Parallelität

PHP und MySQL sind ein leistungsstarkes Paar mit einem breiten Anwendungsspektrum. In der Internetbranche sind PHP und MySQL zur Standardkonfiguration des Technologie-Stacks geworden, und eine große Anzahl von Websites, Webanwendungen, Backend-Managementsystemen und anderen Anwendungen hat diese Kombination übernommen. In diesem Artikel werden das Design und die Anwendung von PHP- und MySQL-Datenbanken untersucht und einige Best Practices vorgestellt. 1. Vorteile von PHP und MySQL-Datenbank PHP ist eine quelloffene, plattformübergreifende, serverseitige Web-Programmiersprache mit vielfältigen Einsatzmöglichkeiten. MySQL ist ein

Detaillierte Erläuterung der Anwendung des zusammengesetzten MySQL-Primärschlüssels im Datenbankdesign. Der zusammengesetzte MySQL-Primärschlüssel bezieht sich auf einen Primärschlüssel, der aus mehreren Feldern besteht. Ein Datensatz wird durch die Kombination der Werte dieser Felder eindeutig identifiziert. Beim Datenbankdesign werden häufig zusammengesetzte Primärschlüssel verwendet, insbesondere wenn eine Entität eindeutig identifiziert werden muss. In diesem Artikel werden das Konzept, die Entwurfsprinzipien und spezifische Codebeispiele von zusammengesetzten MySQL-Primärschlüsseln ausführlich vorgestellt. 1. Das Konzept des zusammengesetzten MySQL-Primärschlüssels In MySQL ist der Primärschlüssel ein Feld, das zur eindeutigen Identifizierung jeder Datenzeile in der Tabelle verwendet wird.
