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

自己做的网站放在服务器哪里python改写WORDPRESS

自己做的网站放在服务器哪里,python改写WORDPRESS,八戒logo设计网,网站开发技术负责那些或许自己的不完美才是最完美的地方,那些让自己感到不安的瑕疵,最终都会变成自己的特色。 ----------陳長生. 1.介绍 1.1.为什么要进行联合查询 在数据设计的时候,由于范式的需求,会被分为多个表,但是当我们要查询数据…

或许自己的不完美才是最完美的地方,那些让自己感到不安的瑕疵,最终都会变成自己的特色。

                                                                                                                                   ----------陳長生.


1.介绍

1.1.为什么要进行联合查询

        在数据设计的时候,由于范式的需求,会被分为多个表,但是当我们要查询数据时,单单一张表的内容是完全不够的,可能需要查询的数据覆盖多个表,那么我们就需要对表进行联合查询,也就是将多个表连接在一个表中。

1.2.如何实现联合查询

select * from 表1,表2;

select * from student,class;

将所有参与的表取他们的笛卡尔积,并将结果呈现在一张临时表中。

但是查询出来的结果有重复的值,我们需要对该表进行过滤

        可以看到,一个学生表中唐三藏的class_id对应多个班级表中的class_id,意思为原本属于1班的唐三藏现在属于1,2,3班,这种结果是不正确的,那我们在查询的时候就要声明一个班级只有一个唐三藏,其余学生也是一样,在MySql中我们称之为连接条件。

select * from student,class where student.class_id=class.class_id;

这样才是正确的结果

练习数据:

# 课程表

drop table if exists course;
create table if not exists course(
  course_id bigint primary key auto_increment,
  name varchar(20),
  student_id bigint 
);

# 分数表

drop table if exists score;
create table if not exists score(
  score double,
  student_id bigint,
  course_id bigint 
);

# 班级表

drop table if exists class;
create table if not exists class(
  class_id bigint primary key auto_increment,  
  name varchar(20),
  student_id bigint
);  

# 学生表

drop table if exists student;
create table if not exists student(
  id bigint primary key auto_increment,
  name varchar(20),
  sno bigint,
  age int,
  gender int,
  enroll_date varchar(20),
  class_id bigint
);


# 课程表
insert into course (name)values ('Java'), ('C++'), ('MySQL'), ('操作系统'), ('计算机网络'), ('数据结构');
# 班级表
insert into class(name) values ('Java001班'), ('C++001班'), ('前端001班');
# 学生表
insert into student (name, sno, age, gender, enroll_date, class_id) values 
('唐三藏', '100001', 18, 1, '1986-09-01', 1),
('孙悟空', '100002', 18, 1, '1986-09-01', 1),
('猪悟能', '100003', 18, 1, '1986-09-01', 1),
('沙悟净', '100004', 18, 1, '1986-09-01', 1),
('宋江', '200001', 18, 1, '2000-09-01', 2),
('武松', '200002', 18, 1, '2000-09-01', 2),
('李逹', '200003', 18, 1, '2000-09-01', 2),
('不想毕业', '200004', 18, 1, '2000-09-01', 2);
# 成绩表
insert into score (score, student_id, course_id) values
(70.5, 1, 1),(98.5, 1, 3),(33, 1, 5),(98, 1, 6),
(60, 2, 1),(59.5, 2, 5),
(33, 3, 1),(68, 3, 3),(99, 3, 5),
(67, 4, 1),(23, 4, 3),(56, 4, 5),(72, 4, 6),
(81, 5, 1),(37, 5, 5),
(56, 6, 2),(43, 6, 4),(79, 6, 6),
(80, 7, 2),(92, 7, 6);

2.内连接

1.select * from 表1 别名1,表2 别名2 where 连接条件 and 连接条件;(常用*)

2.select * from 表1 别名1,join 表2 别名2 on 连接条件 and 连接条件; 

2.1.查找武松的信息

select * from student s,class c where s.class_id=c.class_id and s.name='武松';

 select * from student s join class c on s.class_id=c.class_id and s.name='武松';

2.2.查询所有同学每门课的成绩以及同学的个人信息

select * from student s, score sc, course c 
where
s.id=sc.student_id
and
c.course_id=sc.course_id;

2.3.查询所有同学的总成绩以及同学的个人信息

select s.name,sum(sc.score) from student s,score sc 
where
s.id=sc.student_id
group by s.id;

3.外连接

外连接分别为左连接,右连接,全连接(MySql不支持全连接,所以这边就不讲了)

左连接:以左表为基础,将右表的数据插入左表中,若左表中有右表没有的数据,则插入的数据显示为NULL。

左连接:以右表为基础,将左表的数据插入右表中,若右表中有左表没有的数据,则插入的数据显示为NULL。

全连接:左表与右表的结合

注:不管是左表还是右表,MySql在执行的过程中都会转换为左连接,所以我们一般使用左连接

-- 左连接

select * from 左表 left join 右表 on 连接条件;

-- 右连接

select * from 左表 left join 右表 on 连接条件;

3.1.查询没有参加考试的同学信息

select * from student s(左表) 
left join
score sc (右表)
on 
s.id=sc.student_id(连接条件) 
where 
sc.score is null(判断条件);

3.2.查询没有学⽣的班级

select * from class c(左表) 
left join 
student s(右表)
on 
s.class_id=c.class_id(连接条件) 
where
s.id is nul(判断条件)l;

4.自连接

