当前位置: 首页 > news >正文

宁波专业网站推广平台咨询东乡哪里有做网站

宁波专业网站推广平台咨询,东乡哪里有做网站,app项目开发教程,微信网站开发需要什么知识mysql的连接查询,相必在网上都能找到很多的教程,博主今天不做老话常谈,不走重复路线 1.建表 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id) – –课程编…

mysql的连接查询,相必在网上都能找到很多的教程,博主今天不做老话常谈,不走重复路线

1.建表

1.学生表 
Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 
–2.课程表 
Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号 
–3.教师表 
Teacher(t_id,t_name) –教师编号,教师姓名 
–4.成绩表 
Score(s_id,c_id,s_score) –学生编号,课程编号,分数

2.准备测试数据

--建表
--学生表
CREATE TABLE `Student`(
`s_id` VARCHAR(20),
`s_name` VARCHAR(20) NOT NULL DEFAULT '',
`s_birth` VARCHAR(20) NOT NULL DEFAULT '',
`s_sex` VARCHAR(10) NOT NULL DEFAULT '',
PRIMARY KEY(`s_id`)
);
--课程表
CREATE TABLE `Course`(
`c_id` VARCHAR(20),
`c_name` VARCHAR(20) NOT NULL DEFAULT '',
`t_id` VARCHAR(20) NOT NULL,
PRIMARY KEY(`c_id`)
);
--教师表
CREATE TABLE `Teacher`(
`t_id` VARCHAR(20),
`t_name` VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY KEY(`t_id`)
);
--成绩表
CREATE TABLE `Score`(
`s_id` VARCHAR(20),
`c_id` VARCHAR(20),
`s_score` INT(3),
PRIMARY KEY(`s_id`,`c_id`)
);
--插入学生表测试数据
insert into Student values('01' , '赵雷' , '1990-01-01' , '男');
insert into Student values('02' , '钱电' , '1990-12-21' , '男');
insert into Student values('03' , '孙风' , '1990-05-20' , '男');
insert into Student values('04' , '李云' , '1990-08-06' , '男');
insert into Student values('05' , '周梅' , '1991-12-01' , '女');
insert into Student values('06' , '吴兰' , '1992-03-01' , '女');
insert into Student values('07' , '郑竹' , '1989-07-01' , '女');
insert into Student values('08' , '王菊' , '1990-01-20' , '女');
--课程表测试数据
insert into Course values('01' , '语文' , '02');
insert into Course values('02' , '数学' , '01');
insert into Course values('03' , '英语' , '03');--教师表测试数据
insert into Teacher values('01' , '张三');
insert into Teacher values('02' , '李四');
insert into Teacher values('03' , '王五');--成绩表测试数据
insert into Score values('01' , '01' , 80);
insert into Score values('01' , '02' , 90);
insert into Score values('01' , '03' , 99);
insert into Score values('02' , '01' , 70);
insert into Score values('02' , '02' , 60);
insert into Score values('02' , '03' , 80);
insert into Score values('03' , '01' , 80);
insert into Score values('03' , '02' , 80);
insert into Score values('03' , '03' , 80);
insert into Score values('04' , '01' , 50);
insert into Score values('04' , '02' , 30);
insert into Score values('04' , '03' , 20);
insert into Score values('05' , '01' , 76);
insert into Score values('05' , '02' , 87);
insert into Score values('06' , '01' , 31);
insert into Score values('06' , '03' , 34);
insert into Score values('07' , '02' , 89);
insert into Score values('07' , '03' , 98);

3.注意事项

-- 准备条件,去掉 sql_mode 的 ONLY_FULL_GROUP_BY 否则此种情况下会报错:
-- Expression #1 of select list is not in group by clause and contains nonaggregated column 'userinfo.
-- 原因:
-- MySQL 5.7.5和up实现了对功能依赖的检测。如果启用了only_full_group_by SQL模式(在默认情况下是这样)-- 那么MySQL就会拒绝选择列表、条件或顺序列表引用的查询,这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们。
-- (5.7.5之前,MySQL没有检测到功能依赖项,only_full_group_by在默认情况下是不启用的。关于前5.7.5行为的描述,请参阅MySQL 5.6参考手册。)
-- 执行以下个命令,可以查看 sql_mode 的内容。
SHOW SESSION VARIABLES;
SHOW GLOBAL VARIABLES;
select @@sql_mode;
-- 更改
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
  1. 闲话少说,打开一下话匣子吧
    连接查询有很多,今天博主侧重点分析左外联查。小伙伴们把左外联查彻底搞明白了,其它查询也是同样的道理

先看一组例子
(1)左表是student,右表是score,连接条件仅限于等号

