前言:
如今咱们对“mysql联动查询”大致比较看重,朋友们都需要知道一些“mysql联动查询”的相关知识。那么小编同时在网摘上收集了一些有关“mysql联动查询””的相关内容,希望姐妹们能喜欢,姐妹们一起来了解一下吧!sql语句:增删改查,其中 增、删、改只用于单表
多表级联删除,级联更新有时候会出现(例如:删除父类别,子类别也会被删除)
多表查询:多表联查、子查询
建表语句: 一般不需要语句建表,语句了解认识即可,手动在mysql软件中 右键,点击设计表即可。
CREATE TABLE oper_user( id INT PRIMARY KEY, name VARCHAR(255) NOT NULL,);CREATE TABLE 表名( 字段1 字段类型 字段条件, name VARCHAR(255) NOT NULL,);PRIMARY KEY // 关键字VARCHAR(255) // 字段精度NOT NULL // 不能为空
举例 教室表和学生表 进行查询:
// 教室表:CREATE TABLE classroom( id INT PRIMARY KEY, // 教室id name VARCHAR(255) NOT NULL // 教室名字)// 学生表CREATE TABLE student( id INT PRIMARY KEY, // 学生id name VARCHAR(255) NOT NULL, // 学生名字 score DOUBLE(10,2), // 学生成绩 classid INT //教室id)// DOUBLE(10,2)表示 数字最大共10位,小数位最多有两位// 大写的单词代表关键字
教室表:
id
name
1
教室一
2
教室二
学生表:
id
name
score
classid
1
张三
43
1
2
李四
54
1
3
王五
21
2
4
小二
12
2
多表联查:1。同时查询多张表:
笛卡尔积:(a表有m条记录,b表有n条记录,会返回m*n条记录);select * from `classroom`,`student` // 查两个表的所有字段 会返回全排列组合(没有意义)如果查询n张表,必须指定n-1个公共列的条件,否则就会产生笛卡尔积,上面教室表和学生表中教室id即为公共列select * from `classroom`,`student` where classroom.id=student.classid// 查询教室表中的id等于学生表中的classid的数据select classroom.id from `classroom`,`student` where classroom.id=student.classid// 查询教室表中的id等于学生表中的classid的教室idselect score from `classroom`,`student` where classroom.id=student.classid// 查询教室表中的id等于学生表中的classid的成绩,最好是用student.score
查询教室一的学生信息:
select student.* from `classroom`,`student` where classroom.id=student.classid and classroom.name='教室一'// 查询教室表和学生表中教室名叫 教室一 的,学生信息// student.* 即为只返回符合条件的学生表里的信息即// * 返回符合条件的学生表和教室表的信息// classroom.* 同理为返回符合条件的教室表里的信息
查询张三的教室信息:
select classroom.* from `classroom`,`student` where classroom.id=student.classid and student.name='张三'
假如现在教室表又增加一个教室三:
id
name
1
教室一
2
教室二
3
教室三
但是学生表里没有在教室三的学生:
id
name
score
classid
1
张三
43
1
2
李四
54
1
3
王五
12
2
4
小二
21
2
//这个时候使用学生id和教室id对应是差不到教室三的select * from `classroom`,`student` where classroom.id=student.classid
多表联查:2。左连接:以左表为基准(左表是主表)、左表中满足条件的记录会查询出来,不满足条件的也会被查询出来;
select * from `classroom` left join `student` on classroom.id=student.classid// 满足学生id和教室id相等的数据,教室没有学生的也会显示出来
返回结果:
id
name
id1
name1
score
classid
1
教室一
1
张三
43
1
1
教室一
2
李四
54
1
2
教室二
3
王五
21
2
2
教室二
4
小二
12
2
3
教室三
null
null
null
null
多表联查:2。右连接:以右表为基准(右表是主表)、右表中满足条件的记录会查询出来,不满足条件的也会被查询出来;
select * from `student` right join `classroom` on classroom.id=student.classid// 满足学生id和教室id相等的数据,教室没有学生的也会显示出来
结果同上
多表联查:3。内连接:查询满足条件的数据
select * from `student` inner join `classroom` on classroom.id=student.classid
标签: #mysql联动查询