创建S表的SQL语句。一小问10分。全回答正确的再加20分!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建S表的SQL语句。一小问10分。全回答正确的再加20分!相关的知识,希望对你有一定的参考价值。

设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:

S( SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。

问题1:写出创建S表的SQL语句。
问题2:写出创建J表的SQL语句。
问题3:由S5供给J4的零件P6改为由S3供应,请作必要的修改。
问题4:从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
问题5: 请将 (S2,J6,P4,200) 插入供应情况关系。

SQL for Oracle
1.
create table S ( SNO varchar2(5) primary key
,SNAME varchar2(100) no null
,STATUS char(2) not null ,
CITY varchar2(20) not null);
2.
create table P (PNO varchar2(5) primary key,PNAME varchar2(50) not null ,COLOR varchar2(10),WEIGHT number(8,2);
3.
update spj set sno=decode(sno,'S5','S3',sno) where pno='P6' and jno='J4';commit;
4.
delete spj where sno='S2';--spj的sno是外键,它参考了s表的sno,因此先删次表,再删主表
delete s where sno='S2';commit;
5.
insert into spj values ('S2','J6','P4',200);commit;追问

请继续关注,我马上又要提问关于mysql的问题。给我正确答案,再给你高分。

参考技术A --创建S表
create table S
(SNO [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
SNAME [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
STATUS [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
CITY [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL
)
go

--创建P表
create table P
(PNO [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
PNAME [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
COLOR [varchar] (15) COLLATE Chinese_PRC_CI_AS NOT NULL,
WEIGHT [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL
)
go

--创建J表
create table J
(JNO [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
JNAME [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
CITY [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL
)
go

--创建SPJ表
create table SPJ
(SNO [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
PNO [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
JNO [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL,
QTY [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL
)
go

--由S5供给J4的零件P6改为由S3供应,请作必要的修改
update SPJ set SNO='S3' where sno='S5' and jno='J4' and pno='P6'

--从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录
delete from S where sno='S2'
delete from SPJ where sno='S2'

--请将 (S2,J6,P4,200) 插入供应情况关系
insert into SPJ (sno,jno,pno,QTY) values ('S2','J6','P4','200')
参考技术B 故事: 很多年前, 一个爸爸和一个妈妈想休假,所以他们决定晚上去城镇。他们叫来最信任一个人来照看孩子。当保姆来的时候,他们的连个孩子已经在床上睡着了。所以保姆只是看了看孩子是否睡的好,就坐下了。
深夜,保姆觉得无聊就想去楼下看电视。但是她看不了,因为楼下没有电视(因为孩子的父母不希望他们的孩子看太多垃圾)。她就打电话给孩子的父母,问是否可以在他们的卧室看电视,当然孩子的父母同意了。
但保姆又想要最后一个请求。
她问是否可以用毯子或者衣服盖住那小丑雕像,因为那使她感到很害怕。
电话沉默了一会。
(此时爸爸在和保姆通话)
他说:带孩子离开房间……
我们将会叫警察……我们从来没有什么小丑雕像。
那小丑很可能是一个从监狱逃出来的杀人犯。

电话里沉默了一会儿。

(正在跟保姆通话的孩子的父亲)说:带上孩子们,离开房子……我们会通知警察……我们没有一个小丑雕像……

孩子们和保姆被小丑谋杀了。

结果是,小丑是一个从监狱里逃出来的杀人犯。

如果你不在5分钟内转发这个贴子,这个小丑在凌晨3点时将会拿着刀站在你的床前。

我在这里发了,这就是恶魔般的小丑没有杀我的原因
参考技术C fd追问

无聊的你

Sql中根据旧表创建新表的SQL语句

今天在网上查了下,根据旧表创建新表的SQL语句,网上给了两个答案

create table tab_new like tab_old (使用旧表创建新表)

create table tab_new as select col1,col2… from tab_old definition only

 

两个语句都试了一下,报错了。

正确的方法是 select * into newtable from oldtable; 如果不想导记录,只想生成表结构 :select * into newtable from oldtable where 1=2;

如果newtable已存在,想导入记录:insert into newtable select * from oldtable where ...

有些也是借鉴一些其他朋友的,我在这总结一下!!

 

以上是关于创建S表的SQL语句。一小问10分。全回答正确的再加20分!的主要内容,如果未能解决你的问题,请参考以下文章

正确格式化的 MySQL 日期插入语句返回全 0

sql几道题希望回答一下

ORACLE 创建表的SQL语句

如何使用FOR 和DO循环语句编写1*2*3*4....*10总和

mysql数据库创建表的时候,出现您的SQL语法有错误

sql语句怎么查询表的字段属性名