首页
学习
活动
专区
圈层
工具
发布

Mysql查询语句之连表查询和增删改查语句补充

查询 我们的数据是这样的。 ? 发现class_id是一个数字,这是因为我们在设计时,将学生表和班级表分开设计的。 ? 但是如果我们偏偏想要查询这个人是几班的,怎么办?...连表查询 方式一,where连表 语法 SELECT * from 表1,表2 WHERE 表1.外键列=表2.被外键列; SELECT 表1.列1,表1.列2,表2.列1,... from 表1,表2...在一般连表操作中,使用的也是left进行连表。...其实这和where连表是一样的。 方式三,inner连表 inner和left是差不多的,只不过left是正向连表,inner是反向连表。 就像学生表和课程表。...总结 这章有点像收尾部分,补充了连表查询,后续又补充了Mysql的增删改查。 连表查询要区分一下left和inner的区别,一个是正向连,一个是反向连。

3.6K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL连表查询练习题

    个人博客:"DBA老司机带你删库跑路" 建库 库名:linux50 字符集:utf8 校验规则:utf8_general_ci  建表 ---- 表一 表名:student(学生表) 字段...(数据自定义) 2.将曾导、徐导、李导信息插入教师表中(数据自定义) 3.将数学、语文、英语学科插入到课程表中(数据自定义) 4.将分数插入到成绩表中(数据自定义) 查询练习: 1.查询student表中的所有记录的...2.查询教师所有的单位即不重复的depart列。 3.查询student表的所有记录。 4.查询score表中成绩在60到80之间的所有记录。 5.查询score表中成绩为85,86或88的记录。...6.查询student表中1班或性别为“女”的同学记录。 7.以class降序查询Student表的所有记录。 8.以cno升序、mark降序查询Score表的所有记录 9.查询2班的学生人数。...10.查询”曾志高翔“教师任课的学生成绩。 11.查询语文课程所有男生的成绩并且查出对应课程的教师名,职称,及所在部门。 12.把11题查出的成绩按照降序排序。

    2.3K30

    MySQL库表操作以及简单查询语句

    一、结构化查询语句 SQL是结构化查询语言,它是关系型数据库的通用语言。...SQL主要可以分为一下三种类型: DDL(Data Definition Languages)语句:数据定义语句,这些语句定义了不同的数据库、表、列、索引等对象。...这些语句定义了数据库、表、字段、用户的访问权限和安全级别,常用的语句关键字包括grant、revoke 二、库操作 1. 查询数据库: show databases; 2....选择数据库 use testdb; 三、表操作 因为业务层操作内存,MySQL操作磁盘,数据库永远是最先达到性能瓶颈,我们不能把过多的逻辑操作放在数据库上,逻辑操作应该在业务层做。...查询一下age 由于age没有添加索引,所以数据库引擎做的是整表搜索,效率很低 可以通过limit加快查找 使用大数据证实limit加快查找 建表、插入数据的过程见六 这里只使用了100000条数据,如果使用百万

    1.2K41

    MYSQL一次千万级连表查询优化

    网上搜索得知内联表查询一般的执行过程是: 1、执行FROM语句 2、执行ON过滤 3、添加外部行 4、执行where条件过滤 5、执行group by分组语句 6、执行having 7、select列表...8、执行distinct去重复数据 9、执行order by字句 10、执行limit字句 这里得知,Mysql 是先执行内联表然后再进行条件查询的最后再分组,那么想想这SQL的条件查询和分组都只是一个表的...我们进行内联查询前,最好能限制连的表大小的条件都先用上了,同时尽量让条件查询和分组执行的表尽量小。感谢您们的阅读,如果有更好的方案,欢迎留言交流!!! 估计到这里,你猜这里就是全部的优化方案?...还有其他方案 那么我们怎么优化呢,这里用的是内联表查询,大家都是知道子查询完全是可以代替内联表查询的,只不过SQL语句复杂了不少,那么我们分析一下这SQL,两个表分表提供了什么?...总结: 其实这个优化方案跟我上一篇文章MYSQL一次千万级连表查询优化(一)解决原理一样,都是解决了内联表后数据就变得臃肿了,这时候再进行条件查询和分组就太吃亏了,于是我们可以先对单表进行条件处理,再进行连表查询

    4.4K51

    MySQL数据库基础查询语句笔记

    普通查询 最基本的查询语句是由 CELECT 和 FROM 关键字组成的 *:代表所有字段的意思 SELECT 语句屏蔽了物理层的操作,用户不比关心数据的真是存储,交由数据库高效的查询数据 通常情况下...SELECT子句中使用了表达式,name这列的名字就默认为表达式,因此需要一中对列明重命名的机制 SELECT empno, sal*12 AS "income" FROM t_emp; 查询语句的子句执行顺序...LIMIT 10; # 等价于 SELECT empno,ename FROM T_emp LIMIT 0,10; 执行顺序:FROM -> SELECT -> LIMIT 结果排序 如果没有设置,查询语句不会对结果集进行排序...如果排序列的是数字类型,数据库就按照数字大小排序,如果是日期类型,就按照日期大小排序,如果是字符串就按照字符串集序号排序。...10部门里边底薪超过2000的员工 四类运算符 WHERE语句中的条件运算会用到一下四种运算符: 算数运算符 MySQL ifnull()函数 - MySQL教程™ (yiibai.com) IFNULL

    4.8K50

    MySQL之数据库基本查询语句

    SELECT 基本查询语句 查询单个列 #查询Author表name列的值 select name from Author; 查询多个列 #查询Author表id,name两列的值 select id,...name from Author; 查询所有列 #查询Author表所有列的信息 select * from Author; 查询不同的行(distinct去重) #查询Article表所有作者 select...distinct author from Article; 限制查询结果(limit分页) #查询Article表前3行的文章类型 select type from Article limit 1,3...Article信息 select * from Article order by articles desc limit 3; 根据字符集进行排序 #如果字符集采用的是 gbk(汉字编码字符集),直接在查询语句后边添加...附:Author表 ? Article表 ? ArticleDetail表 ? 最后是今天的分享:Author、Article、ArticleDetail三张表一键建表SQL语句

    6.9K40

    MySQL 模糊查询:MySQL 数据库 like 语句通配符模糊查询小结

    MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 数据库 like 语句通配符模糊查询小结...文章目录 MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 数据库 like 语句通配符模糊查询小结...前言 一、分析 SQL 语句 1.1、普通 SQL 语句的查询分析 1.2、普通 SQL 查询语句如何处理 1.3、使用 like 通配符模糊查询语句分析 二、like 语句使用通配符模糊查询剖析 2.1...、like 语句的应用场景 2.2、模糊查询剖析 2.3、正确语句 三、MyBatis like 模糊查询及关键字区分 总结 ---- 前言 今天在使用 MySQL 语句执行增删改查操作时,控制台报出了以下错误...同时补充了在 MyBatis 中对模糊查询的操作以及不同关键字的区分。代码之路漫漫,望诸君细致。 ---- 我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!

    18.7K40

    Mysql查询语句优化

    分析查询 想要对一条查询语句进行优化,首先要对其进行分析,MySQL提供了这个机制, 可以通过explain sql 或者desc sql的语法去获取MySQL对某一条语句的执行计划(MySQL优化之后的...改写子查询 子查询想必关联查询,性能一般是较差的,因此可以将子查询改为关联表查询....添加汇总表 如果需要经常的进行count,那么我们应该额外添加一张表或者一列来记录这个数值,而不是每次进行查询. 优化关联查询 确保on/where语句中的列上有索引....STRAIGHT_JOIN 该hint告诉MySQL按照语句中的顺序进行多个表的关联操作,不要进行”优化”.select STRAIGHT_JOIN * from table1 join table2....SQL_BUFFER_RESULT 该hint告诉mysql,将查询结果放入到临时表中,然后尽快释放表锁.SELECT SQL_BUFFER_RESULT * FROM TABLE ...; SQL_BIG_RESULT

    7.4K20

    MYSQL基础查询语句

    SELECT 语句基础选择全部列SELECT *FROM departments; -- 表名选择特定的列SELECT department_id, location_id -- 列名,属性FROM departments...对的,就是在 SELECT 查询结果中增加一列固定的常数列。这列的取值是我们指定的,而不是从数据表中动态取出的。你可能会问为什么我们还要对常数进行查询呢?...SQL 中的 SELECT 语法的确提供了这个功能,一般来说我们只从一个表中查询数据,通常不需要增加一个固定的常数列,但如果我们想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数。...比如说,我们想对 employees 数据表中的员工姓名进行查询,同时增加一列字段corporation,这个字段固定值为“腾讯云”,去除重复行默认情况下,查询会返回全部行,包括重复行。...在 MySQL 中,空值是占用空间的。表结构查询使用 DESCRIBE 或 DESC 命令表示表结构。

    2K10

    Mysql常用查询语句

    SELECT * FROM tb_stu WHERE date = ‘2011-04-08’ 注:不同数据库对日期型数据存在差异: : (1)MySQL:SELECT * from tb_name...’ 完全匹配的方法”%%”表示可以出现在任何位置 八查询前n条记录 SELECT * FROM tb_name LIMIT 0,$N; limit语句与其他语句,如order by等语句联合使用,...+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num 十二查询指定时间段的数据 SELECT  要查找的字段 FROM 表名...SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age; 十五查询结果不显示重复记录 SELECT DISTINCT 字段名 FROM 表名... 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询 十七显示数据表中重复的记录和记录条数 SELECT  name

    7.5K20

    Mysql语句查询优化

    其实对Mysql查询语句进行优化是一件非常有必要的事情。 如何查看当前sql语句的执行效率呢?...EXPLAIN显示了mysql如何使用索引来处理select语句以及连接表。也就是校验sql语句是否使用了索引,以及sql语句的查询效率。...可以为相关的域从where语句中选择一个合适的语句 key: 实际使用的索引。如果为null,则没有使用索引。很少的情况下,mysql会选择优化不足的索引。...在不损失精确性的情况下,长度越短越好 ref:显示索引的哪一列被使用了,如果可能的话,是一个常数 rows:mysql认为必须检查的用来返回请求数据的行数 extra:关于mysql如何解析查询的额外信息...type:ALL 表示全表查询,这在sql查询中是杜绝的。那怎么优化type至少达到ref呢?

    6.8K10

    MySQL连表update操作

    MySQL连表update操作 一、介绍 记录一下MySQL连表后进行update的操作,这可以一口气同时改动到多张表的数据,可以取到关联表的数据进行更新。...; 模型如下图 2)连表更新 如果班级里张三比较调皮,在班级座位后面睡觉被校长发现了,要把这位学生和所在班级的评分,各扣10分 如果是以前,我可能是写两条update语句的sql,现在的话,可以关联起来这样写...,如下 ---- 首先我们可以先写一个这样的sql,通过学生名称查询到学生分数,所在班级分数,那么这条sql就长这样 select t1.grade as "学生分数", t2.grade as...`name` = '张三'; ---- 那么此时,我们只需要做一点小小的改动,就可以把上述sql改为连表update的了。...`name` = '张三'; 执行完成就可以了,再查询看看效果 三、最后 我是半月,你我一同共勉!!!

    6.2K30
    领券