基础SQL34题

基础SQL34题
摘要由CSDN通过智能技术生成
基础SQL练习题 适合刚学完SQL语法的小白练习

-- 需求1: 选中employees 表的所有数据

select *
from employees;

-- 需求2: 查询每个客户的 ID, company name, contact name, contact title, city, 和 country.并按照国家名字排序

select customer_id, company_name, contact_name, contact_title, city, country
from customers
order by country;

-- 替换快捷键: ctrl + 字母R

-- 需求3: 查询每一个商品的product_name, category_name, quantity_per_unit, unit_price, units_in_stock 并且通过 unit_price 字段排序

-- 方式1: 显示内连接

select product_name,
       category_name,
       quantity_per_unit,
       unit_price,
       units_in_stock
from categories c
         join products p
              on c.category_id = p.category_id
order by unit_price desc;

-- 方式2: 隐式内连接.

select product_name,
       category_name,
       quantity_per_unit,
       unit_price,
       units_in_stock
from categories c,
     products p
where c.category_id = p.category_id
order by unit_price desc;

-- 需求4: 列出所有提供了4种以上不同商品的供应商列表所需字段:supplier_id, company_name, and products_count (提供的商品种类数量).

# 步骤1: 计算每个供应商, 供应的商品的总数.
select s.supplier_id,
       s.company_name,
       count(product_id) products_count
from products p,
     suppliers s
where p.supplier_id = s.supplier_id
group by s.supplier_id, s.company_name;

# 步骤2: 基于上述的步骤, 筛选出 供应了4种以上不同商品的供应商信息.
select s.supplier_id,
       s.company_name,
       count(product_id) products_count
from products p,
     suppliers s
where p.supplier_id = s.supplier_id
group by s.supplier_id, s.company_name
having products_count > 4;

# step3: 验证数据.  例如: 供应商id 12, 公司名  Plutzer Lebensmittelgroßmärkte AG,  5类商品.
select *
from products
where supplier_id = 12;

-- 需求5: 提取订单编号为10250的订单详情, 显示如下信息:

-- product_name, quantity, unit_price ( order_items 表), discount , order_date 按商品名字排序

select o.order_id,
       product_name,
       quantity,
       oi.unit_price,
       discount,
       order_date
from products p,
     order_items oi,
     orders o
where p.product_id = oi.product_id
  and oi.order_id = o.order_id
  and o.order_id = 10250
order by product_name;

-- 需求6: 收集运输到法国的订单的相关信息,包括订单涉及的顾客和员工信息,下单和发货日期等.

select e.employee_id,
       e.last_name,
       e.first_name,   # 员工信息.
       c.customer_id,
       c.company_name, # 客户信息
       o.order_date,
       o.shipped_date  # 下单和发货日期
from employees e
         join orders o on e.employee_id = o.employee_id
         join customers c on o.customer_id = c.customer_id
where ship_country = 'France';

-- 需求7: 提供订单编号为10248的相关信息,包括product name, unit price (在 order_items 表中), quantity(数量),company_name(供应商公司名字 ,起别名 supplier_name).

select product_name,
       oi.unit_price,
       quantity,
       company_name as supplier_name
from products p,
     order_items oi,
     suppliers s
where p.product_id = oi.product_id
  and p.supplier_id = s.supplier_id
  and order_id = 10248;

-- 需求8:  提取每件商品的详细信息,包括 商品名称(product_name), 供应商的公司名称 (company_name,在 suppliers 表中),

-- 类别名称 category_name, 商品单价unit_price, 和每单位商品数量quantity per unit

select product_name,
       company_name,
       category_name,
       unit_price,
       quantity_per_unit
from products p,
     categories c,
     suppliers s
where c.category_id = p.category_id
  and p.supplier_id = s.supplier_id;

-- 需求9: 另一种常见的报表需求是查询某段时间内的业务指标, 我们统计2016年7月的订单数量,

# 方式1: between..and..
select count(1) order_cnt
from orders
where order_date between '20
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值