求助。数据库这道题怎么做呀?用sql
发布网友
发布时间:2023-07-14 02:54
我来回答
共5个回答
热心网友
时间:2023-10-08 06:17
-- 创建期刊数据表(qk)
CREATE TABLE qk (
aktxm VARCHAR(10),
ckmc VARCHAR(20),
kh VARCHAR(10),
it VARCHAR(10),
cbdw VARCHAR(20),
jg DECIMAL(4, 1),
PRIMARY KEY (kh)
);
-- 创建期刊借阅数据表(qkjy)
CREATE TABLE qkjy (
dzzh TINYINT(3) UNSIGNED ZEROFILL,
qktm VARCHAR(10),
jyrq DATE,
hsrg DATE,
FOREIGN KEY (dzzh) REFERENCES 读者表 (读者证号) ON DELETE CASCADE,
FOREIGN KEY (qktm) REFERENCES qk (aktxm),
PRIMARY KEY (dzzh, qktm)
);
热心网友
时间:2023-10-08 06:18
您好,根据题目要求,建立期刊qk数据表和期刊借阅qkjy数据表的SQL语句如下:
-- 建立期刊qk数据表
CREATE TABLE qk (
qktxm VARCHAR(10) PRIMARY KEY, -- 期刊条码
qkmc VARCHAR(20), -- 期刊名称
kh VARCHAR(10), -- 刊号
jh VARCHAR10), -- 卷号
cbdw VARCHAR(20), -- 出版单位
jg DECIMAL(4,1) -- 价格
);
-- 建立期刊借阅qkjy数据表
CREATE TABLE qkjy (
dzzh TINYINT(3) UNSIGNED ZEROFILL, -- 读者证号
qktxm VARCHAR(10), -- 期刊条码
jyrq DATE, -- 借阅日期
hsrq DATE, -- 还书日期
PRIMARY KEY (dzzh, qktxm), -- 主键为读者证号和期刊条码
FOREIGN KEY (dzzh) REFERENCES reader(dzzh) ON CASCADE ON DELETE CASCADE, -- 与读者表建立关联,当修改或删除读者表的读者证号时,借阅期刊表的相关记录会自动更新或删除
FOREIGN KEY (qktxm) REFERENCES qk(qktxm) -- 与期刊表建立关联,不允许修改和删除期刊数据表的相关数据
);
注意:在建立期刊数据表时,需要根据期刊条码qktxm建立主索引,这样可以快速地查找和修改期刊数据。
热心网友
时间:2023-10-08 06:18
很抱歉,您的问题不太清楚,请提供具体的题目内容和要求,我才能更好地为您解答。如果您是在问如何使用SQL语言来解决数据库问题,可以提供具体的问题和数据表结构,我可以为您提供相应的SQL语句。追问就是用sql语句编写。给表建立参照完整性
热心网友
时间:2023-10-08 06:19
创建期刊qk数据表:
CREATE TABLE qk (
qktxm varchar(10) PRIMARY KEY,
qkmc varchar(20),
kh varchar(10),
jh varchar(10),
cbdw varchar(20),
jg decimal(4,1)
);
创建期刊借阅qkjy数据表:
CREATE TABLE qkjy (
dzzh tinyint(3) UNSIGNED ZEROFILL,
qktxm varchar(10),
jyrq date,
hsrq date,
PRIMARY KEY (dzzh, qktxm),
FOREIGN KEY (dzzh) REFERENCES reader(dzzh)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (qktxm) REFERENCES qk(qktxm)
ON DELETE RESTRICT
ON UPDATE RESTRICT
);
注意:在创建Periodical借阅表时,需要与读者表和期刊表分别建立关联,读者表的dzzh字段作为主键,并且当删除读者表的dzzh记录时,被引用的Periodical借阅表记录需要删除(ON DELETE CASCADE)。而期刊表的qktxm字段也作为主键,并且不允许删除或修改(ON DELETE/UPDATE RESTRICT)。
热心网友
时间:2023-10-08 06:19
根据题目描述,可以使用以下的SQL语句创建两张表:
```
-- 创建期刊qk数据表
CREATE TABLE qk (
qktxm varchar(10) NOT NULL, -- 期刊条码
qkmc varchar(20) NOT NULL, -- 期刊名称
kh varchar(10) NOT NULL, -- 刊号
jh varchar(10) NOT NULL, -- 卷号
cbdw varchar(20) NOT NULL, -- 出版单位
jg decimal(4,1) NOT NULL, -- 价格
PRIMARY KEY (kh) -- 根据期刊号建立主键
);
-- 创建期刊借阅qkjy数据表
CREATE TABLE qkjy (
dzzh tinyint unsigned zerofill NOT NULL, -- 读者证号
qktxm varchar(10) NOT NULL, -- 期刊条码
jyrq date NOT NULL, -- 借阅日期
hsrq date NOT NULL, -- 还书日期
PRIMARY KEY (dzzh, qktxm), -- 根据读者证号和期刊条码建立联合主键
FOREIGN KEY (dzzh)
REFERENCES reader(dzzh) -- 与读者表关联
ON UPDATE CASCADE
ON DELETE CASCADE, -- 当修改或删除读者表的数据时,级联更新或删除相关数据
FOREIGN KEY (qktxm)
REFERENCES qk(qktxm) -- 与期刊表关联
ON UPDATE NO ACTION
ON DELETE NO ACTION -- 不允许修改或删除期刊表的相关数据
);
```
其中,读者表并没有在题目中给出,你需要根据实际情况进行设计。另外,具体的数据类型、主键和外键约束以及字段数量等都需要根据实际需求进行调整。