首页 > 数据库 >chat2db教程:根据对话内容生成SQL语句

chat2db教程:根据对话内容生成SQL语句

时间:2023-10-02 13:06:56浏览次数:48  
标签:COMMENT 教程 ID COURSE SCORE STUDENT SQL id chat2db


准备示例表

--学生信息表
drop table if exists STUDENT;
CREATE TABLE student (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学生ID',
  name VARCHAR(50) NOT NULL COMMENT '学生姓名',
  gender VARCHAR(10) NOT NULL COMMENT '学生性别',
  birthday DATE NOT NULL COMMENT '学生生日',
  address VARCHAR(100) NOT NULL COMMENT '学生住址',
  phone VARCHAR(20) NOT NULL COMMENT '学生联系方式'
) ;

--科目表:
drop table if exists COURSE;
CREATE TABLE course (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '科目ID',
  name VARCHAR(50) NOT NULL COMMENT '科目名称',
  teacher VARCHAR(50) NOT NULL COMMENT '授课教师',
  credit INT NOT NULL COMMENT '科目学分'
) ;

--学生选修科目表:
drop table if exists STUDENT_COURSE;
CREATE TABLE student_course (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '关系ID',
  student_id INT NOT NULL COMMENT '学生ID',
  course_id INT NOT NULL COMMENT '科目ID',
  FOREIGN KEY (student_id) REFERENCES student(id),
  FOREIGN KEY (course_id) REFERENCES course(id)
) ;

--学生成绩表:
drop table if exists SCORE;
CREATE TABLE score (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '成绩ID',
  student_id INT NOT NULL COMMENT '学生ID',
  course_id INT NOT NULL COMMENT '科目ID',
  score INT NOT NULL COMMENT '成绩',
  FOREIGN KEY (student_id) REFERENCES student(id),
  FOREIGN KEY (course_id) REFERENCES course(id)
) ;

为以下四张表插入一些测试数据,各10条。STUDENT COURSE STUDENT_COURSE SCORE

--为以下四张表插入一些测试数据,各10条。STUDENT COURSE  STUDENT_COURSE SCORE
INSERT INTO STUDENT (ID, NAME, GENDER, BIRTHDAY, ADDRESS, PHONE)
VALUES (1, 'John', 'Male', '1990-01-01', '123 Main St', '123-456-7890'),
       (2, 'Jane', 'Female', '1992-02-02', '456 Elm St', '987-654-3210'),
       (3, 'Mike', 'Male', '1991-03-03', '789 Oak St', '555-555-5555'),
       (4, 'Emily', 'Female', '1993-04-04', '321 Pine St', '111-222-3333'),
       (5, 'David', 'Male', '1990-05-05', '654 Maple St', '444-444-4444'),
       (6, 'Sarah', 'Female', '1992-06-06', '987 Birch St', '777-888-9999'),
       (7, 'Tom', 'Male', '1991-07-07', '654 Oak St', '222-333-4444'),
       (8, 'Amy', 'Female', '1993-08-08', '321 Elm St', '111-222-3333'),
       (9, 'Chris', 'Male', '1990-09-09', '789 Maple St', '444-555-6666'),
       (10, 'Lisa', 'Female', '1992-10-10', '123 Pine St', '777-888-9999');

INSERT INTO COURSE (ID, NAME, TEACHER, CREDIT)
VALUES (1, 'Math', 'Mr. Smith', 3),
       (2, 'English', 'Ms. Johnson', 4),
       (3, 'Science', 'Dr. Brown', 3),
       (4, 'History', 'Mrs. Davis', 4),
       (5, 'Art', 'Mr. Wilson', 2),
       (6, 'Music', 'Ms. Thompson', 2),
       (7, 'Physical Education', 'Coach Johnson', 1),
       (8, 'Computer Science', 'Mr. Anderson', 3),
       (9, 'Geography', 'Mrs. Martinez', 2),
       (10, 'Foreign Language', 'Ms. Lee', 4);

INSERT INTO STUDENT_COURSE (ID, STUDENT_ID, COURSE_ID)
VALUES (1, 1, 1),
       (2, 1, 2),
       (3, 2, 3),
       (4, 2, 4),
       (5, 3, 5),
       (6, 3, 6),
       (7, 4, 7),
       (8, 4, 8),
       (9, 5, 9),
       (10, 5, 10);

INSERT INTO SCORE (ID, STUDENT_ID, COURSE_ID, SCORE)
VALUES (1, 1, 1, 85),
       (2, 1, 2, 90),
       (3, 2, 3, 92),
       (4, 2, 4, 88),
       (5, 3, 5, 95),
       (6, 3, 6, 87),
       (7, 4, 7, 80),
       (8, 4, 8, 92),
       (9, 5, 9, 78),
       (10, 5, 10, 85);

查询学生John的各科目成绩,要求展示学生姓名、科目名称、科目分数。

