5.6常见查询的例子

5.6常见查询的例子
5.6.1列的最大值
5.6.2最大值为某一列的行
5.6.3每组最大列
5.6.4拥有某一列最大群的行
5.6.5使用用户定义的变量
5.6.6使用外键
5.6.7按两个键搜索
5.6.8每天访问次数计算
5.6.9使用自动增加
下面是如何用mysql解决一些常见问题的例子。

一些例子使用表shop 为某些商人(经销商)保管每件物品(物品编号)的价格。假设每个交易者每件物品有一个固定价格,然后(article , dealer 是记录的主要钥匙。

启动命令行工具 Mysql 并选择一个数据库:

$> mysql your-database-name
要创建和填充示例表,请使用这些语句:


CREATE TABLE shop (
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR(20)      DEFAULT ''     NOT NULL,
    price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
    PRIMARY KEY(article, dealer));
INSERT INTO shop VALUES
    (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
    (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
在发表声明后,表格应包括以下内容:

SELECT * FROM shop ORDER BY article;

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+

5.6.1列的最大值
“ 最高商品编号是多少? ”

SELECT MAX(article) AS article FROM shop;

+---------+
| article |
+---------+
|       4 |
+---------+

5.6.2最大值为某一列的行
任务:找到最贵商品的编号、经销商和价格。

通过子查询可以很容易地做到这一点:

SELECT article, dealer, price
FROM   shop
WHERE  price=(SELECT MAX(price) FROM shop);

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0004 | D      | 19.95 |
+---------+--------+-------+
另一个解决方案是使用LEFT JOIN ,如图所示:

SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.price < s2.price
WHERE s2.article IS NULL;
您也可以通过按价格对所有降行进行排序来实现这一点,并且只使用与Mysql相关的第一行。 LIMIT 就像这样:

SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1;
注意事项
如果有几件最贵的东西,每件的价格是19.95英镑,那么LIMIT 解决方案只会显示其中一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值