MYSQL

-- 添加数据以及如何查询
CREATE DATABASE table;
CREATE TABLE t_shop(
    _id INT PRIMARY KEY AUTO_INCREMENT,
    _shopcode VARCHAR(30),
    _name VARCHAR(40),
    _fk INT
);
INSERT INTO t_shop(_shopcode,_name,_fk) VALUES
                    ('n11','苹果',1),
                    ('n12','白菜',2),
                    ('a13','冬瓜',3),
                    ('n14','西瓜',4),
                    ('n15','丝瓜',5),
                    ('c16','苦瓜',6),
                    ('m17','南瓜',5),

CREATE TABLE t_price(
    _pid INT PRIMARY KEY,
    _price FLOAT
);
INSERT INTO t_price(_pid,_price) VALUES
                                (1,9.0),
                                (2,3.2),
                (3,5.5),
                (4,6.0),
                (5,6.3),
                (6,6.6);
 两张表通过 t_shop._fk  和 t_price._pid 进行关联


--  要求
-- 1  查询所有瓜的所有信息,包括价格
SELECT * FROM t_price,t_shop  WHERE t_shop._fk=t_price._pid AND t_shop._name LIKE '%瓜%'
-- 2  查询价格在4.0 到8.0 的所有商品信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price BETWEEN 4 AND 8
-- 3  查询查询同价格的商品信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price INLECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid GROUP BY t_price._price HAVING COUNT(*)>=2)

-- 4  查询最高价格商品信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price=(SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid GROUP BY t_price._price ORDER BY t_price._price DESC LIMIT 1)

-- 5  查询查询商品价格最高的前三个商品的信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid GROUP BY t_price._price DESC LIMIT 3
-- 6  查询所有商品的平均价格
SELECT AVG(t_price._price) FROM t_price,t_shop WHERE t_shop._fk=t_price._pid
-- 7  查询所有瓜的平均价格
SELECT AVG(t_price._price) FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_shop._name LIKE '%瓜%'
-- 8  查询最高商品的价格是最低商品的价格的倍数是多少
SELECT(SELECT MAX(t_price._price) FROM t_price,t_shop WHERE t_shop._fk=t_price._pid)/(SELECT MIN(t_price._price) FROM t_price,t_shop WHERE t_shop.=t_price._pid)

-- 9  查询和丝瓜有相同价格的商品信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price=(SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_shop._name="丝瓜") AND t_shop._name!="丝瓜"

-- 10 查询 是最低价格的商品的整数倍价格,的商品信息(例如最低价格商品是白菜,3.0。
--     它的整数倍3.0 6.0 9.0 等等这些价格的商品信息)。
SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price%(SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price<=ALL(SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid))=0


你可能感兴趣的:(MYSQL)