当前位置:首页 » 编程语言 » 用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的关系的。所以是一种较为完美的分解。