自连接就是自己与自己取笛卡尔积,可以把行转换为列,并在查询时过滤,就可以实现行与行之间的比较(MySql本身不支持行与行之间的比较,但是我们可以使用自连接实现)

select * from 表1 别名1,表1 别名2;

4.1.显示所有"MySQL"成绩⽐"JAVA"成绩⾼的成绩信息

select s1.* from 
score s1,
score s2,
course c1,
course c2

(将成绩表与课程表进行自连接)

where 
s1.student_id=s2.student_id
and 
s1.course_id=c1.course_id
and 
s2.course_id=c2.course_id

(过滤)
and 
c1.name='MySQL'
and 
c2.name='JAVA'
and 
s1.score>s2.score;

(根据题目要求进行条件判断)

5.子查询

子查询也叫嵌套查询,可以把一个查询的结果给另外一个查询语句当作条件

select * from 表名  where 条件=(select 条件 from 表名 ...);

5.1.单行子查询

5.1.1.查询与"不想毕业"同学的同班同学

-- 正常查询 (先查找不想毕业所在班级再通过班级找到同班同学)

select class_id from student where name='不想毕业' ;
select name from student where class_id=2;

-- 单行子查询(查询名字后,直接通过子查询判断class_id条件)

select name from student  

where

class_id=(select class_id from student where name='不想毕业' );

5.2.多行子查询

嵌套查询可以返回多行数据 ,使用in关键词

select * from 表名  where 条件  in(select 条件 from 表名 ...);

5.2.1.查询"MySQL"或"Java"课程的成绩信息

--正常查询

select course_id from course where name ='MySQL' or name='Java';
select * from score where course_id=1 or course_id=3 ;

--多行子查询

select * from score

where

course_id

in

(select course_id from course where name='MySQL' or name='Java'(多行数据));

5.3.多列子查询

5.3.1.查询重复录⼊的分数

先插入数据

insert into score values (70.5,1,1);

insert into score values (98.5,1,3);

insert into score values (99,3,5);

-- 多列子查询

select * from score where 
(score,student_id,course_id)
 in
  (select 
 score,student_id,course_id 
 from score
 group by 
 score,student_id,course_id 
 having count(*)>1);

5.4.在from子句中使用子查询

5.4.1.查询所有比"Java001班"平均分⾼的成绩信息

-- 先查平均分成绩

select avg(sc.score) score from student st, class c , score sc
where
st.class_id=c.class_id
and 
c.name='JAVA001班'
and 
st.id=sc.student_id;

--再查大于平均分

select * from score s,(select avg(sc.score) score from student st, class c , score sc
where
st.class_id=c.class_id
and 
c.name='JAVA001班'
and 
st.id=sc.student_id) temp
where 
s.score>temp.score;

6.合并查询

        合并查询分为 union 与union all,也就是将两张表的数据合并为一张存在临时表中,当前提是两张表的列信息一样。

6.1.union(去重)

select * from 表1 别名1 union select * from 表2 别名2;

6.2.union all(不去重)

select * from 表1 别名1 union all select * from 表2 别名2;

7.插入查询结果

        将一张表的数据插入到另一张表中,当前提是两个表的列信息一样。        

insert into 新表(列..)select ...

7.1.将student表中C++001班的学⽣复制到student1表中

-- 先创建新学生表(与原本的学生表列信息相同)

 create table new_student like student;

--复制

insert into 
new_student (name,sno,gender,enroll_date,class_id)
select 
s.name,s.sno,s.gender,s.enroll_date,s.class_id 
from 
student s,class c 
where 
s.class_id=c.class_id 
and 
c.name='C++001班' ;

http://www.dtcms.com/wzjs/572097.html

相关文章:

  • 网站的搭建流程濮阳做网站设计
  • 建设母婴网站的目的淮安市建设局网站
  • 长沙米拓建站软件开发平台软件
  • 建站行业乱象完整版青州网站建设青州
  • 服装设计公司名称深圳网站优化教程
  • wordpress 中文网站揭阳网站制作方案
  • 做三盛石材网站的公司网站建设的流程步骤
  • phpcms如何发布网站网站的技术支持
  • 深圳品牌网站推广公司可以自己做歌曲的网站
  • 成都小企业网站设计南京营销型网站建设
  • 电商网站充值消费系统怎么制作自己的网页网站首页
  • 张家港建设工程质量监督站网站怎样查询百度收录和排名情况
  • 天蓝色网站西安今天紧急通知最新
  • 建筑导航网站深圳做外贸网站
  • 网站开发给网站设置图标在什么文件中写代码淘宝运营招聘
  • 金湖企业网站制作哪个网站可以做条形码
  • 做美团类似的网站只做二手奢侈品的网站
  • 怎么做相亲网站淘宝开网店怎么运营
  • wordpress自定义简码兰州seo优化公司
  • 建网站 多少钱网站建设及运营岗位要求
  • 网站工程师培训价格深圳建设发展有限公司
  • 微网站模板多少钱seo提升关键词排名
  • 谷歌俄语网站网站开发培训学费
  • 网站怎么做可以再上面输入文字东莞网站建设推广品众
  • 网站正在建设中 公告互联网推广员
  • wordpress会员介绍页湖南seo推广方法
  • 上海网站建设 百家号上海 房地产网站建设
  • 织梦网站去除技术支持产品开发流程梳理
  • 郎溪县建设局网站海南有线微信公众号
  • 网站的基本功能网上建设网站