首页 > 数据库 >SQL 表连接

SQL 表连接

时间:2023-09-24 16:22:50浏览次数:27  
标签:INSERT name -- score VALUES student SQL 连接

CREATE DATABASE student; -- 新建学生 数据库

CREATE TABLE student.student (  -- 新建 学生表
  studentid INT PRIMARY KEY,
  name VARCHAR(50),
  age INT,
  sex VARCHAR(10)
);

INSERT INTO student.student (studentid, name, age, sex)  -- 插入3条数据
VALUES (1, '张三', 20, '男');

INSERT INTO student.student (studentid, name, age, sex)
VALUES (2, '李四', 22, '男');

INSERT INTO student.student (studentid, name, age, sex)
VALUES (3, '王五', 21, '女');
select  * from student.student;


CREATE TABLE student.score (   -- 新建成绩表
  id INT PRIMARY KEY,
  student_name VARCHAR(255),
  subject VARCHAR(255),
  score INT
);

INSERT INTO student.score (id, student_name, subject, score) -- 插入成绩数据
VALUES (1, 'John Doe', 'Math', 90);

INSERT INTO student.score (id, student_name, subject, score)
VALUES (2, 'Jane Smith', 'Science', 85);

INSERT INTO student.score (id, student_name, subject, score)
VALUES (3, 'Mike Johnson', 'English', 95);
INSERT INTO student.score (id, student_name, subject, score) -- 插入成绩数据
VALUES (4, '张三', 'Math', 90);

INSERT INTO student.score (id, student_name, subject, score)
VALUES (5, '李四', 'Science', 85);

INSERT INTO student.score (id, student_name, subject, score)
VALUES (6, '王五', 'English', 95);
INSERT INTO student.score (id, student_name, subject, score)
VALUES (7, '王五', 'Science', 95);
ALTER TABLE student RENAME TO students; --  修改学生表student名称为students

select  * from student.students;
select * from student.score;
alter table student.student rename column studentid to id; -- 修改student表中的列名  需要使用alter table;update 更新表中的值
-- 表连接
select * from students  s
left join score sc on s.name=sc.student_name;  

-- 搜索结果包含 王五 报了2个学科 求平均成绩

SELECT s.name,AVG(sc.score) AS average_score -- 显示两行 一行是姓名  一行是平均成绩
FROM students s
JOIN score sc ON s.name = sc.student_name   -- 连接两个表 为一个表
GROUP BY s.name
HAVING COUNT(DISTINCT sc.subject) = 2;

数据库 student

第一张students表

 第二张score 成绩表

 

 搜索卷网是谁  -----王五 ;竟然报了两个学科;并算出他的平均成绩

 

标签:INSERT,name,--,score,VALUES,student,SQL,连接
From: https://www.cnblogs.com/haha1988/p/17726121.html

相关文章

  • 如何在 Windows 上快速安装 MySQL?
    答:使用包管理器。安装scoopSet-ExecutionPolicy-ScopeCurrentUserRemoteSignedSet-ExecutionPolicy-ScopeCurrentUserUnrestrictediex(new-objectnet.webclient).downloadstring('https://get.scoop.sh')安装mysqlscoopinstallmysql启用MySQL服务my......
  • 下载mysql
    windows系统安装百度"mysql下载"centos系统安装https://dev.mysql.com/downloads/mysql/ubuntu系统安装https://downloads.mysql.com/archives/community/通用源码包https://dev.mysql.com/downloads/mysql/......
  • 软件测试面试----sql
    记录软件测试时问到的SQL问题1、用的什么sql?2、sql中排序用啥,分组用啥,左连接怎么写3、sql有姓名,分数,课程三个字段,筛选出来分数大于90的学生4、数据库的视图?5、左连接、右连接、内连接是什么意思6、sql插入数据的命令7、sql只删除表数据,不删除表的配置,怎么删?7、介绍一......
  • MySQL锁的相关测试
    文档课题:MySQL锁的相关测试.数据库:MySQL8.0.271、知识概述锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中除系统资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性、有效性是所有数据库必须解决的问题,锁冲突也是影......
  • MySQL赋值操作
    在MySQL中,赋值操作用于将一个值赋给一个变量或者一个字段。赋值操作使用赋值运算符(=)来完成。以下是一些具体的示例说明:赋值给变量:在MySQL中,您可以使用SET语句将一个值赋给一个变量。例如,假设我们要将数字10赋给一个名为num的变量:SET@num=10;在上述示例中,我们使用SET语句......
  • sqlserver判断字符串是否是数字
    sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回1,否则返回0。这只是一个菜鸟级的解决办法,大多数情况比较奏效。eg:selectISNUMERIC('123')--结果为1但是,该函数有个缺点!eg:复制代码 SELECT  ,ISNUMERIC('-')as'-'  --1 ,ISNUMERIC('+')as'+'  -......
  • yum安装postgresql-14
    PostgreSQL:Linuxdownloads(RedHatfamily)sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm#InstallPostgreSQL:sudoyuminstall-ypostgresql14-server#Optionallyinitializet......
  • java如何实现Socket的长连接和短连接
    讨论Socket必讨论长连接和短连接一、长连接和短连接的概念1、长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接;后者是每次请求,都新建一个Socket,处理完一个请求就直接关闭掉Socket。所以,其实区分长短连接就是:整个客户和服务端的通......
  • SSH连接慢
    连接linux服务器一般都是使用SSH远程连接的方式。有时,SSH连接速度很慢,但是ping时一切正常。大致是有以下几种原因:server的sshd会去DNS查找访问的clientip的hostname,如果DNS不可用或者没有相关记录,就会消耗一段时间。在authenticationgssapi-with-mic有时候也会消耗一段时间......
  • mysql导入外部文件
    1、右击表点击导入向导2、选择导入类型,点击下一步 3、选择数据源 4、有需要的画更改栏位分隔符(这里是.csv文件所以不可选)5、修改数据行(我习惯改成第一行,这样不用担心遗漏数据)6、确定表名7、确定列名8、点击下一步、开始 等进度条满就可以啦 ......