當前位置:首頁 » 編程語言 » 用sql定義商店關系
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

用sql定義商店關系

發布時間: 2022-07-03 17:10:33

⑴ 考慮下列關系模式,請用sql實現下列請求。

⑵ 求一道sql查詢題目解釋(找出至少供應了代號為‟256‟的商店所供應的全部... )

等價於 不存在這樣的商品,商店X「256」買了,而商店Y沒有買

⑶ 現有一個商店的資料庫,記錄顧客及其購物情況,由下列三個表組成:

解題思路分析:
第一步:創建表,確定數據類型,建立約束
--刪除數據表
drop table purcase;
drop table proct;
drop table customer;

---創建數據表
---解題思路分析:
---第一步:創建表,確定數據類型,建立約束
----創建商品表proct

create table proct (
proctid varchar2(10) ,
proctname varchar2(20) NOT NULL,
unitprice number,
category varchar2(20),
provider varchar2(20),
CONSTRAINT pk_proctid primary key (proctid),
CONSTRAINT CK_unitprice CHECK (unitprice>0)
);

--創建顧客表customer:
create table customer(
customerid varchar2(10),
name varchar2(20) NOT NULL,
location varchar2(20),
CONSTRAINT pk_customerid primary key(customerid)
);

--創建購買記錄表 purcase:
create table purcase(
customerid varchar2(10),
proctid varchar2(10),
quantity number,
CONSTRAINT FK_customerid FOREIGN KEY(customerid) REFERENCES customer(customerid) on delete cascade,
CONSTRAINT FK_proctid FOREIGN KEY(proctid) REFERENCES proct(proctid) on delete cascade,
CONSTRAINT CK_quantity CHECK(quantity BETWEEN 0 AND 20)
);

---測試數據的編寫:
insert into proct (proctid,proctname,unitprice,category,provider)
values('M01','佳潔士',8.00,'牙膏','寶潔');

insert into proct (proctid,proctname,unitprice,category,provider)
values('M02','高露潔',6.50,'牙膏','高露潔');

insert into proct (proctid,proctname,unitprice,category,provider)
values('M03','潔諾',5.00,'牙膏','聯合利華');

insert into proct (proctid,proctname,unitprice,category,provider)
values('M04','舒膚佳',3.00,'香皂','寶潔');

insert into proct (proctid,proctname,unitprice,category,provider)
values('M05','夏士蓮',5.00,'香皂','聯合利華');

insert into proct (proctid,proctname,unitprice,category,provider)
values('M06','雕牌',8.00,'洗衣粉','納愛斯');

insert into proct (proctid,proctname,unitprice,category,provider)
values('M07','中華',3.50,'牙膏','聯合利華');

insert into proct (proctid,proctname,unitprice,category,provider)
values('M08','汰漬',3.00,'洗衣粉','寶潔');

insert into proct (proctid,proctname,unitprice,category,provider)
values('M09','碧浪',4.00,'洗衣粉','寶潔');

insert into customer (customerid, name ,location)
values('C01','Dennis','海淀');

insert into customer (customerid, name ,location)
values('C02','John','朝陽');

insert into customer (customerid, name ,location)
values('C03','Tom','東城');

insert into customer (customerid, name ,location)
values('C04','Jenny','東城');

insert into customer (customerid, name ,location)
values('C05','Rick','西城');

insert into purcase(customerid,proctid,quantity)
values('C01','M01',3);

insert into purcase(customerid,proctid,quantity)
values('C01','M05',2);

insert into purcase(customerid,proctid,quantity)
values('C01','M08',2);

insert into purcase(customerid,proctid,quantity)
values('C02','M02',5);

insert into purcase(customerid,proctid,quantity)
values('C02','M06',4);

insert into purcase(customerid,proctid,quantity)
values('C03','M01',1);

insert into purcase(customerid,proctid,quantity)
values('C03','M05',1);

insert into purcase(customerid,proctid,quantity)
values('C03','M06',3);

