【SQL实验】更新操作

完整代码在文章末尾【代码是自己的解答,并非标准答案,也有可能写错, 文中可能会有不准确或待完善之处,恳请各位读者不吝批评指正,共同促进学习交流**】**


将素材"图书管理"文件下载到本地,并将其还原到SQL SERVER库中,完成以下操作。

个人因为版本问题还原不了,所以导入.xls文件

导入操作和之前一样

如果不太会,可以去重新看一下

【SQL实验】高级查询(三)含附加数据库操作-CSDN博客

  1. 将财会系读者借书记录存入一个新表ckjy中,保存字段为借书证号、姓名、书名、借书日期。

查询会创建新表 ckjy

复制代码
SELECT dz.借书证号,dz.姓名,ts.书名,jy.借书日期
INTO ckjy
FROM dz
JOIN jy ON dz.借书证号 = jy.借书证号
JOIN ts ON jy.总编号 = ts.总编号
WHERE dz.单位 = '财会系';

或者

复制代码
SELECT dzjy.借书证号,姓名,书名,借书日期
INTO ckjy
from dz,jy,ts
where dz.借书证号= jy.借书证号
and jy.总编号= ts.总编号
and 单位= '财会系'

使用 CREATE TABLE 创建了一个名为 ckjy 的新表,包含字段 借书证号, 姓名, 书名, 借书日期

通过 INSERT INTO 从三个表(dz, jy, ts)中选择符合条件的数据,并插入到 ckjy 表中

复制代码
CREATE TABLE ckjy (
    借书证号 CHAR(8),
    姓名 CHAR(8),
    书名 CHAR(8),
    借书日期 CHAR(8)  
);

INSERT INTO ckjy (借书证号, 姓名, 书名, 借书日期)
SELECT dz.借书证号, dz.姓名, ts.书名, jy.借书日期
FROM dz
JOIN jy ON dz.借书证号 = jy.借书证号
JOIN ts ON jy.总编号 = ts.总编号
WHERE dz.单位 = '财会系';
  1. 将记录('123','沈小霞','大学英语','2009-10-15'),('125','张自强','线性代数','2011-4-15')插入到ckjy表中。

    INSERT INTO ckjy (借书证号, 姓名, 书名, 借书日期)
    VALUES ('123', '沈小霞', '大学英语', '2009-10-15'),
    ('125', '张自强', '线性代数', '2011-4-15');

3. 根据ts表的结构用命令建立一个新表ts1。

直接建

只要空表的话

复制代码
-- 1. 将 ts 表的数据插入到 ts1 表中
SELECT *
INTO ts1
FROM ts;

-- 2. 删除 ts 表中的所有数据
DELETE FROM ts;

创建一个空的新表 ts1,你可以使用 CREATE TABLE 语句,并从 ts 表中选择表结构,而不复制数据

复制代码
SELECT *
INTO ts1
FROM ts
WHERE 1 = 0;
  1. 将数据库类的图书插入到表ts1中,数据库类图书包含书"数据库"和"Fox"两个关键字。

    --4、
    INSERT INTO ts1 (总编号, 书名, 作者, 出版单位, 分类号, 单价)
    SELECT 总编号, 书名, 作者, 出版单位, 分类号, 单价
    FROM ts
    WHERE 书名 LIKE '%数据库%' AND 书名 LIKE '%Fox%';

% 是通配符,表示匹配任意字符。

  1. 将dz表中的年龄字段利用出生日期字段计算出并填充到各个记录中。

    --5
    UPDATE dz
    SET 年龄 = DATEDIFF(YEAR, 出生日期, GETDATE()) -
    CASE WHEN MONTH(出生日期) > MONTH(GETDATE()) OR (MONTH(出生日期) = MONTH(GETDATE()) AND DAY(出生日期) > DAY(GETDATE())) THEN 1 ELSE 0 END;

  2. 将ts表中所有科学出版社的图书的价格设置成原来价格的八折。

    --6
    UPDATE ts
    SET 单价 = 单价 * 0.8
    WHERE 出版单位 = '科学出版社';

  3. 将所有的高级职称(包含"教授"两个字)、姓名为2个字的读者 插入到新表gjdz表中。

    --7
    CREATE TABLE gjdz (
    借书证号 VARCHAR(20),
    单位 VARCHAR(50),
    姓名 VARCHAR(50),
    性别 VARCHAR(10),
    年龄 INT,
    出生日期 DATE,
    职称 VARCHAR(50),
    地址 VARCHAR(100)
    );

    INSERT INTO gjdz (借书证号, 单位, 姓名, 性别, 年龄, 出生日期, 职称, 地址)
    SELECT 借书证号, 单位, 姓名, 性别, 年龄, 出生日期, 职称, 地址
    FROM dz
    WHERE 职称 LIKE '%教授%' AND LEN(姓名) = 2;

  4. 删除dz表中家住3楼或3楼以下的读者。

    --8
    DELETE FROM dz
    WHERE 地址 LIKE '%3楼%' OR 地址 LIKE '%2层%'OR 地址 LIKE '%1层%';

  1. 删除借阅表中关于计算机基础的借阅信息。

    --9
    DELETE FROM jy
    WHERE 总编号 IN (
    SELECT 总编号
    FROM ts
    WHERE 书名 LIKE '%计算机基础%'
    );

  2. 删除gjdz表。

    --10
    DROP TABLE gjdz;


