数据库-查询练习1~52(含参考答案)(2)

来源:网络收集 时间:2025-09-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第四部分:

#创建数据表suppliers,SQL语句如下: CREATE TABLE suppliers( s_id INT NOT NULL AUTO_INCREMENT, s_name CHAR(50) NOT NULL, s_city CHAR(50) NULL, s_zip CHAR(10) NULL, s_call CHAR(50) NOT NULL, PRIMARY KEY (s_id) ) ; 插入数据,SQL语句如下: INSERT INTO suppliers(s_id, s_name,s_city, s_zip, s_call) VALUES(101,'FastFruit Inc.','Tianjin','300000','48075'), (102,'LT Supplies','Chongqing','400000','44333'), (103,'ACME','Shanghai','200000','90046'), (104,'FNK Inc.','Zhongshan','528437','11111'), (105,'Good Set','Taiyuang','030000', '22222'), (106,'Just Eat Ours','Beijing','010', '45678'), (107,'DK Inc.','Zhengzhou','450000', '33332');

【46】在fruits表和suppliers表之间使用内连接查询。 查询之前,查看两个表的结构: DESC fruits; DESC suppliers;

由结果可以看到,fruits表和suppliers表中都有相同数据类型的字段s_id,两个表通过s_id字段建立联系。

接下来从fruits表中查询f_name、f_price字段,从suppliers表中查询s_id、s_name 【47】在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询 【48】查询供应f_id= ‘a1’的水果供应商提供的其他水果种类【较难】

1.LEFT JOIN左连接

左连接的结果包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。 如果左表的某行在右表中没有匹配行,则在相关联的结果行中,右表的所有选择列表列均为空值。

创建表orders,SQL语句如下: CREATE TABLE orders( o_num INT NOT NULL AUTO_INCREMENT, o_date DATETIME NOT NULL, c_id INT NOT NULL, PRIMARY KEY (o_num) ) ; 插入数据,SQL语句如下: INSERT INTO orders(o_num, o_date, c_id) VALUES(30001, '2008-09-01', 10001), (30002, '2008-09-12', 10003), (30003, '2008-09-30', 10004), (30004, '2008-10-03', 10005), (30005, '2008-10-08', 10001);

【49】在customers表和orders表中,查询所有客户,包括没有订单的客户

2.RIGHT JOIN右连接

右连接是左连接的反向连接,将返回右表的所有行。如果右表的某行在左表中没有匹配行,左表将返回空值。

【50】在customers表和orders表中,查询所有订单,包括没有客户的订单

【51】在customers表和orders表中,使用INNER JOIN语法查询customers表中ID为10001的客户的订单信息

【52】在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询,并对查询结果排序

参考答案

【1】从fruits表中检索所有字段的数据,SQL语句如下: SELECT * FROM fruits;

【2】查询fruits表中f_name列所有水果名称,SQL语句如下: SELECT f_name FROM fruits;

【3】从fruits表中获取f_name和f_price两列,SQL语句如下: SELECT f_name, f_price FROM fruits;

【4】查询价格为10.2元的水果的名称,SQL语句如下: SELECT f_name, f_price FROM fruits

WHERE f_price = 10.2;

【5】查找名称为“apple”的水果的价格,SQL语句如下: SELECT f_name, f_price FROM fruits

WHERE f_name = 'apple';

【6】查询价格小于10的水果的名称,SQL语句如下: SELECT f_name, f_price FROM fruits

WHERE f_price < 10;

【7】s_id为101和102的记录,SQL语句如下: SELECT s_id,f_name, f_price FROM fruits

WHERE s_id IN (101,102) ORDER BY f_name;

【8】查询所有s_id不等于101也不等于102的记录,SQL语句如下: SELECT s_id,f_name, f_price FROM fruits

WHERE s_id NOT IN (101,102) ORDER BY f_name;

【9】查询价格在2.00元到10.20元之间的水果名称和价格,SQL语句如下: SELECT f_name, f_price FROM fruits WHERE f_price BETWEEN 2.00 AND 10.20; 【10】查询价格在2.00元到10.20元之外的水果名称和价格,SQL语句如下: SELECT f_name, f_price FROM fruits

WHERE f_price NOT BETWEEN 2.00 AND 10.20;

【11】查找所有以’b’字母开头的水果,SQL语句如下: SELECT f_id, f_name FROM fruits

WHERE f_name LIKE 'b%';

