两边关联查询操作

所涉及到mysql语句:

创建数据库

create database 数据库名 character set utf8

新建表

create table 表名(字段 约束,字段 约束)

.添加输据

insert table 表名 value(输据,输据),(输据,输据)

查询命令 

查询某表输据

select 展示输据 from 表名

条件查询(对表内某字段做要求,来判断做需要展示的输据条)

=:是否相等

>:大于

<:小于

and:和

or:或

not:否

like ‘刘%’:%是模糊查询使用的,刘%就代表姓刘的用户,因为模糊查询不能使用’=‘来判断,由like取代

注意:是在条件查询(where)后使用的,select * from 表明 where id=1(内关联后也可以使用,select * from app1 inner join app2 on id=id)

聚合函数

count(*):总数

max(字段名):最大值,(如果是字段就显示最大字段的输据)

min(字段名):最小值,(如果是字段就显示最小字段的输据)

abg(字段名):平均值

sum(字段名):求和

注意:是在输出位置使用的,如select count(*) from 表名

连接查询:

inner join 表名 on 关联字段   内连接查询:两个表相匹配的行才能在结果集中出现

lift join 表名 on 关联字段       左连接查询:左边的表不加限制

right join 表名 on 关联字段    右连接查询:右边的表不加限制

注意:select * from 表1 inner join 表二 on 表一外键=表二外键

select * from 表1 inner join 表二 on 表一外键=表二外键 where 表1.id>10      (后面条件查询的时候,需要加上相对应的表名,前面输出的字段也一样,也需要加上表名)

 

i演示题

#创建dbl输据库
create database dbl character set utf8;


#进入数据库
use dbl;


#创建tb表结构
create table tb(
id int(20) primary KEY auto_increment,
score varchar(20),
grade  varchar(20)
);


#创建tbs结构
create table tbs(
#建id字段,主键且自增
id int(20) primary key auto_increment,
#建name字段,字符串且非空
name varchar(20) not NULL,
#建sid字段,数字类型
sid int(20),
#字段sid,外关联tb表的id字段
foreign key(sid) references tb(id)
);


#为表tb添加输据
insert into tb value
(0,89.00,'良好'),
(0,100.00,'优秀'),
(0,77.00,'良好'),
(0,69.00,'良好'),
(0,59.00,'不及格'),
(0,30.00,'不及格');


#为表tbs添加输据
insert into tbs VALUE
(0,'张三',1),
(0,'赵四',2),
(0,'王五',4),
(0,'赵六',6),
(0,'张泽鹏',5),
(0,'申振锋',4),
(0,'刘雨',3),
(0,'吴浪',3),
(0,'吴凯',1),
(0,'魏强',2);


#查询学生表中所有学生记录
select * from tbs;


#查询学生表中学号、姓名,显示3-8条记录
select id,name from tbs limit 2,6;


#查询学生表中姓张的学生记录
select * from tbs where name like '张%';


#查询学生表中学号、姓名、分数编号,按照分数编号升序。
select * from tb order by id desc;


#查询学生表中各分数编号对应的人数
select sid,count(*) from tbs group by sid;    


#查询成绩表中分数80-100的成绩编号、分数、等级
select * from tb where score<100 and score>80;


#查询成绩表中各等级的最低分
select grade,min(score) from tb group by grade;


#查找出成绩在70-90之间的所有学生id、姓名、成绩、等级(内连接)
SELECT tbs.id,tbs.name,tb.score,tb.grade from tb inner join tbs on tb.id=tbs.sid where score>70 and score<90;


#查找出成绩最低的学生id、姓名及成绩(子查询)
select tb.id,tbs.name,tb.grade from tb inner join tbs on tb.id=tbs.sid where tb.score=(select min(score) from tb);


#查找出优秀的学生的个数(内连接)
select count(*) from tb inner join tbs on tb.id=tbs.sid where tb.grade='优秀';


 

你可能感兴趣的:(两边关联查询操作)