你还在手撸SQL?ChatGPT笑晕在厕所

文章目录

  • 你还在手撸SQL?ChatGPT笑晕在厕所
    • 一、背景
    • 二、面向Chat编程
      • 1. 数据库设计
      • 2. 建表语句
      • 3. 加中文注释
      • 4. 数据模拟
      • 5. 查询成绩
      • 6. 修改课程任课老师
      • 7. 删除课程
      • 8. 删除一个有关联数据的课程
    • 总结

你还在手撸SQL?ChatGPT笑晕在厕所

一、背景

经典3表设计:
学生表 S(SNO,SNAME,AGE,SEX),其属性表示学生的学号、姓名、年龄和性别;
选课表 SC(SNO,CNO,GRADE),其属性表示学生的学号、所学课程的课程号和成绩;
课程表 C(CNO,CNAME,TEACHER),其属性表示课程号、课程名称和任课教师姓名。
目标:
写一套增删查改证明ChatGPT绝非浪得虚名。

二、面向Chat编程

1. 数据库设计

在这里插入图片描述

提问:
现在你是一名资深数据库工程师,请根据以下描述设计数据库表,使用中文注释:
学生表 S(SNO,SNAME,AGE,SEX),其属性表示学生的学号、姓名、年龄和性别;选课表 SC(SNO,CNO,GRADE),其属性表示学生的学号、所学课程的课程号和成绩;课程表 C(CNO,CNAME,TEACHER),其属性表示课程号、课程名称和任课教师姓名。

回答:
根据描述,可以设计三个表:学生表 S、选课表 SC 和课程表 C。

学生表 S:

字段名数据类型描述
SNO字符串学生的学号
SNAME字符串学生的姓名
AGE整数学生的年龄
SEX字符串学生的性别

选课表 SC:

字段名数据类型描述
SNO字符串学生的学号,外键
CNO字符串所学课程的课程号,外键
GRADE浮点数学生的成绩

课程表 C:

字段名数据类型描述
CNO字符串课程的课程号
CNAME字符串课程的名称
TEACHER字符串任课教师的姓名

