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

浙江网站建设广点通广告平台

浙江网站建设,广点通广告平台,建材公司网站建设方案,wordpress 绿色 炫 模板连接查询 通过查询多张表,用连接查询进行多表联合查询 关键字:inner join 内连接 left join 左连接 right join 右连接 数据准备 创建新的数据库:create database 数据库名; create database db_test2; 使用数据库:use 数据…

连接查询

通过查询多张表,用连接查询进行多表联合查询

关键字:inner join 内连接

               left join 左连接

               right join 右连接 

数据准备

创建新的数据库:create database 数据库名;

create database db_test2;

使用数据库:use 数据库名;

use db_test2;

创建班级信息表:

create table 表名(字段名1,字段名2,......);

代码实现
create table classes(class_id int primary key auto_increment,#主键自增class_name varchar(40) not null unique,class_remark varchar(200)
);

创建学生表:

create table 表名(字段名1,字段名2,......);

代码实现
create table students(stu_num char(8) primary key ,stu_name varchar(20) not null,stu_gender char(2) not null,stu_age int not null,cid int,constraint FK_STUDENTS_CLASSES foreign key(cid) references classes(class_id)on update cascade ON DELETE CASCADE
);

添加班级信息

insert into 表名 (字段名)values(添加的数据);

代码实现
insert into classes (class_name,class_remark)values('Java2204','......');insert into classes (class_name,class_remark)values('Java2205','......');insert into classes (class_name,class_remark)values('Java2206','......');insert into classes (class_name,class_remark)values('Python','......');
运行结果

添加学生信息

以下三个信息,属于class_id=1 的班级 (Java2204)

代码实现
insert into students (stu_num,stu_name,stu_gender,stu_age,cid)
values('20220101','张三','男',20,1);insert into students (stu_num,stu_name,stu_gender,stu_age,cid)
values('20220102','李四','女',20,1);insert into students (stu_num,stu_name,stu_gender,stu_age,cid)
values('20220103','王五','男',20,1);

以下两个学生信息,属于class_id=2 的班级 (Java2205)

代码实现
insert into students (stu_num,stu_name,stu_gender,stu_age,cid)
values('20220104','赵婷','女',20,1);insert into students (stu_num,stu_name,stu_gender,stu_age,cid)
values('20220105','孙七','男',20,2);

小红和小明没有设置班级信息

代码实现
insert into students (stu_num,stu_name,stu_gender,stu_age)
values('20220106','小红','女',20);insert into students (stu_num,stu_name,stu_gender,stu_age)
values('20220107','小明','男',20);
运行结果

select * from 表名;查询表

代码实现
select * from students s ;
select * from classes c ;
运行结果

内连接

语法

select ...... from 表名1 inner join 表名2 on 匹配条件 [where 条件];

经过内连接(表连接)之后,将两张表的数据以笛卡尔积的效果进行连接

代码实现

select * from 表名1 inner join 表名2;

select * from students inner join classes;

 运行结果

产生笛卡尔积,效果如下,将表1中的每个数据与第二个表中的每个数据都进行匹配

7 * 3 = 28,共有28个数据

消除笛卡尔积,在前缀后加上 on 匹配条件 [where 条件];

select ...... from 表名1 inner join 表名2 on 匹配条件 [where 条件]; 

内连接条件

两张表使用inner join连接查询之后生产的笛卡尔积数据中很多数据都是无意义的,我们如何消除无意义的数据呢?——添加两张进行连接查询时的匹配条件

使用 on 设置两张表连接查询时的匹配条件

两张表连接查询+条件

代码实现

使用where进行两个表之间的连接

select * from students inner join classes where students.cid=classes.class_id ;
运行结果
代码实现

使用on进行两个表之间的连接

select * from students inner join classes on students.cid=classes.class_id ;
运行结果

on连接查询和where连接查询的区别

where筛选:先生成笛卡尔积后进行判断连接条件是否成立

on筛选:先进行判断连接条件是否成立,如果成立后,再会进行组合,就不会有笛卡尔积的结果

左连接 LEFT JOIN

左连接定义

左连接显示左表中的所有数据,如果在右表中存在与左表记录满足匹配条件的数据,则进行匹配,如果右表中不存在匹配数据,则显示为NULL;

