Saturday, March 16, 2024

8/1 SQL

※乘積運算
R1xR2 =R3
ex
select emp. 姓名 , supplier.供應商
from emp,supplier

※聯集運算子
將2個客戶名單合併,把相同的替除。
ex
select 姓名
from emp
union

select 供應商
from supplier

※交集運算子
R1R2=R3  (挑出重覆的值域)

ex

select emp.姓名
from emp,supplier
where emp.姓名 = supplier.供應商

※差集運算子
R1- R2 = R3
not exists (扣除)
ex
select 姓名
from emp
where not exists
(select 供應商 from supplier
where supplier.供應商 = emp.姓名)

※合併運算子
ex

select emp.姓名,supplier.供應商
from emp (left/right/inner) join supplier on  emp.姓名 = supplier.供應商

問1. 查詢所有起司類產品的供應商
解答1:
select p.產品 , s.供應商
from product p inner join supplier s
on p.供應商編號 = s.供應商編號
where p.產品 like '%起司%'

解答2:
select   p.產品 , s.供應商 , t.類別名稱
from  product p , supplier s , type t
where p.產品 like '%起司%'
and  p.供應商編號 = s.供應商編號
and  p.類別編號 = t.類別編號

※ 述詞all、distinct 、 limit

select all 連絡人
from supplier
select 連絡人
from supplier
limit 3,5


No comments:

Post a Comment