![请添加图片描述](https://img-blog.csdnimg.cn/f2b07cf07a0f47b2b15aa86afb8186a5.jpeg

注释中的外键意味着该字段参照另一个表中的主键。
在选课表 SC 中,SNO 和 CNO 分别参照学生表 S 和课程表 C 的主键 SNO 和 CNO。
这个设计可以满足学生、课程和选课的基本信息需要,并允许进行查询和关联操作。

思考:

大叔有点懒,给我个表算什么,我要建表语句

2. 建表语句

在这里插入图片描述

提问:
对这个设计,输出mysql数据库的建表语句

回答:
以下是基于描述的MySQL数据库建表语句:


-- 创建学生表 S
CREATE TABLE S (SNO CHAR(10) PRIMARY KEY, SNAME VARCHAR(20) NOT NULL, AGE INT NOT NULL, SEX CHAR(2) NOT NULL
);-- 创建课程表 C
CREATE TABLE C (CNO CHAR(10) PRIMARY KEY, CNAME VARCHAR(20) NOT NULL, TEACHER VARCHAR(20) NOT NULL
);-- 创建选课表 SC
CREATE TABLE SC (SNO CHAR(10), CNO CHAR(10), GRADE FLOAT(3, 1), PRIMARY KEY (SNO, CNO), FOREIGN KEY (SNO) REFERENCES S(SNO) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (CNO) REFERENCES C(CNO) ON DELETE CASCADE ON UPDATE CASCADE
);

这些语句使用了 CHAR 和 VARCHAR 数据类型来存储字符串,使用 INT 和 FLOAT 数据类型来存储数字。在 SC 表中,PRIMARY KEY 用来定义联合主键,FOREIGN KEY 用来定义外键,并且使用了 ON DELETE CASCADE 和 ON UPDATE CASCADE 规则来实现级联删除和更新。

思考:

建表语句还像那么回事,就是没注释啊,差评

3. 加中文注释

在这里插入图片描述

提问:
针对刚才的数据库设计,在建表语句中加上中文注释
回答:
以下是基于描述的MySQL数据库建表语句,同时增加了中文注释:

-- 创建学生表 S
CREATE TABLE S (SNO CHAR(10) PRIMARY KEY COMMENT '学生的学号', SNAME VARCHAR(20) NOT NULL COMMENT '学生的姓名', AGE INT NOT NULL COMMENT '学生的年龄', SEX CHAR(2) NOT NULL COMMENT '学生的性别'
) COMMENT='学生表';-- 创建课程表 C
CREATE TABLE C (CNO CHAR(10) PRIMARY KEY COMMENT '课程的课程号', CNAME VARCHAR(20) NOT NULL COMMENT '课程的名称', TEACHER VARCHAR(20) NOT NULL COMMENT '任课教师的姓名'
) COMMENT='课程表';-- 创建选课表 SC
CREATE TABLE SC (SNO CHAR(10) COMMENT '学生的学号,外键', CNO CHAR(10) COMMENT '所学课程的课程号,外键', GRADE FLOAT(3, 1) COMMENT '学生的成绩', PRIMARY KEY (SNO, CNO), FOREIGN KEY (SNO) REFERENCES S(SNO) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (CNO) REFERENCES C(CNO) ON DELETE CASCADE ON UPDATE CASCADE
) COMMENT='选课表';

这些语句在每个表的注释中描述了该表的用途,同时也在每个字段的注释中说明了字段的含义。在 SC 表中,注释也说明了 SNO 和 CNO 字段是外键,并指定了参考的主键。注释可以提高代码的可读性和可维护性,让开发者更容易理解表的设计和用途。
在这里插入图片描述

思考:

perfect!
然而没数据~,神啊,来点数据吧!

4. 数据模拟

在这里插入图片描述

提问:
根据刚才设计的表结构,写出insert脚本生成测试数据
回答:
以下是插入脚本,可以用来生成测试数据:

-- 插入学生数据
INSERT INTO S (SNO, SNAME, AGE, SEX) VALUES 
('S001', '张三', 20, '男'),
('S002', '李四', 21, '男'),
('S003', '王五', 19, '女'),
('S004', '赵六', 20, '女'),
('S005', '钱七', 22, '男'),
('S006', '孙八', 20, '女'),
('S007', '周九', 19, '男'),
('S008', '吴十', 21, '男');-- 插入课程数据
INSERT INTO C (CNO, CNAME, TEACHER) VALUES 
('C001', '数据库系统', '张老师'),
('C002', '计算机网络', '李老师'),
('C003', '算法设计', '王老师'),
('C004', '操作系统', '赵老师'),
('C005', '编译原理', '钱老师');-- 插入选课数据
INSERT INTO SC (SNO, CNO, GRADE) VALUES
('S001', 'C001', 80),
('S001', 'C002', 85),
('S001', 'C003', 90),
('S002', 'C001', 75),
('S002', 'C002', 85),
('S002', 'C003', 80),
('S003', 'C002', 90),
('S003', 'C003', 95),
('S004', 'C002', 80),
('S004', 'C003', 85),
('S005', 'C001', 90),
('S005', 'C002', 80),
('S005', 'C003', 85),
('S006', 'C001', 85),
('S006', 'C003', 90),
('S007', 'C003', 75),
('S008', 'C001', 80),
('S008', 'C002', 75),
('S008', 'C003', 85);

这个脚本向学生表 S,课程表 C 和选课表 SC 中分别插入了 8,5 和 18 条记录,用于模拟测试数据。这些数据包括学生的学号、姓名、年龄和性别,课程的课程号、课程名称和任课教师,以及学生选修的课程号和成绩。可以根据需要进行修改。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思考:

太强了~
现在真正的考验来了,增删查改会不会?

5. 查询成绩

在这里插入图片描述

提问:
查询课程 算法设计 成绩在60分以上的学生姓名、性别、年龄
回答:
以下是查询课程 “算法设计” 成绩在60分以上的学生姓名、性别、年龄的SQL语句:

SELECT S.SNAME, S.SEX, S.AGE
FROM S
INNER JOIN SC ON S.SNO = SC.SNO
INNER JOIN C ON SC.CNO = C.CNO
WHERE C.CNAME = '算法设计' AND SC.GRADE >= 60;

这个查询使用了内连接,将学生表 S,选课表 SC 和课程表 C 进行联结。通过在 WHERE 子句中设置限制条件,我们只保留选修 “算法设计” 并且成绩 >= 60 分的学生。最后,我们从结果中选择所需的学生信息,包括姓名、性别和年龄,并返回这些信息。
在这里插入图片描述

思考:

太强了~

提问:
写个SQL语句,查询每门课程前五名的学生
回答:
以下是查询每门课程前五名的学生的SQL语句:

SELECT C.CNO, C.CNAME, SC.SNO, S.SNAME, SC.GRADE
FROM C
INNER JOIN SC ON C.CNO = SC.CNO
INNER JOIN S ON SC.SNO = S.SNO
WHERE (SELECT COUNT(*) FROM SC AS SC2 WHERE SC2.CNO = SC.CNO AND SC2.GRADE > SC.GRADE
) < 5 
ORDER BY C.CNO, SC.GRADE DESC;

该查询使用了一个子查询来计算每个学生在每门课程中的排名。子查询检查每个学生的成绩是否比其他学生高,并计算出他们的排名。在外层的查询中,我们可以使用子查询计算每门课程前五名的学生,并返回这些学生的成绩和其他信息。最后,使用 ORDER BY 子句按照课程号和成绩降序排序。

6. 修改课程任课老师

在这里插入图片描述

提问:
更改编译原理课程的老师为郑老师
回答:
以下是更改编译原理课程的老师为郑老师的 SQL 语句:

UPDATE C
SET TEACHER = '郑老师'
WHERE CNAME = '编译原理';

这个语句使用了 UPDATE 命令来更新课程表 C 中的记录。通过 WHERE 子句限定课程名称为 “编译原理”,然后使用 SET 子句将课程对应的老师名称修改为 “郑老师”。这样,所有 “编译原理” 课程都将对应着这位新的老师。
在这里插入图片描述

思考:

能分解出我的问题,不错

7. 删除课程

在这里插入图片描述

提问:
删除操作系统课程
回答:
以下是删除操作系统课程的 SQL 语句:

DELETE FROM C
WHERE CNAME = '操作系统';

这个语句使用了 DELETE 命令从课程表 C 中删除记录。通过 WHERE 子句限定课程名称为 “操作系统”,这样只有 “操作系统” 课程对应的记录将被删除。注意,该操作将不仅删除课程表中的记录,还将删除选课表中所有选修该课程的学生的成绩记录。

思考:

这个课程没人选?换一个

8. 删除一个有关联数据的课程

在这里插入图片描述

提问:
删除计算机网络课程
回答:
以下是删除计算机网络课程的 SQL 语句:

DELETE FROM C
WHERE CNAME = '计算机网络';

这个语句使用了 DELETE 命令从课程表 C 中删除记录。通过 WHERE 子句限定课程名称为 “计算机网络”,这样只有 “计算机网络” 课程对应的记录将被删除。注意,该操作将不仅删除课程表中的记录,还将删除选课表中所有选修该课程的学生的成绩记录。
在这里插入图片描述

在这里插入图片描述

思考:

验证成功

总结

这个经典的数据库设计和基本增删查改,对于ChatGPT来说,简直是小菜一碟。
而且扎心的是,每步操作都有理有据有提示,这是要干掉搜索引擎的节奏?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22038.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 OpenAI API ChatGPT,通过自然语言生成 SQL 语句(简易版)

简介 Human Language to SQL Translator 是一个可以通过ChatGPT 可以生成 SQL 语句的网站。 开源地址&#xff1a; https://github.com/whoiskatrin/sql-translator 这里使用 python 对其进行了复现 代码 """自然语言生成 SQL """ import op…

写sql真就有手就行?ChatGPT让sql变得如此简单

前言介绍 随着数据库的应用越来越广泛&#xff0c;不仅仅是开发人员需要操作数据库&#xff0c;在日常的办公、数据分析场景&#xff0c;数据库的操作也变得越来越重要和普及&#xff0c;但是很多人面对sql增删改查的各种sql语法&#xff0c;又打了退堂鼓。近期ChatGPT的流行&…

人工智能中的图灵测试

大家都知道&#xff0c;人工智能是一个交叉性的学科&#xff0c;它涉及到很多的技术&#xff0c;比如机器学习、深度学习、人工神经网络等技术&#xff0c;当然还少不了图灵测试。在人工智能中&#xff0c;图灵测试非常实用&#xff0c;可以说没有图灵测试&#xff0c;我们现在…

【人工智能】图灵测试

图灵测试&#xff08;The Turing test&#xff09;由艾伦麦席森图灵发明&#xff0c;指测试者与被测试者&#xff08;一个人和一台机器&#xff09;隔开的情况下&#xff0c;通过一些装置&#xff08;如键盘&#xff09;向被测试者随意提问。 进行多次测试后&#xff0c;如果有…

资讯 | 图灵测试已经无法评估现在的人工智能了!

随着人工智能成为我们技术领域中重要组成部分&#xff0c;每一种新的工具和技术都需要一个基准。目前位置&#xff0c;最广为人知的AI基准测试工具就是图灵测试。 自1950年图灵测试提出来以后&#xff0c;人工智能领域已经取得了长足的发展。但&#xff0c;越来越清楚的是&…

itchat--使用python实现与图灵机器人交互

应用场景 七夕快到了&#xff0c;看着那些情侣在一起腻腻歪歪&#xff0c;整天短消息停不下来&#xff0c;众多苦逼的程序猿或许只能对着电脑了。是不是羡慕嫉妒恨呢&#xff01;手机另一端怎么没人和自己在一起聊天呢&#xff1f;是不是也想有个人可以秒回自己的消息。没事&a…

面对面的办公室——纪念艾伦•图灵百年诞辰

面对面的办公室——纪念艾伦•图灵百年诞辰 Comments>> 科学松鼠会 发表于 2012-07-07 06:44 | Tags 标签&#xff1a; 原创, 图灵百年诞辰 【图片出处&#xff1a;http://www.cs.swan.ac.uk/~csarnold/】 作者&#xff1a;玑衡 本文节选自作者为纪念艾伦•图灵诞辰一百…

从达特茅斯会议到图灵奖---人工智能学习分享

“无意中发现了一个巨牛的人工智能教程&#xff0c;忍不住分享一下给大家。教程不仅是零基础&#xff0c;通俗易懂&#xff0c;而且非常风趣幽默&#xff0c;像看小说一样&#xff01;觉得太牛了&#xff0c;所以分享给大家。点这里可以跳转到教程。” 生活在信息大爆炸的今天…

【图灵奖得主】Jeffrey D. Ullman 斯坦福大学

【图灵奖得主】Jeffrey D. Ullman&#xff0c;斯坦福大学名誉教授&#xff0c;在线学习平台 Gradiance Corporation 的首席执行官。主要研究兴趣为编译器设计和数据库系统。毕业于哥伦比亚大学&#xff0c;在普林斯顿大学获得计算机科学博士学位。于 1979 年加入斯坦福大学&…

【置顶】图灵近期出版和即将出版的新书

图灵近期重点新书 堪与《重构》媲美的软件实战图书Amazon 5星评价里程碑性著作 中文书名&#xff1a; 修改代码的艺术 英文书名&#xff1a; Working Effectively with Legacy Code 原书作者&#xff1a; Michael Feathers 译者 : 刘未鹏 原书出版公司&#xff1a; Prentic…

(转)图灵测试与人工智能

什么是图灵测试&#xff1f; 在一篇1950年发表的著名论文《Computing Machinery and Intelligence》中&#xff0c;数学家阿兰图灵详细讨论了“机器能否拥有智能&#xff1f;”的问题。有趣的是&#xff0c;作为计算机科学与人工智能领域共同的先驱&#xff0c;图灵成功定义了什…

73年后,人工智能通过了图灵测试

73年后&#xff0c;人工智能通过了图灵测试&#xff01; 意味着进化加速… 人工智能咋起源&#xff1f; 又会走向何方&#xff1f; 趣讲大白话&#xff1a;知道未来有多远&#xff0c;就要知道过去有多久 【趣讲信息科技112期】 **************************** 1950年&#xff1…

计算机首次通过图灵测试

今天图灵测试 2014 的举办方英国雷丁大学发布新闻稿&#xff0c;宣称俄罗斯人弗拉基米尔维西罗夫&#xff08;Vladimir Veselov&#xff09;创立的人工智能软件尤金•古斯特曼&#xff08;Eugene Goostman&#xff09;通过了图灵测试。如果这一结论获得确认&#xff0c;那么这将…

重磅!图灵奖,公布!

来源&#xff1a;青塔 3月22日&#xff0c;现年76岁的以太网发明者、3Com公司创始人鲍勃梅特卡夫&#xff08;Bob Metcalfe&#xff09;荣获2022年图灵奖&#xff0c;这一计算机科学的最高荣誉&#xff0c;表彰他为引领大众进入超级连接时代所做的贡献。 鲍勃梅特卡夫发明的以太…

Hinton等6位图灵奖得主、百余位顶级学者邀你加入群聊,共话人工智能下一个十年...

Geoffrey Hinton等6位图灵奖得主亲临&#xff0c;百余位顶级学者邀请你加入群聊「2020北京智源大会」&#xff0c;深入系统探讨「人工智能的下一个十年」。 自2009年深度学习崛起以来&#xff0c;第三波人工智能浪潮席卷全球&#xff0c;推动了新一波技术革命。 在这波澜壮阔的…

面对面的办公室——纪念艾伦•图灵百年诞辰 1912.6.23-2012.6.23

一、左边的办公室 冯诺伊曼教授每年换一部新凯迪拉克。早上十点&#xff0c;他把爱车停在帕尔玛物理实验室门口&#xff0c;神采奕奕地走进隔壁数学系的办公室。那时候普林斯顿高等研究院才刚成立&#xff0c;和数学系挤在一幢叫作Fine Hall的楼—— “还不错的楼”。冯诺伊曼教…

科普两个著名人工智能思想实验:图灵测试和中文房间

导读&#xff1a;人工智能的字典定义是机器模仿人类智能行为的能力。那么如何定义智能&#xff1f; 作者&#xff1a;道格罗斯&#xff08;Doug Rose&#xff09; 来源&#xff1a;大数据DT&#xff08;ID&#xff1a;hzdashuju&#xff09; 01 图灵测试 艾伦图灵是一位英国计算…

chatgpt赋能python:Python如何找出超链接的Xpath

Python如何找出超链接的Xpath 1. 什么是Xpath&#xff1f; Xpath是XML Path Language的缩写&#xff0c;意为XML路径语言&#xff0c;是一种用来定位XML文档中节点的语言。Xpath通过路径表达式来选取XML文档中的节点或者节点集。在Python中&#xff0c;使用lxml库可以解析XML…

弘玑Cyclone与RPA中国联合主办「第三届中国RPA+AI开发者大赛」

近日&#xff0c;弘玑Cyclone与RPA中国达成合作&#xff0c;双方将以联合主办「第三届中国RPAAI开发者大赛」的形式&#xff0c;共同推动RPA与AI技术融合运用的发展和普及&#xff0c;为开发者们创造一个更加开放包容、充满活力的行业新生态。 在RPA与AI技术的融合发展上&#…

大江南北十三省,蓬门今始为君开,数字政府建设“实在”必行

引言&#xff1a; 推动数字中国建设是实现中国式数字化进程、抢占未来发展制高点的关键。为全面推动数字化转型在政府领域的纵深发展&#xff0c;各地领导不断进行数字化探索。其中&#xff0c;数字员工凭借流动的数据、流畅的体验&#xff0c;百姓少跑腿、数据多跑路特点&…