--查询学生John的各科目成绩,要求展示学生姓名、科目名称、科目分数。
SELECT STUDENT.NAME, COURSE.NAME, SCORE.SCORE
FROM STUDENT
JOIN SCORE ON STUDENT.ID = SCORE.STUDENT_ID
JOIN COURSE ON SCORE.COURSE_ID = COURSE.ID
WHERE STUDENT.NAME = 'John';

查询总成绩排名班级前十的同学

--查询总成绩排名班级前十的同学
SELECT STUDENT.NAME, SUM(SCORE.SCORE) AS TOTAL_SCORE
FROM STUDENT
JOIN SCORE ON STUDENT.ID = SCORE.STUDENT_ID
GROUP BY STUDENT.NAME
ORDER BY TOTAL_SCORE DESC
LIMIT 10;


标签:COMMENT,教程,ID,COURSE,SCORE,STUDENT,SQL,id,chat2db
From: https://blog.51cto.com/zhangxueliang/7683357

相关文章

  • 达梦数据库教程:DM8表注释的正确写法
    错误示例直接在建表语句后面加上COMMENT的写法在DM中不被支持。正确示例正确的写法应该是:COMMENTONTABLEcourseIS'科目表';......
  • Oracle数据库升级PostgreSQL 后的踩坑记录(一)之databaseId
    背景:因为业务需求,需要整个项目除了适配oracle和mysql后还需要适配PostgreSQL,在此背景下就出现了一系列的问题。踩坑一:databaseId连接数据库后启动发现某些查询报错传入的sql参数是空,经过反复排查定位到对应的MyBaits的xml文件,我贴出原始的文件文件中判断databaseid是mysql还是oracl......
  • 44、Flink之module模块介绍及使用示例和Flink SQL使用hive内置函数及自定义函数详细示
    文章目录Flink系列文章一、模块Modules1、模块介绍2、模块类别ModuleTypes1)、CoreModule2)、HiveModule3)、User-DefinedModule3、模块生命周期和解析顺序ModuleLifecycleandResolutionOrder4、模块Modules的使用1)、SQL方式2)、编码方式-java二、HiveFunctions内置函数和自定......
  • 主流常见关系数据库分页sql语句写法。MySQL、PostgreSQL、SQLite、Oracle、DB2、SQL S
    前言1.分页sql逻辑:每页10条,取第3页。即取第21~30条数据1.1.MySQL/SQLite/PostgreSQLselect*fromdemolimit10offset20;select*fromdemolimit20,10;--PostgreSQL不支持该写法1.2.Oracle12C+Oracle11g之前很难用,Oracle12C+与MySQL用法格式一样了,只是语法关......
  • 26、Flink 的SQL之概览与入门示例
    文章目录Flink系列文章一、SQL1、数据类型2、保留关键字二、SQL入门1、FlinkSQL环境准备1)、安装Flink及提交任务方式2)、SQL客户端使用介绍3)、简单示例2、Source表介绍及示例3、连续查询介绍及示例4、Sink表介绍及示例本文简单的介绍了SQL和SQL的入门,并以三个简单的示例进行介......
  • mysql中find_in_set()函数的使用及in()用法详解
    MySQL手册中find_in_set函数的语法解释:FIND_IN_SET(str,strlist)str要查询的字符串strlist字段名参数以”,”分隔如(1,2,6,8,10,22)查询字段(strlist)中包含(str)的结果,返回结果为null或记录假如字符串str在由N个子链组成的字符串列表strlist中,则返回值的范围在1到N之间......
  • mysql中find_in_set()函数的使用及in()用法详解
    MySQL手册中find_in_set函数的语法解释:FIND_IN_SET(str,strlist)str要查询的字符串strlist字段名参数以”,”分隔如(1,2,6,8,10,22)查询字段(strlist)中包含(str)的结果,返回结果为null或记录假如字符串str在由N个子链组成的字符串列表strlist中,则返回值的范围在1到N之间......
  • 【尚硅谷】Jenkins教程(从配置到实战)
    课程链接:01-Jenkins教程简介_哔哩哔哩_bilibili课程笔记:https://files.cnblogs.com/files/henuliulei/Jenkins.zip?t=1696162767&download=trueJenkinsJenkins,原名Hudson,2011年改为现在的名字。它是一个开源的实现持续集成的软件工具。官方网站https://www.jenkins.io/j......
  • 【保姆级安装使用教程#1】Xshell与Xftp的下载、安装和使用
    1.下载官网下载地址:Xshell与Xftp下载地址当然也可以用鄙人的百度网盘连接下载这是链接:链接百度网盘下载Xshell与Xftp分别下载Xshell与Xftp2.安装Xshell打开Xshell安装包点击下一步点击接受许可,并进行下一步点击浏览更换安装地址,选择安装地址时要多建一......
  • MySQL实现开机自启
    文档课题:MySQL实现开机自启.数据库:MySQL8.0.271、自启动脚本Linux中通过编写启动脚本实现MySQL开机自启.[mysql@leo-827mgr-slave01~]$vistart_mysql.sh添加如下内容:#!/bin/bash#chkconfig:23451090#description:Auto-startsmysql#/etc/init.d/start_mysql.......