insert into purcase(customerid,proctid,quantity)
values('C03','M08',1);

insert into purcase(customerid,proctid,quantity)
values('C04','M03',7);

insert into purcase(customerid,proctid,quantity)
values('C04','M04',3);

insert into purcase(customerid,proctid,quantity)
values('C05','M06',2);

insert into purcase(customerid,proctid,quantity)
values('C05','M07',8);

---提交事務
commit;

---問題分析
--(1)求購買了供應商"寶潔"產品的所有顧客;

1、確定要使用的表
proct 表:供應商信息
customer表:顧客信息
purcase表:顧客的購買記錄
2、確定關聯關系
purcase.customerid=customer.customerid;
purcase.proctid=customer.proctid;

⑷ SQL資料庫中什麼是關系其主要特點是什麼

SQL語言集數據查詢(data query)、數據操縱(data manipulation)、數據定義(data definition)和數據控制(data control)功能於一體,充分體現了關系數據語言的特點和優點。其主要特點包括:

1.綜合統一

SQL語言集數據定義語言DDL、數據操縱語言DML、數據控制語言DCL的功能於一體,語言風格統一,可以獨立完成資料庫生命周期中的全部活動,包括定義關系模式、錄入數據以建立資料庫、查詢、更新、維護、資料庫重構、資料庫安全性控制等一系列操作要求,這就為資料庫應用系統開發提供了良好的環境,例如用戶在資料庫投入運行後,還可根據需要隨時地逐步地修改模式,並不影響資料庫的運行,從而使系統具有良好的可擴充性。

2.高度非過程化

非關系數據模型的數據操縱語言是面向過程的語言,用其完成某項請求,必須指定存取路徑。而用SQL語言進行數據操作,用戶只需提出「做什麼」,而不必指明「怎麼做」,因此用戶無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統自動完成。這不但大大減輕了用戶負擔,而且有利於提高數據獨立性。

3.面向集合的操作方式
SQL語言採用集合操作方式,不僅查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。
非關系數據模型採用的是面向記錄的操作方式,任何一個操作其對象都是一條記錄。例如查詢所有平均成績在80分以上的學生姓名,用戶必須說明完成該請求的具體處理過程,即如何用循環結構按照某條路徑一條一條地把滿足條件的學生記錄讀出來。

4.以同一種語法結構提供兩種使用方式
SQL語言既是自含式語言,又是嵌入式語言。
作為自含式語言,它能夠獨立地用於聯機交互的使用方式,用戶可以在終端鍵盤上直接鍵入SQL命令對資料庫進行操作。作為嵌入式語言,SQL語句能夠嵌入到高級語言(例如C、PB)程序中,供程序員設計程序時使用。而在兩種不同的使用方式下,SQL語言的語法結構基本上是一致的。這種以統一的語法結構提供兩種不同的使用方式的作法,為用戶提供了極大的靈活性與方便性。

⑸ sql表結構里 有店鋪(shop) 商品(proct) 關系表(shopProct)3 個表

select*fromshops,proctp,shopproctsp
wheres.店鋪名稱='淘寶'
ands.店鋪編號=sp.店鋪編號
andp.商品編號=sp.商品編號

⑹ 用SQL語句編網上商店購物系統

這個是需要你做出網站資料庫的構思 E-R圖 邏輯設計,物理設計等等 還要結合其他編程語言做網站界面比如在 sql server 方面 你需要新建一個網上購物資料庫,資料庫按要求(簡單構思)包含有 會員信息表, 商品信息表,訂單表,在會員表與商品信息表上建立會員id 商品id索引,建立 訂單表與會員信息表,商品信息表的外鍵約束,再細按要求建立觸發器,存儲過程等等,呵呵兄弟這一整套就相當於一個項目 一個人做事很辛苦的啦,找幾個同學一起徹夜奮斗吧!

⑺ SQL Sever 2005資料庫應用實例(如商店管理,公司管理)