select st.,sc. from student st left join score sc
on sc.s_id=st.s_id

执行结果:
在这里插入图片描述
(2)左表是student,右表是score,连接条件包括and

select st.,sc. from student st left join score sc
on sc.s_id=st.s_id and sc.s_id is not null

在这里插入图片描述

(3) 左表是score,右表是student,连接条件包括and

select st.,sc. from score sc left join student st
on sc.s_id=st.s_id and sc.s_id is not null

执行结果:
在这里插入图片描述
(3)左表是student,右表是score,连接条件仅限于等号,但是存在where筛选条件

select st.,sc. from student st left join score sc
on sc.s_id=st.s_id where sc.s_id is not NULL

在这里插入图片描述

(4)左表是student,右表是score
select st.,sc. from student st
left join score sc on sc.s_id=st.s_id and st.s_name in (‘赵雷’,‘钱电’)
在这里插入图片描述
(5)左表是student,右表是score
select st.,sc. from student st
left join score sc on sc.s_id=st.s_id
where st.s_name in (‘赵雷’,‘钱电’)
在这里插入图片描述

(6)左表是student,右表是score
select st.,sc. from student st
left join score sc on sc.s_id=st.s_id and sc.s_id in(‘01’,‘02’)
在这里插入图片描述
(7)左表是student,右表是score
select st.,sc. from student st
left join score sc on sc.s_id=st.s_id and sc.s_id in(‘01’)
在这里插入图片描述

(8)左表是student,右表是score
select st.,sc. from student st
left join score sc on sc.s_id=st.s_id and st.s_name =‘钱电’ and sc.s_id in(‘01’)
在这里插入图片描述

(9)左表是student,右表是score
select st.,sc. from student st
left join score sc on sc.s_id=st.s_id and sc.s_id in(‘01’,‘02’,‘03’,‘04’,‘05’,‘06’,‘07’,‘08’)在这里插入图片描述

小结:
(1)左外联查,以左表作为主表,右表数据根据连接条件往左表拼凑数据,最终形成一张完整的临时表
(2)连接条件分为连接前筛选与连接后筛选,其中on后面的条件做的都是连接前的筛选,where后面的连接条件做的都是连接后的筛选
(3)拓展一下,on后面的筛选条件可以和where后面的筛选条件,比如and, or, >,>=,=,<=,<,in等等
(4)on后面的筛选条件以左表的筛选条件为主,

1- 当左表连接条件与右表连接条件同时存在时,以左表连接条件为主,右表筛选条件为辅。同时左表筛选条件决定着最终形成的临时表的数据条数。
2- 当只有左表筛选条件时,左表筛选条件决定着最终形成的临时表的数据条数。
3- 当只有右表筛选条件时,右表筛选条件决定着最终形成的临时表的数据条数。

右表筛选条件相对于左表做筛选

http://www.yayakq.cn/news/835350/

相关文章:

  • 餐饮设计公司网站wordpress更换网站域名
  • 美术网站建设方案电子商务网站建设收益举例
  • 网站建设公司选择意见书网店美工培训教程
  • wordpress网站生成app应用企业网站优化之如何做需求分析
  • 泉州模板自助建站2019年安徽省第23批二级建造师公示
  • 手机网站 返回顶部保定网站制作报价
  • 装修的网站都有哪些商务平台
  • 票务网站策划书工图网
  • 介绍旅游美食的网站模板教育中介公司网站建设费用
  • dw用ps切片做网站网站设计教程网站
  • 两个网站开发swot分析wordpress 头像 很慢
  • 企业网站建设实训心得阿里巴巴国际站下载电脑版
  • 网站建立定位企划商城网站建设代理商
  • 前端网站开发的公用头部网站做资讯需要获取许可证吗
  • 广州10打网站服务商国家城乡建设网站
  • 网站建设项目简介flex网站模板
  • 汕头中英文网站推广建设人才证书查询网站
  • 上海建设教育网站网站后台文本编辑器
  • 外贸有哪些网站北京品牌网站定制公司
  • 网站快速上排名方法网站tag标签
  • 公司网站建设怎么选择主机大小母婴用品网站建设规划
  • 如何建设互联网政务门户网站教育平台网站建设
  • 义乌网站推广毕业设计网站最容易做什莫类型
  • 网站icp备案是什么意思做网站和做推广有什么区别
  • 帝国cms电影网站模板wordpress教程 下载
  • 网站建设模板htmlwordpress文章模块化插件
  • 葫芦岛市营商环境建设管理局网站3d 代做网站
  • 营销型网站设计房地产第三方推广平台
  • 网站制作费用属于广告费吗如何找外贸公司合作
  • 网站被别人域名绑定wordpress删除文章按钮