完整代码:

复制代码
SELECT dz.借书证号,dz.姓名,ts.书名,jy.借书日期
INTO ckjy
FROM dz
JOIN jy ON dz.借书证号 = jy.借书证号
JOIN ts ON jy.总编号 = ts.总编号
WHERE dz.单位 = '财会系';

--2
INSERT INTO ckjy (借书证号, 姓名, 书名, 借书日期)
VALUES ('123', '沈小霞', '大学英语', '2009-10-15'),
       ('125', '张自强', '线性代数', '2011-4-15');
--3
SELECT *
INTO ts1
FROM ts
WHERE 1 = 0;


--4、
INSERT INTO ts1 (总编号, 书名, 作者, 出版单位, 分类号, 单价)
SELECT 总编号, 书名, 作者, 出版单位, 分类号, 单价
FROM ts
WHERE 书名 LIKE '%数据库%' AND 书名 LIKE '%Fox%';
--5
UPDATE dz
SET 年龄 = DATEDIFF(YEAR, 出生日期, GETDATE()) - 
           CASE WHEN MONTH(出生日期) > MONTH(GETDATE()) OR (MONTH(出生日期) = MONTH(GETDATE()) AND DAY(出生日期) > DAY(GETDATE())) THEN 1 ELSE 0 END;
--6
UPDATE ts
SET 单价 = 单价 * 0.8
WHERE 出版单位 = '科学出版社';
--7
CREATE TABLE gjdz (
    借书证号 VARCHAR(20),
    单位 VARCHAR(50),
    姓名 VARCHAR(50),
    性别 VARCHAR(10),
    年龄 INT,
    出生日期 DATE,
    职称 VARCHAR(50),
    地址 VARCHAR(100)
);

INSERT INTO gjdz (借书证号, 单位, 姓名, 性别, 年龄, 出生日期, 职称, 地址)
SELECT 借书证号, 单位, 姓名, 性别, 年龄, 出生日期, 职称, 地址
FROM dz
WHERE 职称 LIKE '%教授%' AND LEN(姓名) = 2;
--8
--8
DELETE FROM dz
WHERE 地址 LIKE '%3楼%' OR 地址 LIKE '%2层%'OR 地址 LIKE '%1层%';

--9
DELETE FROM jy
WHERE 总编号 IN (
    SELECT 总编号
    FROM ts
    WHERE 书名 LIKE '%计算机基础%'
);
--10
DROP TABLE gjdz;
相关推荐
2501_9269783317 分钟前
以说明书 DNA 为模板——完整 AGI 的结构图景
前端·人工智能·经验分享·笔记·ai写作
天天爱吃肉821828 分钟前
商用车多体动力学实战笔记|第6篇:动力传动系统(发动机、变速箱、分动器、TCS、LSD限滑差速)
大数据·人工智能·笔记·python·嵌入式硬件·汽车
IT19951 小时前
Dify 实战笔记:工作流核心玩法 + 开源 AI 应用全解析
笔记
MartinYeung52 小时前
[论文学习]OSReward:为跨平台计算机使用奖励模型建立标准化评估
人工智能·学习
dong1326972 小时前
Agent Skills学习笔记
笔记·学习
赤壁小虾2 小时前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库
MC皮蛋侠客2 小时前
SQLAlchemy 系列(七):高级建模与高效写入——批量 DML、方言与扩展
数据库·python
for_ever_love__2 小时前
iOS:网络请求再学习
网络·学习·ios·objective-c
世人万千丶3 小时前
鸿蒙Crash高级捕获与异常监控:全局异常兜底/崩溃栈解析/符号表还原/智能聚类/闭环修复
学习·机器学习·华为·数据挖掘·harmonyos·鸿蒙·聚类
奈斯先生Vector3 小时前
把 Midjourney 二次编辑做成生产系统:customId 能力令牌、Action Graph 与 WebUI 精修工作台
数据库·人工智能·架构·aigc·音视频·midjourney