線,為讀者導航SQL Server 2005從零起步到資料庫管理高手的整個路徑。全書圖文並茂,循序漸進地介紹SQL Server 2005的基本理論、技術體系,同時對於幾乎每一個知識點都結合實際例子從應用的角度進行詳細講解。
全書分為基礎篇、高級篇和應用篇3個部分,共18章,有重點、分層次地講解SQL Server 2005的基礎知識、高級使用技巧和項目應用方法。第1~10章從系統部署技術、基本操作方法、資料庫理論基礎及其在SQL Server 2005中的實現、T-SQL使用技巧、SQL Server 2005資料庫管理的深入、命令提示工具的妙用、打造安全的資料庫系統的技巧、資料庫的備份和恢復、SQL Server Profiler對資料庫的跟蹤、資料庫引擎優化顧問的使用等方面為讀者打造一個學習SQL Server 2005的堅實基礎平台。第11~16章講述XML與SQL Server 2005的配合使用、全文搜索的使用、SQL Server復制的運用、Service Broker處理非同步消息的方法、通知服務的使用、基於VS 2005的CLR使用技巧等高級技術的使用細節。第17、18章則從資料庫應用的角度講解基於SQL Server 2005的小型HR開發過程和SSIS、SSAS、SSRS協同實現商務智能的方法。

本書配套源文件請到的「下載專區」下載。

本書良好的結構設計保證了它既可以作為各種資料庫培訓班和大專院校的資料庫教材,又可供各類資料庫開發人員參考。
另外,站長團上有產品團購,便宜有保證

⑻ 用SQL語句定義一些關系模式組成的資料庫

create database SPJ
go
use SPJ
create table s
(
sno int not null primary key,
sname varchar(10) not null,
city varchar(10) not null
)
go

create table p
(
pno int not null primary key,
pname varchar(10) not null,
weight varchar(10) not null,
color varchar(10) not null
)
go

create table j
(
jno int not null primary key,
jname varchar(10) not null,
city varchar(10) not null
)
go

create table spj
(
sno int not null constraint s_fk foreign key references s(sno),
pno int not null constraint p_fk foreign key references p(pno),
jno int not null constraint j_fk foreign key references j(jno)
)

⑼ 提問一道題 SQL SERVER

E-R自己將圖畫出來吧,其中兩關系為m:n也就是多對多的關系,中間打一個棱形,表示關系,名稱即為商店顧客聯系。

Shop(shopid,shopname,address,tel)主鍵為商店編號,即shopid
customer(custid,name,sex,birthday,address)主鍵為custid,即顧客編號
shop_customter(shopid,custid,datetime,paymoney)
這個就是聯系,具體要看業務流程,如果一個商店只允許一個顧客買一次東西時,主鍵就是(shopid,custid),這種情況下顯然無法區分具體的每一次,同一顧客進同一家店兩次時就無法決定了!所以增加一個時間值,同一時間內一個顧客只到一個商店一次(除非顧客會分身術)所以這種情況下可以使用主鍵(shopid,custid,datetime)為主鍵。為了設計方式的問題,盡量不要用id,沒事亂用id是很危險的!會出現傳遞依賴,使整個關系不符合第三範式。

其實第三題的說法是錯誤的,什麼叫一對多的聯系?屬性值之間一對多是怎麼樣的一個概念?應該是函數依賴。
F的中閉合是:
B->D,A->C,
由 B->D,可知(A,B)->(A,D),(A,B)->D
由A-C,可知(A,B)->(B,C),(A,B)->C
所以(A,B)->C,(A,B)->D
所以(A,B)為候選主鍵.
但由於B->D,A->C存在碼對主屬於的傳遞依賴,不符合第三範式!應該進行分解.
R1(A,B,D)
R2(A,B,C)
這種分解雖能保持函數依賴性,但還是傳統引起對主屬性的傳遞賴。
R1(A,C)
R2(B,D)
R12(A,B)
這種屬性會丟失(A,B)->C的關系,但其實有A->C,可失知(A,B)->C的關系的。所以是一種較為完美的分解。