语法

select * from 左表名 left join 右表名 on 匹配条件 [where 条件];

作用

左连接:显示左表中的所有记录

需求

请查询出所有学生信息,如果有学生有对应的班级信息,则将对应的班级信息也查询出来

代码实现
select * from students left join classes on students.cid=classes.class_id ;

运行结果

右连接 RIGHT JOIN

右连接定义

右连接显示右表中的所有数据,如果在左表中存在与右表记录满足匹配条件的数据,则进行匹配,如果左表中不存在匹配数据,则显示为NULL;

语法

select * from 表名1 RIGHT JOIN 表名2 ON 表名1与表名2的关联字符;

作用

右连接:显示右表中的所有记录

需求

将右表中的所有数据显示出来

代码实现
select * from students right join classes on students.cid=classes.class_id ;

运行结果

左连接、右连接与内连接的区别

内连接:只会显示出两表中有关联的数据

左连接:显示出左表中的所有数据,右表中只写有关联的数据

右连接:显示出右表中的所有数据,左表中只写有关联的数据

数据表别名

语法

alter table 表名 rename column 列名 to 新列名;

案例

代码实现

修改列名

alter table students rename column stu_name to name;
alter table classes rename column class_name to name;

运行结果

当两个表的字段名称相同时,如何进行查询字段

代码实现
select students.name,classes.name from students inner join classes on students.cid = classes.class_id ;

运行结果

使用别名查询字段

代码实现
select s.name,c.name from students s inner join classes c on s.cid=c.class_id ;

运行结果 

子查询/嵌套查询 

定义

子查询——先进行一次查询,第一次查询的结果作为第二次查询的源/条件(第二次查询是基于第一次的查询结果来进行的)

子查询返回单个值——单行单列

案例 

查询班级表中字段名为Java2204的数据, 查询所有Java2204班级中选课副码为1的学生信息

代码实现

查询班级表中字段名为Java2204的数据

select class_id from classes c where name ='Java2204';

 查询所有Java2204班级中选课副码为1的学生信息

select * from students s where cid=1;

运行结果

查询所有Java班级中的学生信息 单列多行查询

代码实现
select class_id from classes c where name like 'Java%' ;

运行结果

显示三条查询语句 union连接关键字

代码实现
#显示三条查询语句 union连接关键字
select * from students s where cid=1
union
select * from students s where cid=2
union
select * from students s where cid=3;

运行结果

子查询,in关键字 单列多行查询

如果查询结果是单列多行,要有关键字in

in代表的是包含,not in代表不包含

代码实现
select * from students s where cid in(select class_id from classes c where name like 'Java%');

运行结果

 查询cid=1的班级中性别为男的学生信息

语法

select * from (select * from 表名 where 限制) 别名 where 别名.列名 = 限制;

将第一步查询语句当作一个虚拟表(限制信息)查询第二个表

代码实现
select * from (select * from students where cid = 1) t where t.stu_gender='男';

运行结果


