7月26日 MySql单表查询作业
作業要求:
數據庫productorder。
1.customer表
1).查詢所有顧客信息。
2).查詢姓名和聯系人相同的顧客信息
3).查詢所在城市是北京的顧客姓名,顧客地址,顧客所在城市,郵編。
?
2.product表:
1).查詢所有產品信息
2).查詢產品名中帶有“小米”的商品信息
3).查詢產品名中以“小”開頭或者產品描述中帶有“玫瑰”的產品信息
4).查詢價格在3000以上的的產品名和單價(使用別名)
5).查詢價格在3000以上并且庫存數量在80以上的產品的名字和單價
?
3.`order`表:
1).查詢所有訂單
2).查詢物品數量大于10的訂單信息
3).分別使用IN和OR的方式查詢pid為2和4的商品銷售記錄
4)查詢2016-12-05到2016-12-15之間的訂單詳情(使用兩種方法查詢)
5)查詢訂單編號為4的交易總金額(請使用別名)
?
4.vendor表:
1).查詢所有供應商信息
2).找出供應商地址以A起頭、 以o結尾的所有供應商
3).查詢供應商地址為空的供應商信息
4).查詢出所有供應商的姓名,地址,城市(使用別名)
?
5.recruit表:
1).查詢所有庫存信息
2)查詢退貨數量大于10的物品信息
3)查詢所有的供應商編號(需過濾重復行)
?
建表、插入數據腳本:
CREATE TABLE `customer` (
? `cid` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一顧客ID',
? `cname` varchar(50) NOT NULL COMMENT '顧客姓名',
? `caddress` varchar(50) NOT NULL COMMENT '顧客地址',
? `ccity` varchar(50) NOT NULL COMMENT '顧客所在城市',
? `cstate` varchar(20) NOT NULL COMMENT '顧客所在州',
? `czip` varchar(20) NOT NULL COMMENT '郵政編碼',
? `ccountry` varchar(20) NOT NULL COMMENT '顧客所在國家',
? `ccontact` varchar(20) DEFAULT NULL COMMENT '顧客聯系姓名',
? `cemail` varchar(20) DEFAULT NULL COMMENT '顧客郵箱',
? PRIMARY KEY (`cid`)
) ;
CREATE TABLE `order` (
? `oid` int(11) NOT NULL AUTO_INCREMENT COMMENT '訂單號',
? `pid` int(11) NOT NULL COMMENT '產品ID ',
? `cid` int(11) NOT NULL,
? `ocount` int(11) NOT NULL DEFAULT '1' COMMENT '物品數量',
? `oprice` decimal(8,2) NOT NULL COMMENT '物品單價',
? `odate` datetime NOT NULL COMMENT '訂單時間',
? PRIMARY KEY (`oid`)
);
CREATE TABLE `product` (
? `pid` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一的產品ID',
? `pname` varchar(50) NOT NULL COMMENT '產品名',
? `pprice` decimal(8,2) NOT NULL COMMENT '產品價格',
? `pdesc` varchar(100) DEFAULT NULL COMMENT '產品描述',
? `pcount` int(11) NOT NULL DEFAULT '0' COMMENT '庫存數量',
? PRIMARY KEY (`pid`)
);
CREATE TABLE `recruit` (
? `rid` int(11) NOT NULL AUTO_INCREMENT COMMENT '入庫ID',
? `pid` int(11) NOT NULL COMMENT '物品ID',
? `vid` int(11) NOT NULL COMMENT '供貨商',
? `rprice` decimal(10,0) NOT NULL COMMENT '單價',
? `rcount` int(11) NOT NULL COMMENT '數量',
? `returncount` int(11) DEFAULT NULL COMMENT '退貨數量',
? `rdecp` varchar(255) DEFAULT NULL COMMENT '訂單描述',
? `rdate` datetime NOT NULL COMMENT '入庫時間',
? PRIMARY KEY (`rid`)
);
CREATE TABLE `vendor` (
? `vid` int(11) NOT NULL AUTO_INCREMENT COMMENT '唯一的供應商ID',
? `vname` varchar(50) NOT NULL COMMENT '供應商姓名',
? `vaddress` varchar(50) DEFAULT NULL COMMENT '供應商地址',
? `vcity` varchar(50) DEFAULT NULL COMMENT '供應商所在城市',
? `vstate` varchar(20) DEFAULT NULL COMMENT '供應商所在州',
? `vzip` varchar(10) DEFAULT NULL COMMENT '供應商地址郵政編碼',
? `vcountry` varchar(50) DEFAULT NULL COMMENT '供應商所在國家',
? PRIMARY KEY (`vid`)
);
?
-- 1 添加數據
-- customer
INSERT INTO `customer` VALUES ('1', '馬云', '大馬路一號', '杭州', '浙江', '100000', '中國', '馬云', 'mayun@alibaba.com');
INSERT INTO `customer` VALUES ('2', '劉強東', '中關村上地一街2號', '北京', '北京', '100000', '中國', '奶茶妹妹', 'liuqiandong@jd.com');
INSERT INTO `customer` VALUES ('3', '馬化騰', '你懂的', '東莞', '廣東', '300000', '中國', '馬化騰', 'mahuateng@qq.com');
-- order
INSERT INTO `order` VALUES ('1', '1', '1', '1', '2999.00', '2016-12-02 15:41:39');
INSERT INTO `order` VALUES ('2', '3', '2', '2', '5888.00', '2016-12-01 15:42:42');
INSERT INTO `order` VALUES ('3', '4', '3', '100', '4888.00', '2016-12-06 15:43:26');
INSERT INTO `order` VALUES ('4', '1', '1', '2', '2999.00', '2016-12-31 15:43:26');
INSERT INTO `order` VALUES ('11', '1', '1', '2', '2999.00', '2017-01-01 01:59:59');
-- product
INSERT INTO `product` VALUES ('1', '小米Note2', '2799.00', '小米Note 2 雙曲面商務旗艦', '100');
INSERT INTO `product` VALUES ('2', '小米Mix', '3499.00', '4GB+128GB', '100');
INSERT INTO `product` VALUES ('3', 'iPhone 7', '5388.00', '4.7屏+玫瑰金色', '100');
INSERT INTO `product` VALUES ('4', 'iPhone 6s', '4588.00', '分期每月最低約 RMB 382', '100');
-- recruit
INSERT INTO `recruit` VALUES ('1', '4', '2', '4588', '50', '0', '來50個iPhone6s', '2016-12-01 16:07:57');
INSERT INTO `recruit` VALUES ('2', '4', '2', '4388', '200', '0', '200個iPhone 6s', '2016-12-04 16:08:41');
INSERT INTO `recruit` VALUES ('3', '3', '2', '5388', '100', '0', '100臺iPhone 7', '2016-12-06 16:09:40');
INSERT INTO `recruit` VALUES ('4', '3', '1', '5288', '50', '0', '從雷軍手里弄來50臺iPhone 7', '2016-11-15 16:10:20');
INSERT INTO `recruit` VALUES ('5', '2', '1', '3000', '50', '1', '小米MIX來50個', '2016-11-16 16:10:45');
INSERT INTO `recruit` VALUES ('6', '2', '1', '2800', '150', '2', '小米MIX再來150個', '2016-11-30 16:11:01');
INSERT INTO `recruit` VALUES ('7', '1', '1', '2500', '10', '5', '小米Note2來10個', '2016-11-21 16:11:17');
INSERT INTO `recruit` VALUES ('8', '1', '1', '2399', '20', '15', '小米Note2再來20個', '2016-12-13 16:11:35');
-- vendor
INSERT INTO `vendor` VALUES ('1', '雷軍', '蟠桃園', '仙桃', '湖北', '4000000', '中國');
INSERT INTO `vendor` VALUES ('2', '庫克', 'Apple 1 Infinite Loop Cupertino', '庫比蒂諾', '加利福尼亞州', '8000000', '美國');
?
查詢操作語句:
SELECT *?
FROM customer;
SELECT *?
FROM customer
WHERE cname = ccontact;
SELECT cname,caddress,ccity,czip?
FROM customer?
WHERE ccity='北京';
SELECT *?
FROM product;
SELECT *?
FROM product
WHERE pname LIKE '%小米%';
SELECT *?
FROM product
WHERE pname LIKE '小%' OR pdesc LIKE '%玫瑰%' ;
SELECT pname AS productname, pprice money FROM product
WHERE pprice > 3000
SELECT pname, pprice FROM product
WHERE pprice > 3000 AND pcount>80;
select *?
from `order`;
SELECT * FROM `order`
WHERE ocount > 10;
SELECT * FROM `order`
WHERE pid IN (2, 4);
SELECT *?
FROM `order`
WHERE odate BETWEEN '2016-12-05' AND '2016-12-15';
SELECT ocount*oprice AS allmoney
FROM `order` WHERE oid=4;
select *?
from ?vendor;
SELECT *
FROM vendor
WHERE vaddress LIKE 'A%o';
SELECT *?
FROM vendor?
WHERE vaddress IS NULL;
SELECT vname AS vendorname, vaddress AS vendoraddress, vcity AS vendorcity?
FROM vendor ;
select *?
from ?recruit;
SELECT *?
FROM recruit?
WHERE returncount>10;
SELECT DISTINCT vid?
FROM recruit;
?
參考答案:
-- 1.customer表
-- 1).查詢所有顧客信息
SELECT * FROM customer;
-- 2)查詢姓名和聯系人相同的顧客信息
SELECT * FROM customer
WHERE cname = ccontact
-- 3)查詢所在城市是北京的顧客姓名,顧客地址,顧客所在城市,郵編。
SELECT cname,caddress,ccity,czip FROM customer WHERE ccity='北京';
-- 2.product表:
-- 1).查詢所有產品信息
SELECT * FROM product;
-- 2).查詢產品名中帶有“小米”的商品信息
SELECT * FROM product
WHERE pname LIKE '%小米%'
-- 3).查詢產品名中以“小”開頭或者產品描述中帶有“玫瑰”的產品信息
SELECT * FROM product
WHERE pname LIKE '小%' OR pdesc LIKE '%玫瑰%'?
-- 4).查詢價格在3000以上的的名字和單價(使用別名)
SELECT pname AS 產品名稱, pprice 單價 FROM product
WHERE pprice > 3000
-- 5).查詢價格在3000以上并且庫存數量在80以上的產品的名字和單價
SELECT pname, pprice FROM product
WHERE pprice > 3000 AND pcount>80;
-- 3.`order`表:
-- 1).查詢所有訂單
select * from `order`;
-- 2).查詢物品數量大于10的訂單信息
SELECT * FROM `order`
WHERE ocount > 10;
-- 3).分別使用IN和OR的方式查詢pid為2和4的商品銷售記錄
SELECT * FROM `order`
WHERE pid IN (2, 4)
SELECT * FROM `order`
WHERE pid = 2 OR pid = 4
-- 4)查詢2016-12-05到2016-12-15之間的訂單詳情(使用兩種方法查詢)
SELECT * FROM `order`
WHERE odate BETWEEN '2016-12-05' AND '2016-12-15';
SELECT * FROM `order`
WHERE odate >='2016-12-05' AND odate<= '2016-12-15';
-- 5)查詢訂單編號為4的交易總金額(請使用別名)
SELECT ocount*oprice AS 交易總金額 FROM `order` WHERE oid=4;
-- 4.vendor表
-- 1).查詢所有供應商信息
select * from ?vendor;
-- 2).找出供應商地址以A起頭、 以o結尾的所有供應商
SELECT *
FROM vendor
WHERE vaddress LIKE 'A%o';
-- 3).查詢供應商地址為空的供應商信息
SELECT * FROM vendor WHERE vaddress IS NULL
-- 4).查詢出所有供應商的姓名,地址,城市(使用別名)
SELECT vname AS 姓名, vaddress AS 地址, vcity AS 城市 FROM vendor ;
-- 5.recruit表
-- 1).查詢所有庫存信息
select * from ?recruit;
-- 2)查詢退貨數量大于10的物品信息
SELECT * FROM recruit WHERE returncount>10
-- 3)查詢所有的供應商編號(需過濾重復行)
SELECT DISTINCT vid FROM recruit;
總結
以上是生活随笔為你收集整理的7月26日 MySql单表查询作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【QT】ComboBox下拉菜单背景透明
- 下一篇: 优秀的管理者都需要做好这四点