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

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dengan populariti Internet dan peningkatan bilangan senario aplikasi, reka bentuk pangkalan data telah menjadi isu yang sangat penting. Dalam reka bentuk pangkalan data, medan berlebihan adalah isu yang sangat penting. Medan berlebihan merujuk kepada medan pendua atau tidak perlu yang muncul semasa mereka bentuk pangkalan data. Walaupun medan berlebihan boleh meningkatkan kecekapan dan kelajuan pertanyaan pada tahap tertentu, ia juga membazirkan ruang storan, meningkatkan kesukaran penyelenggaraan, malah menjejaskan konsistensi dan keselamatan data. Oleh itu, dalam pengaturcaraan PHP, amalan terbaik tertentu harus diikuti untuk menyelesaikan masalah yang disebabkan oleh medan berlebihan.

Meneroka penyelesaian kepada masalah reka bentuk pangkalan data yang dihadapi dalam pembangunan teknologi MongoDB Abstrak: Dengan perkembangan pesat data besar dan pengkomputeran awan, reka bentuk pangkalan data amat penting dalam pembangunan perisian. Artikel ini akan membincangkan isu reka bentuk pangkalan data biasa yang dihadapi semasa pembangunan dan memperkenalkan penyelesaian MongoDB melalui contoh kod khusus. Pengenalan: Dalam proses pembangunan perisian, reka bentuk pangkalan data adalah pautan utama. Pangkalan data perhubungan tradisional mempunyai beberapa isu prestasi dan kebolehskalaan apabila memproses data berskala besar. Dan MongoD

Golang ialah bahasa pengaturcaraan yang dibangunkan oleh Google Kesederhanaan penggunaannya, prestasi unggul dan ciri merentas platform menjadikannya semakin popular dalam pembangunan aplikasi web moden. Dalam pembangunan aplikasi web, reka bentuk pangkalan data adalah bahagian yang sangat penting. Dalam artikel ini, kami akan memperkenalkan cara mempraktikkan reka bentuk pangkalan data semasa membangunkan aplikasi web menggunakan Golang. Memilih pangkalan data Pertama, kita perlu memilih pangkalan data yang sesuai. Golang menyokong pelbagai pangkalan data, seperti MySQL, Po

Bagaimana untuk melaksanakan reka bentuk pangkalan data untuk SKU berbilang spesifikasi produk dalam PHP Dalam platform e-dagang, spesifikasi produk adalah konsep yang sangat penting. Spesifikasi produk boleh difahami sebagai sifat dan ciri produk yang berbeza, seperti saiz, warna, berat, dsb. Dalam aplikasi praktikal, untuk spesifikasi yang berbeza, kita selalunya perlu menetapkan harga, inventori, gambar dan maklumat lain yang berbeza untuk setiap kombinasi. Ini memerlukan kami untuk mereka bentuk struktur pangkalan data yang sesuai untuk menyimpan dan mengurus spesifikasi produk dan maklumat berkaitan. Artikel ini akan memperkenalkan cara melaksanakan SKU berbilang spesifikasi produk dalam PHP

PHP dan MySQL adalah pasangan yang berkuasa dengan pelbagai aplikasi. Dalam industri Internet, PHP dan MySQL telah menjadi konfigurasi standard timbunan teknologi, dan sejumlah besar laman web, aplikasi web, sistem pengurusan bahagian belakang dan aplikasi lain telah menggunakan gabungan ini. Artikel ini akan meneroka reka bentuk dan aplikasi pangkalan data PHP dan MySQL serta memperkenalkan beberapa amalan terbaik. 1. Kelebihan pangkalan data PHP dan MySQL PHP ialah bahasa pengaturcaraan Web bersilang platform, sumber terbuka, sisi pelayan dengan pelbagai senario aplikasi. MySQL ialah a

Penjelasan terperinci tentang aplikasi kunci utama komposit MySQL dalam reka bentuk pangkalan data Kunci utama komposit MySQL merujuk kepada kunci utama yang terdiri daripada pelbagai medan Satu rekod dikenal pasti secara unik dengan menggabungkan nilai medan ini. Dalam reka bentuk pangkalan data, kunci utama komposit digunakan secara meluas, terutamanya apabila entiti perlu dikenal pasti secara unik. Artikel ini akan memperkenalkan secara terperinci konsep, prinsip reka bentuk dan contoh kod khusus kunci utama komposit MySQL. 1. Konsep kunci utama komposit MySQL Dalam MySQL, kunci utama ialah medan yang digunakan untuk mengenal pasti secara unik setiap baris data dalam jadual.

步骤:1、需求收集和分析,得到数据字典和数据流图;2、对用户需求综合、归纳与抽象,形成概念模型;3、将概念结构转换为数据模型;4、设计数据库的物理结构;5、建立数据库,编制与调试应用程序,组织数据入库;6、对数据库系统进行评价、调整与修改。

Reka bentuk pangkalan data MySQL: senarai menu sistem pesanan Pengenalan: Dalam industri katering, reka bentuk dan pelaksanaan sistem pesanan adalah penting. Salah satu jadual data teras ialah jadual menu Artikel ini akan memperkenalkan secara terperinci cara mereka bentuk dan mencipta jadual menu yang berkesan untuk menyokong fungsi sistem pesanan. 1. Analisis keperluan Sebelum mereka bentuk senarai menu, kita perlu menjelaskan keperluan dan fungsi sistem. Dalam sistem pesanan, jadual menu perlu menyimpan maklumat yang berkaitan tentang setiap hidangan, termasuk nama hidangan, harga, klasifikasi, penerangan, dsb. Di samping itu, anda juga perlu mempertimbangkan hidangan