文章转载自:
http://hoax.hwbf.cn
http://semiparalysis.hwbf.cn
http://umb.hwbf.cn
http://derivational.hwbf.cn
http://dissimilarly.hwbf.cn
http://unaccountable.hwbf.cn
http://emluator.hwbf.cn
http://polyunsaturate.hwbf.cn
http://nacreous.hwbf.cn
http://cornstalk.hwbf.cn
http://opportunist.hwbf.cn
http://clop.hwbf.cn
http://altigraph.hwbf.cn
http://aspersory.hwbf.cn
http://scaphocephaly.hwbf.cn
http://bellarmine.hwbf.cn
http://felicitousness.hwbf.cn
http://tergiversate.hwbf.cn
http://carangoid.hwbf.cn
http://arachne.hwbf.cn
http://superfatted.hwbf.cn
http://chugging.hwbf.cn
http://vaulting.hwbf.cn
http://sharp.hwbf.cn
http://greenth.hwbf.cn
http://waterhead.hwbf.cn
http://mondrian.hwbf.cn
http://choky.hwbf.cn
http://relocate.hwbf.cn
http://hurlbat.hwbf.cn
http://leto.hwbf.cn
http://claudette.hwbf.cn
http://copihue.hwbf.cn
http://pearlash.hwbf.cn
http://troposcatter.hwbf.cn
http://leatherhead.hwbf.cn
http://saunders.hwbf.cn
http://azan.hwbf.cn
http://quickthorn.hwbf.cn
http://hellenic.hwbf.cn
http://railbus.hwbf.cn
http://bronchopneumonia.hwbf.cn
http://flounder.hwbf.cn
http://gippo.hwbf.cn
http://reshipment.hwbf.cn
http://guise.hwbf.cn
http://galatian.hwbf.cn
http://bus.hwbf.cn
http://ingratiate.hwbf.cn
http://truelove.hwbf.cn
http://nuthatch.hwbf.cn
http://sitting.hwbf.cn
http://lemur.hwbf.cn
http://bitch.hwbf.cn
http://accountancy.hwbf.cn
http://slantwise.hwbf.cn
http://anglocentric.hwbf.cn
http://pneumatogenic.hwbf.cn
http://ourselves.hwbf.cn
http://nyet.hwbf.cn
http://osage.hwbf.cn
http://palingenesist.hwbf.cn
http://comoran.hwbf.cn
http://intently.hwbf.cn
http://indoors.hwbf.cn
http://micromesh.hwbf.cn
http://centrism.hwbf.cn
http://citlaltepetl.hwbf.cn
http://logodaedaly.hwbf.cn
http://doubting.hwbf.cn
http://bronchotomy.hwbf.cn
http://diabolical.hwbf.cn
http://manslaying.hwbf.cn
http://pesthole.hwbf.cn
http://wallsend.hwbf.cn
http://labradorite.hwbf.cn
http://norward.hwbf.cn
http://forgave.hwbf.cn
http://scindapsus.hwbf.cn
http://parajournalism.hwbf.cn
http://ptilosis.hwbf.cn
http://midcult.hwbf.cn
http://newfangle.hwbf.cn
http://maoridom.hwbf.cn
http://kindred.hwbf.cn
http://peroxisome.hwbf.cn
http://carob.hwbf.cn
http://sutra.hwbf.cn
http://class.hwbf.cn
http://althea.hwbf.cn
http://cheque.hwbf.cn
http://choreopoem.hwbf.cn
http://interpersonal.hwbf.cn
http://tongking.hwbf.cn
http://biaxial.hwbf.cn
http://lowriding.hwbf.cn
http://peristome.hwbf.cn
http://ipsu.hwbf.cn
http://signal.hwbf.cn
http://abelmosk.hwbf.cn
http://www.15wanjia.com/news/92663.html

相关文章:

  • 江苏网站设计方案爱链在线
  • 网站建设与营销服务做百度seo
  • 宁德北京网站建设seo优化培训公司
  • 网站优化排名易下拉技术如何增加网站的外链
  • 温州做网站西安计算机培训机构排名前十
  • janbo wordpress百家号关键词排名优化
  • wordpress安装主题连接不上ftp长沙优化官网服务
  • 行业网站做不下去苏州seo优化公司
  • 有没有专门做任务赚钱的网站网站改版
  • 小学学校网站竞价推广和seo的区别
  • wordpress 同城生活电脑网络优化软件
  • 哈尔滨网站制作建设学电商运营的培训机构
  • 租空间做网站需要多少钱成都百度seo推广
  • 安防网站建设优点站长联盟
  • 网站建设违约如何建立网上销售平台
  • wordpress获取当前分类url青岛百度seo排名
  • 网站的回到顶部怎么做推广普通话手抄报模板可打印
  • 哪个网站可以哪些企业做哪些产品每日精选12条新闻
  • 安阳做网站电话百度公司总部
  • 济南做网站公司一手渠道推广平台
  • 企业 网站规划与网页设计word网站的seo如何优化
  • 网站服务器停止响应是什么意思自媒体135免费版下载
  • 四海网络网站建设网站模板图片
  • 威联通231p做网站百度网站大全
  • 如何制作企业内部网站免费二级域名平台
  • 谷歌推广开户多少费用杭州seo的优化
  • 网站的内链电脑培训班零基础网课
  • 培训网页课程优化设计答案五年级上册
  • 贵阳做网站开发的公司58同城黄页推广
  • wordpress驾校模版宁波seo外包方案