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

1元涨1000粉丝网站陕西住房和城乡建设部网站首页

1元涨1000粉丝网站,陕西住房和城乡建设部网站首页,网站建设好与管理在哪就业,做网站放广告赚钱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.sczhlp.com/news/133585/

相关文章:

  • 类似qq空间的网站模板网站页面图片布局如何设计
  • 厦门专业网站建设做淘宝客的网站
  • 护照包 阻门器 防偷包
  • 比较好的家装设计网站steam交易链接是什么
  • 公司制作网站费用亚马逊雨林有原始人吗
  • 吉林省现代交通建设有限公司官网站拼多多网上怎么开店
  • 建设银行人力资源招聘网站中山做百度网站的公司名称
  • 南京代做网站外贸流程中涉及的重要单证
  • dede网站版权信息标签哪有做建筑设计的网站
  • 品牌网站模板seo公司网站
  • 安阳网站制作 网络服务高安做网站
  • 动易网站官网怀化冰山涯IT网站建设公司
  • 慈溪公司做网站梅州正规的免费建站
  • 关于网站建设费用wordpress H2标签
  • 简阳电力建设立项网站外包公司是干啥的
  • 自己搞个网站需要多少钱热门网站
  • 湖南手机网站建设公司建设网站收费明细
  • 广告网站做动图怎么做晨星wordpress
  • 公司网站可以个人备案吗建立网站专业公司
  • 凤岗建设网站上海设计展2023
  • 贵阳两学一做网站为什么seo工资不高
  • 网站建设html5作品如何做企业网站优化
  • 商品展示类网站源码wordpress怎么修改页脚颜色
  • 试客网站程序源码建设视频网站链接百度云盘
  • Python-Conda技术指南
  • 学做网站推广要多久时间专业网络建站公司
  • dedecms本地调试好的网站怎么上传到服务器俄语网站推广
  • 公司网站访问非法网站的作用网站专业性免费评价工具
  • 网站建设有哪些环节西安域名注册
  • 网站开发和安卓开发企业网络搭建书籍