【12】在fruits表中,查询f_name中包含字母’g’的记录,SQL语句如下: SELECT f_id, f_name FROM fruits

WHERE f_name LIKE '%g%';

【13】查询以’b’开头,并以’y’结尾的水果的名称,SQL语句如下: SELECT f_name FROM fruits

WHERE f_name LIKE 'b%y';

【14】在fruits表中,查询以字母’y’结尾,且’y’前面只有4个字母的记录,SQL语句如下:

SELECT f_id, f_name FROM fruits WHERE f_name LIKE '----y'; 查询表中的记录数目:

SELECT COUNT(*) AS cust_num FROM customers;

【15】查询customers表中c_email为空的记录的c_id、c_name和c_email字段值,SQL语句如下:

SELECT c_id, c_name,c_email FROM customers WHERE c_email IS NULL;

【16】查询customers表中c_email不为空的记录的c_id、c_name和c_email字段值,SQL语句如下:

SELECT c_id, c_name,c_email FROM customers WHERE c_email IS NOT NULL;

【17】在fruits表中查询s_id = 101,并且f_price大于等于5的水果价格和名称,SQL语句如下:

SELECT f_id, f_price, f_name FROM fruits WHERE s_id = '101' AND f_price >=5;

【18】在fruits表中查询s_id = 101或者102,且f_price大于5,并且f_name=‘apple’的水果价格和名称,SQL语句如下:

SELECT f_id, f_price, f_name FROM fruits

WHERE s_id IN('101', '102') AND f_price >= 5 AND f_name = 'apple';

【19】查询s_id=101或者s_id=102的水果供应商的f_price和f_name,SQL语句如下: SELECT s_id,f_name, f_price FROM fruits WHERE s_id = 101 OR s_id = 102;

【20】查询s_id=101或者s_id=102的水果供应商的f_price和f_name,SQL语句如下: SELECT s_id,f_name, f_price FROM fruits WHERE s_id IN(101,102);

【21】查询fruits表中s_id字段的值,返回s_id字段值且不得重复,SQL语句如下: SELECT DISTINCT s_id FROM fruits;

【22】查询fruits表的f_name字段值,并对其进行排序,SQL语句如下: SELECT f_name FROM fruits ORDER BY f_name;

【23】查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序,SQL语句如下:

SELECT f_name, f_price FROM fruits ORDER BY f_name, f_price;

【24】查询fruits表中的f_name和f_price字段,对结果按f_price降序方式排序,SQL语句如下:

SELECT f_name, f_price FROM fruits ORDER BY f_price DESC;

【25】查询fruits表,先按f_price降序排序,再按f_name字段升序排序,SQL语句如下: SELECT f_price, f_name FROM fruits ORDER BY f_price DESC, f_name; 【26】根据s_id对fruits表中的数据进行分组,并显示每个分组的总记录数,SQL语句如下: SELECT s_id, COUNT(*) AS Total FROM fruits GROUP BY s_id;

【27】根据s_id对fruits表中的数据进行分组,将每个供应商的水果名称显示出来,SQL语句如下:

SELECT s_id ,GROUP_CONCAT(f_name) AS NAMES FROM fruits GROUP BY s_id;

【28】根据s_id对fruits表中的数据进行分组,并显示水果种类大于1的分组信息,SQL语句如下:

SELECT s_id, GROUP_CONCAT(f_name) AS NAMES FROM fruits

GROUP BY s_id HAVING COUNT(f_name) > 1;

【29】根据s_id对fruits表中的数据进行分组,并显示记录数量,SQL语句如下: SELECT s_id, COUNT(*) AS Total FROM fruits

GROUP BY s_id WITH ROLLUP;

【30】根据s_id和f_name字段对fruits表中的数据进行分组, SQL语句如下, SELECT * FROM fruits GROUP BY s_id,f_name;

【31】查询总订单价格大于100的订单号和总订单价格,SQL语句如下: SELECT o_num, SUM(quantity * item_price) AS orderTotal FROM orderitems GROUP BY o_num

HAVING SUM(quantity*item_price) >= 100;

可以看到,返回的结果中orderTotal列的总订单价格并没有按照一定顺序显示,使用ORDER BY关键字按总订单价格排序显示结果,SQL语句如下: SELECT o_num, SUM(quantity * item_price) AS orderTotal FROM orderitems GROUP BY o_num

