多表查询

在大部分情况下,我们用到的表都是彼此相关联的,所以我们会有相当大的需求用到跨表的查询,这个时候我们就需要将相关联的表连起来做多表查询。

多表查询分为连表查询和子查询,连表查询即将相关联的表连城一张表后进行查询;子查询即将一张表查询所得结果作为另一张表的条件进行二次查询,为嵌套式查询。

链表操作放在where之前,只有连完表后在内存中生成虚拟的一张连起来的表才能做条件、分组、筛选等操作。

这里我们准备两张表做演示,两张表相关联。(数据自己插吧。。。)

#创建部门表

create table department(

id int,

name varchar(20)

);

#创建与部门表相关联的员工表

create table employee(

id int primary key auto_increment,

name varchar(20),

sex enum('male','female') not null default 'male',

age int,

dep_id int

);

连表查询

连表查询分为交叉连接、内连接、外连接三种,其中外连接又分为左连接和右连接。

一、交叉连接

交叉连接生成的结果称为笛卡尔积,这个我们了解就好,基本不会用这个。

select * from employee,department;

二、内连接

找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出了正确的结果,条件写在 on 之后

select * from employee inner join department on employee.dep_id=department.id;#也可写成

select * from employee,department where employee.dep_id=department.id;;

三、外连接

外连接又分为左连接和右连接,两者可以理解为互反。

左连接以左表为准,左表有而右表没有的话用null填充。本质就是:在内连接的基础上增加左边有而右边没有的结果

select employee.id,employee.name,department.name as depart_name from employee left join department on employee.dep_id=department.id;

#找出所有员工信息,当然包括没有部门的员工

右连接以右表为准,左表有而左表没有的话用null填充。本质就是:在内连接的基础上增加右边有而左边没有的结果

select employee.id,employee.name,department.name as depart_name from employee right join department on employee.dep_id=department.id;#找出所有部门信息,包括没有员工的部门

补充:全外连接union(左连接和右连接的结合,各自没有的都用null补齐)

select * from employee left join department on employee.dep_id =department.id

union

select* from employee right join department on employee.dep_id =department.id

;

子查询

子查询就是将一个或多个查询语句进行嵌套,内层查询结果作为外层查询的条件,又是可以将内层查询所得的虚拟表进行命名,使查询更加方便。

子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字还可以包含比较运算符:= 、 !=、> 、

注:EXISTS 关键字表示存在与否使用EXISTS关键字时,内层查询语句不返回查询的记录。而是返回一个真假值True或False。当返回True时,外层查询语句将继续进行查询;当返回值为False时,外层查询语句执行,输出空。

select name,age from emp where age > (select avg(age) from emp);#查询年龄大于平均年龄的人名和年龄#查询大于部门内平均年龄的员工名、年龄

select t1.name,t1.age fromemp t1

inner join

(select dep_id,avg(age) avg_agefromemp group by dep_id) t2

on t1.dep_id=t2.dep_id

where t1.age>t2.avg_age;#查询平均年龄在25岁以上的部门名

select id,name fromdepartment

where idin(select dep_idfrom employee group by dep_id having avg(age) > 25);#查看技术部员工姓名

select name fromemployee

where dep_idin(select idfrom department where name='技术');#查看不足1人的部门名

select name fromdepartment

where idin(select dep_idfrom employee group by dep_id having count(id) <=1);#exists 举例

select * from employee where exists (select id from department where id=200);

补充一个知识点:

导出现有数据库数据:

mysqldump -u用户名 -p密码 数据库名称 >导出文件路径           # 结构+数据

mysqldump -u用户名 -p密码 -d 数据库名称 >导出文件路径       # 结构

导入现有数据库数据:

mysqldump -uroot -p密码  数据库名称 < 文件路径

练习题

/*Navicat Premium Data Transfer

Source Server : localhost

Source Server Type : MySQL

Source Server Version : 50624

Source Host : localhost

Source Database : sqlexam

Target Server Type : MySQL

Target Server Version : 50624

File Encoding : utf-8

Date: 10/21/2016 06:46:46 AM*/SET NAMES utf8;

SET FOREIGN_KEY_CHECKS= 0;-- ----------------------------

