首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

138 张图带你 MySQL 入门

SQL 不只是 MySQL 中特有的一门语言,大多数关系型数据库都支持这门语言。 下面我们就来一起学习一下这门非常重要的语言。...❝内连接:选出两张表中互相匹配的记录; 外连接:不仅选出匹配的记录,也会选出不匹配的记录;❞ 外连接分为两种 左外连接:筛选出包含左表的记录并且右表没有和它匹配的记录 右外连接:筛选出包含右表的记录甚至左表没有和它匹配的记录...可以看出,job 表中并没有 waiter 和 manager 的角色,但是也被查询出来了。...上述结果是查询 job 表中的 type 字段和 job_type 表中的 type 字段,并把它们进行汇总,可以看出 UNION ALL 只是把所有的结果都列出来了 使用 UNION 的 SQL 语句如下...+ 用于获得一个或多个值的和 - 用于从一个值减去另一个值 * 用于两数相乘,得到两个或多个值的乘积 / 用一个值除以另一个值得到商 % 用于一个值除以另一个值得到余数 在除法和取余需要注意一点,如果除数是

1.1K40

138 张图带你 MySQL 入门

SQL 不只是 MySQL 中特有的一门语言,大多数关系型数据库都支持这门语言。 下面我们就来一起学习一下这门非常重要的语言。...❝内连接:选出两张表中互相匹配的记录; 外连接:不仅选出匹配的记录,也会选出不匹配的记录; ❞ 外连接分为两种 左外连接:筛选出包含左表的记录并且右表没有和它匹配的记录 右外连接:筛选出包含右表的记录甚至左表没有和它匹配的记录...可以看出,job 表中并没有 waiter 和 manager 的角色,但是也被查询出来了。...上述结果是查询 job 表中的 type 字段和 job_type 表中的 type 字段,并把它们进行汇总,可以看出 UNION ALL 只是把所有的结果都列出来了 使用 UNION 的 SQL 语句如下...+ 用于获得一个或多个值的和 - 用于从一个值减去另一个值 * 用于两数相乘,得到两个或多个值的乘积 / 用一个值除以另一个值得到商 % 用于一个值除以另一个值得到余数 在除法和取余需要注意一点,如果除数是

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

    mysql和sqlserver的区别_sql server和MySQL

    需要为表指定存储类型 6、sql server识别符是[],[type]表示他区别于关键字,但是mysql却是 `,也就是按键1左边的那个符号 7、sql server支持getdate()方法获取当前时间日期...因此,开发人员可以期待MySQL和SQL Server之间的一些相似之处,例如使用表来存储数据,引用主键和外键,以及单个环境或服务器中的多个数据库。...存储引擎 MySQL和SQL Server之间有时会忽略的另一个重大差异是它们存储数据的方式。SQL Server使用由Microsoft开发的单个存储引擎,而不是为MySQL提供的多个引擎。...另一个是MyISAM。 查询取消 没有多少人知道这一点,但MySQL和SQL Server之间潜在的突破性差异是MySQL不允许您在执行中取消查询。...安全性 从表面上看,在比较MySQL和SQL Server之间的安全性差异时,没有什么可看的。两者都符合EC2标准,这意味着您大多安全地选择两者中的任何一个。

    3.4K30

    MySQL 系列教程之(七)DQL:从 select 开始丨【绽放吧!数据库】

    返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。...例如:我需要在数据库中查询出18期或19期的学员,并且要求是女生 select name from user where classid=18 or classid =19 and sex='m'...物品订单表存储物品的价格和数量,但不需要存储每个物品的总价格(用价格乘以数量即可)。为打印发票,需要物品的总价格。 需要根据表数据进行总数、平均数计算或其他计算 计算字段并不实际存在于数据库表中。...但此新计算列的名字是什么呢?实际上它没有名字,它只是一个值。 > >如果仅在SQL查询工具中查看一下结果,这样没有什么不好。...> >但是,一个未命名的列不能用于客户机应用中,因为客户机没有办法引用它。 > >为了解决这个问题,SQL支持列别名。别名(alias)是一个字段或值的替换名。

    3.6K43

    数据库性能优化-索引与sql相关优化

    ,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段 sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。...如果只检索字段的前面的若干个字符,这样可以提高检索速度。 删除不再使用或者很少使用的索引 表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再需要。...记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中. 3.sql优化 尽量减少访问数据库次数,将一些逻辑放在后台代码中处理 在不影响业务的情况下,整合简单,无关联和有关联的数据库访问...where语句后面的条件顺序 这一个网络上很多说有用,但我感觉没有作用,因为数据库都会自动优化查询,如果连where后面的条件顺序都不能优化的话也太差劲了,并且通过我个人的测试,在千万数量级的表中...,顺序并没有影响,不知道在网上为什么那么多说有影响的,以前的版本不可以?

    1.9K30

    《SQL必知必会》万字精华-第1到13章

    行 表中的数据是按照行来进行存储的,所保存的每个记录存储在自己的行内。如果把表想象成一个网格,那么网格中垂直的列则为表列,水平则为表行。 行表示的是一个记录。行有时候也称之为记录。...,但是有的没有括起来。...七、创建计算字段 计算字段 存储在数据库表中的字段一般不是应用程序中所需要的格式。我们需要直接从数据库中检索出来进行转换、计算或者格式化过的数据。计算字段并不实际存在于数据库表中。...日期和时间处理函数 日期和时间采用相应的数据类型存储在表中,以特殊的格式来存储。...AND OI.order_num = O.order_num AND prod_id = 'RGAN01' 3、外联结 有时候我们需要将一个表中的行和另一个表中行相关联,但是有时候也需要包含那些没有关联行的行记录

    7.1K00

    在工作中常用到的SQL

    这篇文章来记录一下我曾经忘掉的group查询、join查询等一些比较实用/常用的SQL 本文主打通俗易懂,不涵盖任何优化(适合新手观看) 一、回顾group 查询 group查询就是分组查询,为什么要分组查询...群里面的一个图 1.2 造成这个误解的可能原因 有的工具可以支持这种的写法: select * from xxx_table group by name 这种写法没有被禁止,并可以得出结果,比如得到的结果是...第二张表 现在我想知道在7月25号时:每个公众号的点击量、公众号名称、号主名称、公众号的创建日期 显然,我们会发现一张表搞不掂啊,某些数据要依赖于另一张表才能把数据"完整"展示出来 那join其实就是把两张表合起来的一个操作...下面我简单解释一下: 上面说了,在join的时候一定要写关联条件,如果是inner join的话,只有符合关联条件的数据才会存在最大表中 如果是left join的话,即便关联条件不符合,左边表的数据一定会存在大表中...如果是right join,那么我们最后的表只有两条数据 三、回顾case when SQL中的case when then else end用法其实跟我们程序语言中的if-else很是类似,在写SQL

    65510

    使用flyway进行数据库版本控制

    最近新上手一个项目,和另一个同事一起维护,此项目没有配置flyway,因此经历了以下两种情况: 1.同事对数据库做了改动并且代码合并到线上(我并不参与review),之后我拉取线上代码,连接本地数据库启动项目...,报错,原因是本地没有新添加的数据表,而项目启动依赖于他。...和同事同时维护一个项目,同时对数据库做出了一些修改,我在使用git拉取了最新的代码之后,运行总是报错,需要自己去重新执行一遍该表的创建语句来在本地进行创建,使用flyway后,拉取最新代码的同时会拉取最新的...当项目启动时,flyway扫描sql文件,发现当前有V14开头的文件,同时数据库中没有V14执行的记录,那么就会执行该文件。...数据表的结构及数据,添加到已有的数据库中,这样项目启动时便不会对已有的数据库产生影响。

    9.7K30

    三行五行的 SQL 只存在于教科书和培训班

    但实际上,这种三行五行的 SQL 只存在于教科书和培训班,我们在现实业务中写的 SQL 不会论行,而是以 K 计的,一条 SQL 几百行 N 层嵌套,写出 3K5K 是常事,这种 SQL,完全谈不上简单易学...SQL 有集合概念,但并未把集合作为一种基础数据类型提供,不允许字段取值是集合,除了表之外也没有其它集合形式的数据类型,这使得大量集合运算在思维和书写时都非常绕。...我们刚才用了关键字 top,事实上关系代数理论中没有这个东西,这不是 SQL 的标准写法。没有 top 如何找前 10 名呢?...造成这个现象的原因就是 SQL 的另一个缺失:缺乏有序支持。...SPL 在 SQL 已有的集合化基础上增加了离散性,从而获得了彻底的集合化和有序能力,上面的例子就 SPL 就可以延用自然思路写出来:所有产品销售额都在前 10 名的销售员,按产品分组,取每个组的前 10

    5910

    Power Query 真经 - 第 10 章 - 横向合并数据

    虽然 SQL 专业人员可以很轻松地通过不同的方式实现,但如果仅用传统 Excel 公式,用户需要使用复杂的 VLOOKUP 或 INDEX + MATCH 组合函数,才能将数据从一个表中匹配到另一个表中...为了进行【合并】,最好有一个列,在一个表中包含唯一的值,在另一个表中可以有重复的记录,这被称为一对多关系结构,该结构是确保最终得到的结果与所期望的一致的最好方法。...当试图了解两表的差异时,这种方式可以非常方便查看到数据不一致的地方。 【注意】 这种【连接种类】还说明了为什么在比较两个表时,用户经常希望从连接所基于的右表展开列。...图 10-19 【左反】连接:左表的记录在右表中没有匹配值 到目前为止,所探讨的连接主要是针对匹配的数据。...图 10-22 【右反】连接的结果 如图所见,只有 “Special” 和 “Pull Cart” 账户存在,因为这是 “COA” 表中仅有的两个没有的交易项。

    4.4K20

    蚂蚁集团:Apache HoraeDB时序数据库性能提升2-4倍是如何做到的?

    1.1.1 图 - 两条折线分别代表了两台服务器的负载指标 例如图中,这些线条本身并没有太多的描述性,为了区分不同的数据序列,我们通常会使用标签(tag)来标识它们。...由于数据同时存在于内存和磁盘中,用户的查询必然涉及这两部分。在后续的分享中,我将重点介绍我们是如何针对这两部分进行优化的。...我们面临的挑战在于,现有的一些技术栈,如 Apache Arrow 库,将数据的拉取和解压操作混合在一起,这不利于我们插入自定义逻辑。...3.4 提高并发 除了缓存优化,我们还面临另一个挑战:冷查询或首次查询的处理。这类查询通常不存在于本地磁盘或内存缓存中,因此我们需要其他策略来提升这类查询的性能。...当系统判断用户需要拉取大量数据(例如 100 M)时,我们会将数据拆分成多个部分,并通过多个后台线程并行拉取。这种方法不仅提高了单个文件的拉取效率,也显著提升了冷查询的处理速度。

    63810

    07-08 创建计算字段使用函数处理数据第7章 创建计算字段第8章 使用函数处理数据

    城市、州和邮政编码存储在不同的列中,但邮件标签打印程序需要把它们作为一个有恰当格式的字段检索出来。 列数据是大小写混合的,但报表程序需要把所有数据按大写表示出来。...计算字段并不实际存在于数据库表中,是运行时在 SELECT 语句内创建的。 注意 只有数据库知道 SELECT 语句中哪些列是实际的表列,哪些列是计算字段。...此外,需要用括号将 vend_country 括起来,这些东西都没有存储在数据库表中。 拼接(concatenate) 将值联结到一起(将一个值附加到另一个值)构成单个值。...但是,这个新计算列没有名字,它只是一个值。 如果仅在 SQL 查询工具中查看一下结果,这样没有什么不好。但是,一个未命名的列不能用于客户端应用中,因为客户端没有办法引用它。...Orders 表中的订单都带有订单日期,在 SQL Server 中检索2012年的所有订单: SELECT order_num FROM Orders WHERE DATEPART(yy, order_date

    3.7K20

    深入浅出MySQL crash safe

    IO thread 负责从 master 拉取 binlog 文件并保存到本地的 relay-log 文件中。 SQL thread 负责执行重复 sql,执行 relay-log 记录的日志。...MySQL 如此设计的出发点是: SQL thread apply binlog 的位点永远小于等于 IO thread 从主库拉取的位点。...如果遇到系统 crash,slave 实例重启之后,会删除已经有的 relaylog,并且 IO thread 会从(relay_log.01,100)对应的 master binlog 位点重新拉取主库的...relay_log_info_repository=TABLE relay_log_recovery=ON 看到这里是不是有疑问为什么没有 master.info 相关的参数配置?...其实开启 slave 的 crash-safe 之后,slave 重启的时候会自动清空之前的 relay-log,IO thread 从 mysql.slave_relay_log_info 表中记录的位点开始拉取数据

    71320

    GitHub 关系型数据库垂直分库实践

    在进行真正的数据库分表之前,我们要先确保在应用层面能够将表分开,并且不影响团队开发新功能或修改已有的功能。 为此,我们将数据库表按照领域进行分组,并使用 SQL Linter 来分清领域之间的边界。...我们在查询语句上添加注解,就可以识别出那些跨越多个模式领域的查询和事务,并可以允许一些例外情况。如果一个领域没有违反这个规则,就可以进行虚拟分库,它们的物理表就可以被迁移到另一个数据库集群中。...这种情况多发生在“多态性”表上,这些表的数据来自不同的模式领域(例如,reactions 表保存了来自多个不同功能的数据,如 Issues、拉取请求、讨论等)。...除此之外,我们还采用了另一种迁移大规模数据表的方法。这样可以降低依赖单一解决方案所带来的风险,确保 GitHub 网站的持续可用性。 我们利用 MySQL 的常规复制特性将数据迁移到另一个集群。...我们一次性迁移了 130 张最繁忙的数据库表,它们为 GitHub 的核心功能提供支撑:代码仓库、Issues 和拉取请求。写切换是我们用来降低迁移风险的一种策略,让我们可以使用多种独立的工具。

    1.6K11

    渗透测试SQL注入漏洞原理与验证(4)——SQL盲注

    SQL盲注概述 在SQL注入过程中,SQL语句执行后,选择的数据不能回显到前端页面,此时需要利用一些方法进行判断或者尝试,这个过程称之为盲注。...基于时间的盲注 又称延时注入,即使用具有延时功能的函数sleep、benchmark等,通过判断这些函数是否正常执行来获取数据库中的数据。 SQL盲注常用函数 if() 功能 : 条件判断。...ascii()、cord() 功能 : 返回字符串最左边字符的ASCI码值 语法格式 : ascii(str),ord(str) cast()、convert() 功能 : 获取一个类型的值,并产生另一个类型的值...的less-9 注入方式 : 利用插入的SQL语句造成时间延迟,若延迟函数被成功执行(即页面反应时间加长),则所查询的信息正确。...判断数据库名长度 获取数据库名(逐个字母盲猜) 获取数据库的表名(逐个字母盲猜) 获取数据表的字段名(逐个字母盲猜) 获取字段值(逐个字母盲猜) 本文部分图片摘自深信服安全服务认证工程师课程课件中,为方便个人学习使用

    46010

    BI数据隐私防火墙的内在情况

    数据隐私防火墙的用途很简单:存在以防止Power Query无意中在源之间泄露数据。为什么需要这一点? 我是说,你当然可以创作一些 M,它将SQL值传递给 OData 源。 但这将是有意的数据泄露。...为什么需要防止意外数据泄露?答案? 折叠。折叠?折叠是指在 M ((例如筛选器、重命名、联接等)中) 将表达式转换为对原始数据源 ((如 SQL、OData) 等)的操作的术语。...例如,如果要将小型 CSV 文件联接到大型SQL表,则可能不希望 PQ 读取 CSV 文件、读取整个SQL表,然后将它们联接在本地计算机上。...每当一个分区引用另一个分区中的内容时,防火墙会将引用替换为对调用的特殊函数的 Value.Firewall调用。 换句话说,防火墙不允许分区随机访问对方。 修改所有引用以通过防火墙。...假设你有一个名为 Employees 的查询,该查询从SQL数据库中拉取一些数据。 假设你还有另一个查询 (EmployeesReference) ,它只是引用 Employees。

    73310

    在工作中常用到的SQL

    这篇文章来记录一下我曾经忘掉的group查询、join查询等一些比较实用/常用的SQL 本文主打通俗易懂,不涵盖任何优化(适合新手观看) 一、回顾group 查询 group查询就是分组查询,为什么要分组查询...群里面的一个图 1.2 造成这个误解的可能原因 有的工具可以支持这种的写法: select * from xxx_table group by name 这种写法没有被禁止,并可以得出结果,比如得到的结果是...第二张表 现在我想知道在7月25号时:每个公众号的点击量、公众号名称、号主名称、公众号的创建日期 显然,我们会发现一张表搞不掂啊,某些数据要依赖于另一张表才能把数据"完整"展示出来 那join其实就是把两张表合起来的一个操作...下面我简单解释一下: 上面说了,在join的时候一定要写关联条件,如果是inner join的话,只有符合关联条件的数据才会存在最大表中 如果是left join的话,即便关联条件不符合,左边表的数据一定会存在大表中...如果是right join,那么我们最后的表只有两条数据 三、回顾case when SQL中的case when then else end用法其实跟我们程序语言中的if-else很是类似,在写SQL

    68830

    在工作中常用到的SQL

    这篇文章来记录一下我曾经忘掉的group查询、join查询等一些比较实用/常用的SQL 本文主打通俗易懂,不涵盖任何优化(适合新手观看) 一、回顾group 查询 group查询就是分组查询,为什么要分组查询...群里面的一个图 1.2 造成这个误解的可能原因 有的工具可以支持这种的写法: select * from xxx_table group by name 这种写法没有被禁止,并可以得出结果,比如得到的结果是...第二张表 现在我想知道在7月25号时:每个公众号的点击量、公众号名称、号主名称、公众号的创建日期 显然,我们会发现一张表搞不掂啊,某些数据要依赖于另一张表才能把数据"完整"展示出来 那join其实就是把两张表合起来的一个操作...下面我简单解释一下: 上面说了,在join的时候一定要写关联条件,如果是inner join的话,只有符合关联条件的数据才会存在最大表中 如果是left join的话,即便关联条件不符合,左边表的数据一定会存在大表中...如果是right join,那么我们最后的表只有两条数据 三、回顾case when SQL中的case when then else end用法其实跟我们程序语言中的if-else很是类似,在写SQL

    59710
    领券