HAVING SUM(quantity*item_price) >= 100 ORDER BY orderTotal;

【32】显示fruits表查询结果的前4行,SQL语句如下: SELECT * FROM fruits LIMIT 4;

【33】在fruits表中,使用LIMIT子句,返回从第5个记录开始的,行数长度为3的记录,SQL语句如下:

SELECT * FROM fruits LIMIT 4, 3;

【34】查询customers表中总的行数,SQL语句如下: SELECT COUNT(*) AS cust_num FROM customers;

【35】查询customers表中有电子邮箱的顾客的总数,SQL语句如下: SELECT COUNT(c_email) AS email_num FROM customers;

【36】在orderitems表中,使用COUNT()函数统计不同订单号中订购的水果种类,SQL语句如下:

SELECT o_num, COUNT(f_id) FROM orderitems GROUP BY o_num;

【37】在orderitems表中查询30005号订单一共购买的水果总量,SQL语句如下: SELECT SUM(quantity) AS items_total FROM orderitems WHERE o_num = 30005;

【38】在orderitems表中,使用SUM()函数统计不同订单号中订购的水果总量,SQL语句如下:

SELECT o_num, SUM(quantity) AS items_total FROM orderitems GROUP BY o_num;

【39】在fruits表中,查询s_id=103的供应商的水果价格的平均值,SQL语句如下: SELECT AVG(f_price) AS avg_price FROM fruits WHERE s_id = 103;

【40】在fruits表中,查询每一个供应商的水果价格的平均值,SQL语句如下: SELECT s_id,AVG(f_price) AS avg_price FROM fruits GROUP BY s_id;

【41】在fruits表中查找市场上价格最高的水果,SQL语句如下: SELECT MAX(f_price) AS max_price FROM fruits;

【42】在fruits表中查找不同供应商提供的价格最高的水果,SQL语句如下: SELECT s_id, MAX(f_price) AS max_price FROM fruits GROUP BY s_id; 【43】在fruits表中查找f_name的最大值,SQL语句如下: SELECT MAX(f_name) FROM fruits;

【44】在fruits表中查找市场上价格最低的水果,SQL语句如下: SELECT MIN(f_price) AS min_price FROM fruits;

【45】在fruits表中查找不同供应商提供的价格最低的水果,SQL语句如下: SELECT s_id, MIN(f_price) AS min_price FROM fruits GROUP BY s_id;

【46】在fruits表和suppliers表之间使用内连接查询。

从fruits表中查询f_name、f_price字段,从suppliers表中查询s_id、s_name,SQL语句如下:

SELECT suppliers.s_id, s_name,f_name, f_price FROM fruits ,suppliers

WHERE fruits.s_id = suppliers.s_id;

【47】在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询,SQL语句如下: SELECT suppliers.s_id, s_name,f_name, f_price FROM fruits INNER JOIN suppliers ON fruits.s_id = suppliers.s_id;

【48】查询供应f_id= ‘a1’的水果供应商提供的其他水果种类,SQL语句如下: SELECT f1.f_id, f1.f_name

FROM fruits AS f1, fruits AS f2

WHERE f1.s_id = f2.s_id AND f2.f_id = 'a1';

【49】在customers表和orders表中,查询所有客户,包括没有订单的客户,SQL语句如下: SELECT customers.c_id, orders.o_num

FROM customers LEFT OUTER JOIN orders ON customers.c_id = orders.c_id; 【50】在customers表和orders表中,查询所有订单,包括没有客户的订单,SQL语句如下: SELECT customers.c_id, orders.o_num

FROM customers RIGHT OUTER JOIN orders ON customers.c_id = orders.c_id;

【51】在customers表和orders表中,使用INNER JOIN语法查询customers表中ID为10001的客户的订单信息,SQL语句如下: SELECT customers.c_id, orders.o_num FROM customers INNER JOIN orders

ON customers.c_id = orders.c_id AND customers.c_id = 10001;

【52】在fruits表和suppliers表之间,使用INNER JOIN语法进行内连接查询,并对查询结果排序,SQL语句如下:

SELECT suppliers.s_id, s_name,f_name, f_price FROM fruits INNER JOIN suppliers ON fruits.s_id = suppliers.s_id ORDER BY fruits.s_id;

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库数据库-查询练习1~52(含参考答案)(2)在线全文阅读。

数据库-查询练习1~52(含参考答案)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/977957.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219