-- Table structure for`class`-- ----------------------------DROP TABLE IF EXISTS `class`;

CREATE TABLE `class` (

`cid`int(11) NOT NULL AUTO_INCREMENT,

`caption` varchar(32) NOT NULL,

PRIMARY KEY (`cid`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `class`-- ----------------------------BEGIN;

INSERT INTO `class` VALUES ('1', '三年二班'), ('2', '三年三班'), ('3', '一年二班'), ('4', '二年九班');

COMMIT;-- ----------------------------

-- Table structure for`course`-- ----------------------------DROP TABLE IF EXISTS `course`;

CREATE TABLE `course` (

`cid`int(11) NOT NULL AUTO_INCREMENT,

`cname` varchar(32) NOT NULL,

`teacher_id`int(11) NOT NULL,

PRIMARY KEY (`cid`),

KEY `fk_course_teacher` (`teacher_id`),

CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `course`-- ----------------------------BEGIN;

INSERT INTO `course` VALUES ('1', '生物', '1'), ('2', '物理', '2'), ('3', '体育', '3'), ('4', '美术', '2');

COMMIT;-- ----------------------------

-- Table structure for`score`-- ----------------------------DROP TABLE IF EXISTS `score`;

CREATE TABLE `score` (

`sid`int(11) NOT NULL AUTO_INCREMENT,

`student_id`int(11) NOT NULL,

`course_id`int(11) NOT NULL,

`num`int(11) NOT NULL,

PRIMARY KEY (`sid`),

KEY `fk_score_student` (`student_id`),

KEY `fk_score_course` (`course_id`),

CONSTRAINT `fk_score_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`cid`),

CONSTRAINT `fk_score_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`)

) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `score`-- ----------------------------BEGIN;

INSERT INTO `score` VALUES ('1', '1', '1', '10'), ('2', '1', '2', '9'), ('5', '1', '4', '66'), ('6', '2', '1', '8'), ('8', '2', '3', '68'), ('9', '2', '4', '99'), ('10', '3', '1', '77'), ('11', '3', '2', '66'), ('12', '3', '3', '87'), ('13', '3', '4', '99'), ('14', '4', '1', '79'), ('15', '4', '2', '11'), ('16', '4', '3', '67'), ('17', '4', '4', '100'), ('18', '5', '1', '79'), ('19', '5', '2', '11'), ('20', '5', '3', '67'), ('21', '5', '4', '100'), ('22', '6', '1', '9'), ('23', '6', '2', '100'), ('24', '6', '3', '67'), ('25', '6', '4', '100'), ('26', '7', '1', '9'), ('27', '7', '2', '100'), ('28', '7', '3', '67'), ('29', '7', '4', '88'), ('30', '8', '1', '9'), ('31', '8', '2', '100'), ('32', '8', '3', '67'), ('33', '8', '4', '88'), ('34', '9', '1', '91'), ('35', '9', '2', '88'), ('36', '9', '3', '67'), ('37', '9', '4', '22'), ('38', '10', '1', '90'), ('39', '10', '2', '77'), ('40', '10', '3', '43'), ('41', '10', '4', '87'), ('42', '11', '1', '90'), ('43', '11', '2', '77'), ('44', '11', '3', '43'), ('45', '11', '4', '87'), ('46', '12', '1', '90'), ('47', '12', '2', '77'), ('48', '12', '3', '43'), ('49', '12', '4', '87'), ('52', '13', '3', '87');

COMMIT;-- ----------------------------

-- Table structure for`student`-- ----------------------------DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (

`sid`int(11) NOT NULL AUTO_INCREMENT,

`gender`char(1) NOT NULL,

`class_id`int(11) NOT NULL,

`sname` varchar(32) NOT NULL,

PRIMARY KEY (`sid`),

KEY `fk_class` (`class_id`),

CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`cid`)

) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `student`-- ----------------------------BEGIN;

INSERT INTO `student` VALUES ('1', '男', '1', '理解'), ('2', '女', '1', '钢蛋'), ('3', '男', '1', '张三'), ('4', '男', '1', '张一'), ('5', '女', '1', '张二'), ('6', '男', '1', '张四'), ('7', '女', '2', '铁锤'), ('8', '男', '2', '李三'), ('9', '男', '2', '李一'), ('10', '女', '2', '李二'), ('11', '男', '2', '李四'), ('12', '女', '3', '如花'), ('13', '男', '3', '刘三'), ('14', '男', '3', '刘一'), ('15', '女', '3', '刘二'), ('16', '男', '3', '刘四');

COMMIT;-- ----------------------------

-- Table structure for`teacher`-- ----------------------------DROP TABLE IF EXISTS `teacher`;

CREATE TABLE `teacher` (

`tid`int(11) NOT NULL AUTO_INCREMENT,

`tname` varchar(32) NOT NULL,

PRIMARY KEY (`tid`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `teacher`-- ----------------------------BEGIN;

INSERT INTO `teacher` VALUES ('1', '张磊老师'), ('2', '李平老师'), ('3', '刘海燕老师'), ('4', '朱云海老师'), ('5', '李杰老师');

COMMIT;

SET FOREIGN_KEY_CHECKS= 1;

表结构和数据

表结构和数据

查询“生物”课程比“物理”课程成绩高的所有学生的学号;

查询平均成绩大于60分的同学的学号和平均成绩;

查询所有同学的学号、姓名、选课数、总成绩;

查询姓“李”的老师的个数;

查询没学过“叶平”老师课的同学的学号、姓名;

查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

查询学过“叶平”老师所教的所有课的同学的学号、姓名;

查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;

查询有课程成绩小于60分的同学的学号、姓名;

查询没有学全所有课的同学的学号、姓名;

查询至少有一门课与学号为“001”的同学所学相同的同学的学号和姓名;

查询至少学过学号为“001”同学所有课的其他同学学号和姓名;

查询和“002”号的同学学习的课程完全相同的其他同学学号和姓名;

删除学习“叶平”老师课的score表记录;

向SC表中插入一些记录,这些记录要求符合以下条件:①没有上过编号“002”课程的同学学号;②插入“002”号课程的平均成绩;

按平均成绩从低到高 显示所有学生的“语文”、“数学”、“英语”三门的课程成绩,按如下形式显示: 学生ID,语文,数学,英语,有效课程数,有效平均分;

查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分;

按各科平均成绩从低到高和及格率的百分数从高到低顺序;

课程平均分从高到低显示(现实任课老师);

查询各科成绩前三名的记录:(不考虑成绩并列情况)

查询每门课程被选修的学生数;

查询出只选修了一门课程的全部学生的学号和姓名;

查询男生、女生的人数;

查询姓“张”的学生名单;

查询同名同姓学生名单,并统计同名人数;

查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列;

查询平均成绩大于85的所有学生的学号、姓名和平均成绩;

查询课程名称为“数学”,且分数低于60的学生姓名和分数;

查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;

求选了课程的学生人数

查询选修“杨艳”老师所授课程的学生中,成绩最高的学生姓名及其成绩;

查询各个课程及相应的选修人数;

查询不同课程但成绩相同的学生的学号、课程号、学生成绩;

查询每门课程成绩最好的前两名;

检索至少选修两门课程的学生学号;

查询全部学生都选修的课程的课程号和课程名;

查询没学过“叶平”老师讲授的任一门课程的学生姓名;

查询两门以上不及格课程的同学的学号及其平均成绩;

检索“004”课程分数小于60,按分数降序排列的同学学号;

删除“002”同学的“001”课程的成绩;

查询“生物”课程比“物理”课程成绩高的所有学生的学号;

思路:

获取所有有生物课程的人(学号,成绩)-临时表

获取所有有物理课程的人(学号,成绩)-临时表

根据【学号】连接两个临时表:

学号 物理成绩 生物成绩

然后再进行筛选

select A.student_id,sw,ty from

(select student_id,num as sw from score left join course on score.course_id= course.cid where course.cname = '生物') as A

left join

(select student_id,num as ty from score left join course on score.course_id= course.cid where course.cname = '体育') as B

on A.student_id= B.student_id where sw > if(isnull(ty),0,ty);

查询平均成绩大于60分的同学的学号和平均成绩;

思路:

根据学生分组,使用avg获取平均值,通过having对avg进行筛选

select student_id,avg(num) from score group by student_id having avg(num)> 60查询所有同学的学号、姓名、选课数、总成绩;

select score.student_id,sum(score.num),count(score.student_id),student.sname

from

score left join student on score.student_id=student.sid

group by score.student_id

查询姓“李”的老师的个数;

select count(tid) from teacher where tname like'李%'select count(1) from (select tid from teacher where tname like '李%') as B

查询没学过“叶平”老师课的同学的学号、姓名;

思路:

先查到“李平老师”老师教的所有课ID

获取选过课的所有学生ID

学生表中筛选

select* from student where sid not in(

select DISTINCT student_id from score where score.course_idin(

select cid from course left join teacher on course.teacher_id= teacher.tid where tname = '李平老师')

)

查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

思路:

先查到既选择001又选择002课程的所有同学

根据学生进行分组,如果学生数量等于2表示,两门均已选择

select student_id,sname from

(select student_id,course_id from score where course_id= 1 or course_id = 2) as B

left join student on B.student_id= student.sid group by student_id HAVING count(student_id) > 1查询学过“叶平”老师所教的所有课的同学的学号、姓名;

同上,只不过将001和002变成in(叶平老师的所有课)

查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;

同第1题

查询有课程成绩小于60分的同学的学号、姓名;

select sid,sname from student where sidin(

select distinct student_id from score where num< 60)

查询没有学全所有课的同学的学号、姓名;

思路:

在分数表中根据学生进行分组,获取每一个学生选课数量

如果数量==总课程数量,表示已经选择了所有课程

select student_id,sname

from score left join student on score.student_id=student.sid

group by student_id HAVING count(course_id)= (select count(1) from course)

查询至少有一门课与学号为“001”的同学所学相同的同学的学号和姓名;

思路:

获取001同学选择的所有课程

获取课程在其中的所有人以及所有课程

根据学生筛选,获取所有学生信息

再与学生表连接,获取姓名

select student_id,sname, count(course_id)

from score left join student on score.student_id=student.sid

where student_id!= 1 and course_id in (select course_id from score where student_id = 1) group by student_id

查询至少学过学号为“001”同学所有课的其他同学学号和姓名;

先找到和001的学过的所有人

然后个数 = 001所有学科 ==》 其他人可能选择的更多

select student_id,sname, count(course_id)

from score left join student on score.student_id=student.sid

where student_id!= 1 and course_id in (select course_id from score where student_id = 1) group by student_id having count(course_id) = (select count(course_id) from score where student_id = 1)

查询和“002”号的同学学习的课程完全相同的其他同学学号和姓名;

个数相同

002学过的也学过

select student_id,sname from score left join student on score.student_id= student.sid where student_id in(

select student_id from score where student_id!= 1 group by student_id HAVING count(course_id) = (select count(1) from score where student_id = 1)

) and course_idin (select course_id from score where student_id = 1) group by student_id HAVING count(course_id) = (select count(1) from score where student_id = 1)

删除学习“叶平”老师课的score表记录;delete from score where course_id in(

select cid from course left join teacher on course.teacher_id= teacher.tid where teacher.name = '叶平')

向SC表中插入一些记录,这些记录要求符合以下条件:①没有上过编号“002”课程的同学学号;②插入“002”号课程的平均成绩;

思路:

由于insert 支持

inset into tb1(xx,xx) select x1,x2 from tb2;

所有,获取所有没上过002课的所有人,获取002的平均成绩

insert into score(student_id, course_id, num) select sid,2,(select avg(num) from score where course_id = 2)

from student where sid notin(

select student_id from score where course_id= 2)

按平均成绩从低到高 显示所有学生的“语文”、“数学”、“英语”三门的课程成绩,按如下形式显示: 学生ID,语文,数学,英语,有效课程数,有效平均分;

select sc.student_id,

(select num from score left join course on score.course_id= course.cid where course.cname = "生物" and score.student_id=sc.student_id) as sy,

(select num from score left join course on score.course_id= course.cid where course.cname = "物理" and score.student_id=sc.student_id) as wl,

(select num from score left join course on score.course_id= course.cid where course.cname = "体育" and score.student_id=sc.student_id) as ty,

count(sc.course_id),

avg(sc.num)

from score as sc

group by student_id desc

查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分;

select course_id, max(num) as max_num, min(num) as min_num from score group by course_id;

按各科平均成绩从低到高和及格率的百分数从高到低顺序;

思路:casewhen .. then

select course_id, avg(num) as avgnum,sum(case when score.num > 60 then 1 else 0 END)/count(1)*100 as percent from score group by course_id order by avgnum asc,percent desc;

课程平均分从高到低显示(现实任课老师);

select avg(if(isnull(score.num),0,score.num)),teacher.tname from course

left join score on course.cid=score.course_id

left join teacher on course.teacher_id=teacher.tid

group by score.course_id

查询各科成绩前三名的记录:(不考虑成绩并列情况)

select score.sid,score.course_id,score.num,T.first_num,T.second_num from score left join

(

select

sid,

(select num from score as s2 where s2.course_id= s1.course_id order by num desc limit 0,1) as first_num,

(select num from score as s2 where s2.course_id= s1.course_id order by num desc limit 3,1) as second_num

from

score as s1

) as T

on score.sid=T.sid

where score.num<= T.first_num and score.num >=T.second_num

查询每门课程被选修的学生数;

select course_id, count(1) from score group by course_id;

查询出只选修了一门课程的全部学生的学号和姓名;

select student.sid, student.sname, count(1) from score

left join student on score.student_id=student.sid

group by course_id having count(1) = 1查询男生、女生的人数;

select*from

(select count(1) as man from student where gender='男') as A ,

(select count(1) as feman from student where gender='女') as B

查询姓“张”的学生名单;

select sname from student where sname like'张%';

查询同名同姓学生名单,并统计同名人数;

select sname,count(1) as count from student group by sname;

查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列;

select course_id,avg(if(isnull(num), 0,num)) as avg from score group by course_id order by avg asc,course_id desc;

查询平均成绩大于85的所有学生的学号、姓名和平均成绩;

select student_id,sname, avg(if(isnull(num), 0 ,num)) from score left join student on score.student_id =student.sid group by student_id;

查询课程名称为“数学”,且分数低于60的学生姓名和分数;

select student.sname,score.num from score

left join course on score.course_id=course.cid

left join student on score.student_id=student.sid

where score.num< 60 and course.cname = '生物'查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;

select* from score where score.student_id = 3 and score.num > 80求选了课程的学生人数

select count(distinct student_id) from score

select count(c) from (

select count(student_id) as c from score group by student_id) as A

查询选修“杨艳”老师所授课程的学生中,成绩最高的学生姓名及其成绩;

select sname,num from score

left join student on score.student_id=student.sid

where score.course_idin (select course.cid from course left join teacher on course.teacher_id = teacher.tid where tname='张磊老师') order by num desc limit 1;

查询各个课程及相应的选修人数;

select course.cname,count(1) from score

left join course on score.course_id=course.cid

group by course_id;

查询不同课程但成绩相同的学生的学号、课程号、学生成绩;

select DISTINCT s1.course_id,s2.course_id,s1.num,s2.num from score as s1, score as s2 where s1.num= s2.num and s1.course_id !=s2.course_id;

查询每门课程成绩最好的前两名;

select score.sid,score.course_id,score.num,T.first_num,T.second_num from score left join

(

select

sid,

(select num from score as s2 where s2.course_id= s1.course_id order by num desc limit 0,1) as first_num,

(select num from score as s2 where s2.course_id= s1.course_id order by num desc limit 1,1) as second_num

from

score as s1

) as T

on score.sid=T.sid

where score.num<= T.first_num and score.num >=T.second_num

检索至少选修两门课程的学生学号;

select student_id from score group by student_id having count(student_id)> 1查询全部学生都选修的课程的课程号和课程名;

select course_id,count(1) from score group by course_id having count(1) = (select count(1) from student);

查询没学过“叶平”老师讲授的任一门课程的学生姓名;

select student_id,student.sname from score

left join student on score.student_id=student.sid

where score.course_id notin(

select cid from course left join teacher on course.teacher_id= teacher.tid where tname = '张磊老师')

group by student_id

查询两门以上不及格课程的同学的学号及其平均成绩;

select student_id,count(1) from score where num < 60 group by student_id having count(1) > 2检索“004”课程分数小于60,按分数降序排列的同学学号;

select student_id from score where num< 60 and course_id = 4order by num desc;

删除“002”同学的“001”课程的成绩;delete from score where course_id = 1 and student_id = 2

参考答案

mysql数据库操作多表查询_MySQL数据库查询操作进阶——多表查询相关推荐

  1. mysql数据库实验查询_MySQL数据库表数据的查询操作实验

    实验3.MySQL数据库表数据的查询操作实验(1) 一.实验目的 掌握SELECT 语句的基本语法格式. 掌握SELECT 语句的执行方法. 掌握SELECT 语句的 GROUP BY 和 ORDER ...

  2. mysql 修复表字段_mysql数据库总结一【安装,配置,表操作,字段操作,增删改, 备份-恢复,select查询】...

    服务器端安装 安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入 sudo apt-get install mysql-server 启动服务 sudo service mysql star ...

  3. mysql数据库实验3查询_MySQL数据库实验:任务三 数据库的单表查询设计

    任务三 数据库的单表查询设计 文章目录任务三 数据库的单表查询设计[实训目的与要求][实训原理][实训步骤]一.简单查询二.按条件查询1.比较大小查询2.带in关键字的查询(确定集合)3.带BETWE ...

  4. mysql 回退查询_MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题...

    Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...

  5. mysql修改级联表数据_MySQL数据库 外键,级联, 修改表的操作

    1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...

  6. MySQL数据库应用 多表查询_mysql数据库-多表查询

    今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: ​ 数据库的创建 : create ...

  7. mysql 数据库分表查询_mysql数据库分表及实现

    项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多.以至于查询书读变慢,而且由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性能瓶颈. 当出现这种情况时,我们可以考虑分表,即将单 ...

  8. mysql所有班级名称和人数_mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...

    mysql数据库优化课程---12.mysql嵌套和链接查询(查询user表中存在的所有班级的信息?) 一.总结 一句话总结: in:distinct:select * from class wher ...

  9. mysql锁表查询_Mysql数据库锁情况下开启备份导致数据库无法访问处理分享

    [背景简介] MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),因为其速度.可靠性和适应性而备受关注.大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择.mysql ...

最新文章

  1. FineReport中如何用JavaScript自定义地图标签
  2. java el jstl_java -EL技术JSTL技术
  3. 为什么有些xpath绝对路径拿不到数据_我写的Xpath 为什么爬取不到内容
  4. python awk 读文件_测试python awk sed 读取文件指定位置时的性能
  5. kafka监控linux脚本,zabbix监控kafka
  6. qq接入和分享android,Android社交登录授权、分享SDK,支持微信、微博和QQ
  7. 计算机二级vb常考知识点,计算机二级VB考试重点考点
  8. 用jquery模仿的a的title属性
  9. ArcGIS制图表达Representation-制图表达原理
  10. 【渝粤教育】国家开放大学2018年春季 7385-21T公共关系学(本) 参考试题
  11. (转)高频交易的外部网络连接技术
  12. 银河麒麟系统PDF转Word
  13. 内核SIP ALG学习指引和基本实现原理(分析BCM方案实现)
  14. 安卓中Paint与Canvas用法
  15. 前端播放rtmp协议的视频流文件
  16. 关于不使用firefly补丁对系统进行美化的探讨(转)
  17. 【每天学点管理】—如何提高团队的执行力
  18. AliTigerTally wtoken算法分析
  19. 反Radon变换 C++实现
  20. 2012年数学建模国赛D题(机器人避障问题)优秀论文.doc

热门文章

  1. HDU - Number Sequence(KMP)
  2. 第二十八节:隧道代理阿布云代理
  3. The 15th Chinese Northeast Collegiate Programming Contest 题解(CCPC压力测试?
  4. 微信拍一拍什么意思?怎么使用微信新功能拍一拍
  5. opencv处理透明图片
  6. Sql表结构及数据对比工具
  7. 如何将手机中的视频做成动图?手机端视频转gif怎么操作
  8. 十二天宫之射手女生篇
  9. 小红书矩阵营销是什么?多账号如何管理?浅谈小红书矩阵玩法
  10. Swift调用相机和系统相册