mysql创课程表tno是什么_MySQL DQL多表链接查询基本使用
多表查询思路:
join 是 inner join 简写
1.数据来自多张表,优先想到多表连接join ON
2.关联表写join两端
3.on条件写两表的关联列
4.所有查询条件select后,注意表名和别名
5.where过滤条件写最后
注释:INNER JOIN 与 逗号多表 是相同的。
select * from student,sc where student.sno=sc.sno; '相同' select * from student inner join sc on student.sno=sc.sno;
inner join是内连接,显示符合连接条件的记录,连接条件已经指明了。与直接使用where 条件过滤条件一样的两个表符合条件的数据。
left join 左连接查询结果是以左边的表为主,右表的数据匹配不到的字段为null;
right join 右连接查询结果以右边的表为主,左表的数据匹配不到的字段为null;
MySQL官方实例库下载
当前内容已被隐藏,您需要登录才能查看
登录立刻注册
两张表查询:
#查询一下世界上人口数量小于100人的城市名和国家名
select city.countrycode as daihao, country.name as guojia,city.name as chengshi,city.population as renkou from city join country on country.code=city.countrycode where city.population<100;
#查询城市shenyang,城市人口,所在国家名(name)及国土面积(surfacearea)
select country.name,city.name,country.SurfaceArea from city join country on city.countrycode=country.code where city.name='shenyang';
#查询城市为heze,城市人口,所在国家名(name),及国土面积(surfacearea)
select country.name,city.name,city.population,country.surfacearea from city join country on city.countrycode=country.code where city.name='heze';
案例:
创建school库:
CREATE DATABASE school CHARSET utf8;
USE school
创建学生表:
CREATE TABLE student(
sno INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
sname VARCHAR(20) NOT NULL COMMENT '姓名',
sage TINYINT UNSIGNED NOT NULL COMMENT '年龄',
ssex ENUM('f','m') NOT NULL DEFAULT 'm' COMMENT '性别'
)ENGINE=INNODB CHARSET=utf8;
student(sno,sname,sage,ssex) 学生表
sno: 学号;
sname:学生姓名;
sage: 学生年龄;
ssex: 学生性别;
创建课程表:
CREATE TABLE course(
cno INT NOT NULL PRIMARY KEY COMMENT '课程编号',
cname VARCHAR(20) NOT NULL COMMENT '课程名字',
tno INT NOT NULL COMMENT '教师编号'
)ENGINE=INNODB CHARSET utf8;
course(cno,cname,tno) 课程表
cno: 课程编号;
cname:课程名字;
tno: 教师编号 ;
创建成绩表:
CREATE TABLE sc (
sno INT NOT NULL COMMENT '学号',
cno INT NOT NULL COMMENT '课程编号',
score INT NOT NULL DEFAULT 0 COMMENT '成绩'
)ENGINE=INNODB CHARSET=utf8;
sc(sno,cno,score) 成绩表
sno: 学号;
cno: 课程编号;
score:成绩 ;
创建教师表:
CREATE TABLE teacher(
tno INT NOT NULL PRIMARY KEY COMMENT '教师编号',
tname VARCHAR(20) NOT NULL COMMENT '教师名字'
)ENGINE=INNODB CHARSET utf8;
teacher(tno,tname) 教师表
tno: 教师编号;
tname:教师名字;
学生表中录入N为学生:
INSERT INTO student(sno,sname,sage,ssex) VALUES(1,'zhang3',18,'m');
INSERT INTO student(sno,sname,sage,ssex) VALUES (2,'zhang4',18,'m'),(3,'li4',18,'m'),(4,'wang5',19,'f');
INSERT INTO student VALUES(5,'zh4',18,'m'),(6,'zhao4',18,'m'),(7,'ma6',19,'f');
INSERT INTO student(sname,sage,ssex) VALUES('olda',20,'m'),('oldgirl',20,'f'),('oldp',25,'m');
教师表中录入三位老师:
INSERT INTO teacher(tno,tname) VALUES(101,'olda'),(102,'hesw'),(103,'oldguo');
课程表中录入三门课程:
INSERT INTO course(cno,cname,tno) VALUES(1001,'linux',101),(1002,'python',102),(1003,'mysql',103);
成绩表中录入学生成绩:
INSERT INTO sc(sno,cno,score)
VALUES
(1,1001,80),
(1,1002,59),
(2,1002,90),
(2,1003,100),
(3,1001,99),
(3,1003,40),
(4,1001,79),
(4,1002,61),
(4,1003,99),
(5,1003,40),
(6,1001,89),
(6,1003,77),
(7,1001,67),
(7,1003,82),
(8,1001,70),
(9,1003,80),
(10,1003,96);
SQL练习题:
group_concat()函数是以一行显示所有查询到的值
统计zhang3,学习了几门课:
select st.sname,count(sc.sno) from student as st join sc on st.sno=sc.sno where st.sname='zhang3';
查询zhang3,学习的课程名称有哪些:
select st.sname,co.cname from student as st join sc on st.sno=sc.sno join course as co on sc.cno=co.cno where st.sname='zhang3';
或
select st.sname,group_concat(co.cname) from student as st join sc on st.sno=sc.sno join course as co on sc.cno=co.cno where st.sname='zhang3';
查询olda老师教的学生名:
select te.tname,group_concat(st.sname) from teacher as te join course as co on te.tno=co.tno join sc on co.cno=sc.cno join student as st on st.sno=sc.sno where te.tname='olda';
查询olda所教课程的平均分数:
select te.tname,avg(sc.score) from teacher as te join course as co on te.tno=co.tno join sc on co.cno=sc.cno where te.tname='olda';
查询olda所教的80分以上的学生姓名:
select te.tname,st.sname,sc.score from teacher as te join course as co on te.tno=co.tno join sc on co.cno=sc.cno join student as st on sc.sno=st.sno where te.tname='olda' and sc.score>=80;
mysql创课程表tno是什么_MySQL DQL多表链接查询基本使用相关推荐
- MySQL 后from多个表_MYSQL回顾(多表查询相关)
前言 简单的数据我们可以直接从一个表中获取,但在真实的项目中查询符合条件的数据通常需要牵扯到多张表,这就不得不使用多表查询.多表查询分为多表连接查询.符合条件链接查询.子查询.多表连接查询包括内连接. ...
- mysql索引过多为什么会慢_mysql – 为什么索引使这个查询更慢?
摘要 问题是由于b-trees的性质,字段不适合索引. 说明 假设你有一张表有500,000个掷硬币的结果,其中抛掷是1(头)或0(尾): CREATE TABLE toss ( id int NOT ...
- mysql怎么查看是否存在死锁_mysql怎么查看有没有死锁
我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...
- 使用navicat for mysql 创建外键foreign keys时,总会自动创建索引indexs
使用navicat for mysql 创建外键foreign keys时,总会自动创建索引indexs.如果删除这个索引就会提示错误error 1553:cann't drop index-:nee ...
- mysql 分片 数据迁移_简述MySQL分片中快速数据迁移_MySQL
推荐阅读:MySQL 数据库跨操作系统的最快迁移方法 mysql 备份与迁移 数据同步方法 操作实践背景: travelrecord表定义为10个分片,尝试将10个分片中的2个分片转移到第二台MySQ ...
- mysql用户权限与安全实例_mysql用户权限管理实例分析
我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...
- mysql 登录默认实例_【MySQL案例】mysql本机登录-S失灵_mysql
[mysql案例]mysql本机登录-S失效 1.1.1. mysql本机登录mysql时,-S参数失效 [环境描述] mysql5.5.14 [问题描述] 配置了多实例 实例1 实例2 datadi ...
- mysql可以更改安装路径吗_Mysql怎样更改安装路径?
我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...
- mysql当前时间加半小时_mysql怎么在当前时间增加一小时
我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...
- mysql基础1 -------- DDL、DML、DQL、DCL
目录 前言 SQL概述 SQL的分类 DDL 数据库操作 表操作 查询创建表 数据类型 表操作 案例 修改表结构操作 删除表操作 DML 添加数据 修改数据 删除数据 DQL 基本语法 基本查询 条件 ...
最新文章
- RRC Connection Reconfiguration
- srs audio sandbox 注册机_Windows10自带 Sandbox软件测试必备技巧
- 几十年的领域专家告诉你,机器翻译进化到哪一步了?
- 干货丨一文读懂深度学习与机器学习的差异
- System.Security.Cryptography.CryptographicException: 用户的配置文件是临时配置文件 解决方案...
- VS项目中引入dll的方法
- SQL Server存储过程的基本概念以及语法【转】
- WinAPI: midiOutCachePatches - 预装音色
- 7.1 定义关键指标KPI
- mysql shell 所有表_删除mysql数据库中所有表的shell脚本
- jQuery DOM/属性/CSS操作
- c语言编程题报文解析,C语言解析pcap文件得到HTTP信息实例
- osmand中矢量数据地图绘制
- SYNOPSYS DDR VIP use note
- 解决虚拟机桥接模式ping不通主机
- 腾讯面试Android开发
- Oracle数据库递归查询
- android 扫码枪 字符数少掉,BarTender条码字符数莫名变少是怎么回事?
- c 语言从指针得到对象,c – 获取指向由智能指针指向的对象的指针 – Ivalue错误...
- EPLAN 接线端子
热门文章
- Pall(颇尔)超滤管 超滤系统使用报告
- 笔记10:Carla官方文档阅读 -- 2nd【Actors and Blueprints】/【(3)Types of Actors】/【5)Walkers】
- 【MySQL通关之旅】从山脚到山顶(傲视群雄版)
- 强化学习算法中SARSA
- 2021写了这么些文章...
- No HttpMessageConverter for (后面是自己定义的类)
- 液基薄层细胞 宫颈细胞学计算机诊断,液基薄层细胞制片技术与宫颈细胞学诊断.pdf...
- oracle exp 00108,ORACLE数据库备份异常 LRM-00108: invalid positional parameter value 'as'
- iOS开发根本布景介绍
- 在springmvc的Filter过滤器中更改请求参数,servletRequest.getParameter或者servletRequest.getParameterMap的参数教程