再来看最后一个关键字里面的,它的作用就是用了限制展示的几个条数来试试看双面羊皮,其他条件都不要了,我们直接来给里面的,比如我们只展示五条,那就跟上五,然后写这个心来仔细看看, 就只展示了五条,简单吧。这个懂了之后,我们再来一个需求,就是找出公司里面工资最高的五个人,就是在这前面的一个排序嘛, waterback 用 sender 的排序, dse 降序,这样就可以了,来执行一下 没问题吧。除此之外, mimitak 用来做分页功能,分页都见过吧,很多网页上都有,比如我这张表里面有一万条数据,那我们展示的时候难道要一次展示一万条吗?不太合适吧。所以我们最好就是进行分页,每页之前是几条,十几条,当用户点击下页的时候,我们再把下页的数据查出来,比如我们一页之前是十条数据, 就可以这样做,放面皮,然后里面的跟上零都好使,也就是从零开始,往后取十条数据。 select 心来执行一下,前十条数据就出来了。然后假如用户点了下一页,那我们下一次就要从十开始取,同样还是往后取十条来执行一下, 十到二十就出来了,再下一页应该就取完了。我们一共只有二十八条数据嘛,再来个二十, 这次就只有八条了。不过虽然使用厘米的可以实现分页,但实际项目中并不是这么简单的。实际项目中会用到一些缓存机制,因为直接使用厘米的分页的话,取第二页的时候,他不会直接从第十条开始取,还是会查询前几条,然后数到第十条再往后取,所以单纯用厘米的话,性能是很低的。 ok, 关于 limit 我们就讲这么多。最后再提一点,就拿前面这个统计男女人数这个为例,我们可以给他艾特一个别人,对吧? 比如最佳眼皮抗糖拍摄里面打包的时候也可以用 s 级别名,这里也是一样的,它其实就是一个变了名嘛。既然它是一个变了名,那后面就是可以用它的。比如我们在后面来一个过滤,这里不是用性别分组了吗?那我们就过滤一下人数大于十的组。还有你坑的 id 大于十来自线下 没问题吧?就只有男性数量大于十。刚刚我们给 contact 起了个别名,这里也是可以用的。直接把这里的 contact 换掉 来执行一下也是可以的。当然 group by 这里可以用别名,前面这里不是有个金字儿吗?我们给它艾特一个 g, group by 这里也可以改成 g 来执行,看看也是没有问题的。 ok, 这是一个额外的小知识点。
粉丝5.3万获赞37.8万


然后我们来看 mt 优化之前准备了一张五千万记录的表,还记得吧?来修特 boss 看一下,就是这个 test data, 来统计一下它的数量, select com 的心 from test data 五千万没问题吧?然后我们来对它进行分析操作, select 星 from test 塔 limit 从零开始读取十条记录来仔细看看,好像有点问题,不应该是 id 从一到十吗?这是怎么回事呢?不要慌,我们来看一下执行计划, 看到了吗?他用到了 lim 这个缩影,所以拿到了数据,是以 lim 顺序之后的前十条记录。因为我们之前讲缩影的时候给 lim 这段创建了缩影,所以液化气在选择的时候选择了这个缩影。我们不想让他用这个缩影的话,可以给他加一个收口提示,或者我们直接把 lim 锁印删掉也可以。 on this data 现在我们再来执行就正常, ok, 这是第一页,速度很快,对吧?然后再来看第二页,从第十条开始,往后读十页,仍然很快,对吧?那我们继续增加,从一百万开始读十条, 两百多毫秒感觉也没慢多少,对吧?那我们加到一千万 两秒多,然后四千万呢? 九秒多对于 limit 飞页来说,越往后耗时就越长。我们在获取四千万往后十条记录的时候,他就需要对四千万零时前的所有记录进行排序,最后只返回四千万到四千万零时之间的记录, 四千万之前的记录就会被全部丢弃,所以这个代价是比较大的,相对耗时也比较长。所以在大数据量的条件下, 我们就需要考虑对你们的分页进行优化,可以用覆盖所应价值查询的方式,刚刚这里我们反复的是心,对吧?如果是心的话,他肯定是要回表的,我们把这个心改成 id, 直接覆盖所应来执行,看看, 刚刚是九秒多,对吧?现在是八秒多, ok, 然后我们再加上次查询 selecting from testica in fair id in in 这里查出来的 id 来仔细看看,报错了,他说 mythical 不支持这种语法,在 in or any 或者 some 后面的只查询里面用到了 limit, 他不让我们这么用的话,那我们就换一种方式,直接把这个结果看成是一张表,我们用连表查询的方式来做 set 这个心 from test, 给他,给他起一个别名 d, 就印这张表,然后给他也起一个别名 t, 按后面我们那些条件,也就是地点 id 等于 t 点 id, 就这样 就可以了。最后返回结果,这里我们就只需要滴点心来仔细看看, 耗时八秒,刚刚是九秒多,对吧?确实效率是高了一点,但好像差距不大,原因是我们这个表本身比较简单,一条记录就只有这么两个字段,如果是比较复杂的表,这个差距会更大。 ok, 这就是 limit 相关的优化,可以用覆盖锁印加此查询的方式进行优化。

嗯,你学习买车和数据故事吗?那我考你一个题吧,我这呢有一个学生的成绩表,他只有两个字的姓名和成绩。那怎么查询成绩排名前三的学生他的姓名和对和分数呢?嗯,这听起来挺简单的。这个我会用 limiter, 先按照成绩从大到小排序,再 limiter 三就行了。 嗯,那你这个答案有考虑过第三名和第四名和成绩相同的情况吗?就是说其实他们应该是并列第三才对,最后应该能查出四个记录。那你这个另一的三这块是不是有 bug 呢? 嗯,这个我确实没处理过啊。好了,我也不回答你了啊,这个题呢,他确实是有点难度的,我给你一个参考答案,你回去试试吧。我这个最后一句呢,可以解决排名有相同质的情况。大家有什么好的解决方案呢?也可以一起讨论一下。

嗯,你学习买 solo 数据故事吗?那我考你一个题吧。我这呢有一个学生的成绩表,他只有两个字段,姓名和成绩。那怎么查询成绩排名前三的学生他的姓名和对的分数呢?嗯,这个听起来挺简单的。这个我会用 mimit, 先按照成绩从大到小排序,再 mimit 三就行了。嗯, 那你这个答案有考虑过第三名和第四名他成绩相同的情况吗?就是说其实他们应该是并列第三才对,最后应该能查出四个记录。那你这个闺蜜的三这块是不是有 bug 了?嗯,这个我确实没处理过 啊。好了,我也不为难你了啊,这个题呢,他确实是有点难度的。我给你一个参考答案,你回去试试吧。我这个最后一句呢,可以解决排名有相同值的情况。大家有什么好的解决方案呢?也可以一起讨论一下。

你如何看待数据库行业的国产趋势?随着国产信息化的普及,国产数据库作为基础软件,他的重要性不言而喻,国产数据库必将会迎来他的一个爆发期。你如何看待企业培训给人才带来的价值? 现在企业的竞争实际上就是人才的竞争,这就迫切需要加强员工的技能培训,企业培训能够帮助员工提升他的市场竞争力, 提升企业的劳动绩效,实现企业又快又好的发展。咱们达梦的老师们为网线事业做出了什么贡献?达梦培训中心自创办以来,已经对五万多人和两千多家企业进行了达梦的产品培训,颁发证书超过了八千多张,培养输出了众多的 数据库专业人才,为国家网信产业发展助力。达梦公司多年来致力于数据库人才的培养工作,有着丰富的实践教学经验,通过多年的学习实践,探索出一套 成熟完善的人才培养体系,并取得了一系列的成果,达梦培训中心日渐成为我国数据库高端专业人才的培养摇篮。作为老师,你的幸福时刻,学有所得,学以致用! 老师我听懂了,老师您辛苦了,桃李满天下,有没有什么想对你的学生说的?谢谢同学们对达木数据库的肯定,希望同学们在我们的培训中能够收获满满,学以致用。 最后祝愿同学们工作顺利,健健康康,好好学习,天天向上吧!

好,我们继续来上课,那么这节课呢,我们再来看一下我们的 limit 限制查询语句,那那么它限制查询结果返回的数量, 这里边也一样,它有两种格式,一种是给它设置一个值,一种给它设置了两个值,对吧?那好,我们先看一下,比如说这里边正常我 select 星 from you 这表,在我没有给限制的时候,他是查询了所有,对吧?那么当我给他限制,比如 select 星 from user 的时候,给它 limit 限制一个二,比如说我给他的一个二以后,我再来回车,咱们来看他是不是取了一二两条数据, 对吧?那好,这是我们给一个值代表什么?代表我是从数据库中取几条啊?那么如果我再来设置一下 select, 我想取三四呢?那 select 星, prom, user, limit, 还有 i m i t 字母要取三四两条啊? 那我这么样去写的话,咱们来看什么样的啊?走你,你看他取的谁啊?取的四五 七八是不?取了四条,那么也就代表的是我最后这个数字是干嘛?是代表取几条, 没错吧?然后这个三呢?什么意思呢?这个三你可以理解为是一个偏移,偏移数,那么咱们这里的数据从零开始记,你可以这么去理解,另外最好理解方式。这个三什么意思?越过三条取四条,你看啊,是不是这样的?我越过三条,是不是这三条取四条?四五七八 是不?这四个?那你看我越过三条取四条,是不是四五七八呀?哎,这就是咱们的这个 select 的语句,那么一样, 我们再去取数据的时候,它跟这个数据原有的位置没有关系,它跟我查询出来的位置是有关系的,比如说咱们来看啊, s e r e c t 时代的星 from user 表,我要按照 order by, 按照 id d i c 进行排序,走你,你看排序完以后给的结果是不是这样的?那么同样的道理,我继续往里面加一句, limit 二,如果我给个 limit 二, limit 三吧,那么这个时候你看他拿的是谁?是一二三还是十九八? 走你,你看这个时候拿的是不是十九八呀?哎,也就是说他跟我数据本身的位置没有关系,他跟我查询出来的位置才产生关系,明白吧?然后呢,一样,比如说我想不取这三条,我想越过三条再取三条,那是不是三到二三?那么 这个时候再来回车,你看这个时候是不是拿着七五四?那你看一下数据结构,十九八,前三条,越过三条取三条是不七五四。哎,那么这种厘米的语句啊,在我们语言中, 在程序语言中啊,就好比 pp 啊,拍摄啊,或者是这个加法啊,那么经常会借用另一个语句做一个什么效果呢?做一个分页效果, 做一个分页效果,你想啊,比如说我在搜数据的时候,当我搜索了这个三条数据,对吧?这页面只显示了三条数据,我一点下一页时候是不是就显示后三条?那也就相当于当我第一页的时候得来的新 flow user 表,我还是倒序吧, all the by, 按照 i d d e e s c 倒序进行排序了,对吧?然后我 limit, 当你注意,当我第一页的时候,我是不是相当于越过 过零条取三条,也可以直接写个三,对吧?那比如越过零条取三条,这个时候走你,你看是不是十九八?那当用户点击下一页的时候,那是不是就相当于是越过三条取三条了?那走你是不是七五四,那同样在下一页呢?是不是就越过 六条取三条,那数据三二一对吧?哎,这就是咱们借用 limit 语句来做分页了,那么一样,这块呢,对于这个数字它是一个会变的,所以未来呢,对于程序语言来说,这块会放一个什么呢?放一个变量啊,然后它有固定的公式来去算这个值 来,就算这个值就是当前页减一乘以他啊,这就是我们这个分页的这个做法啊,等大家学到语言的时候呢,那你们可以这个详细的去再去学一下啊,那 在这里边我给大家提一下这个立米他的用法能干嘛用啊?所以大家呢要有个印象,等到学到语言的时候,可以直接上手来使用啊。好了,这就是咱们的立米的查询语句,那么讲到这块为止啊,我们把我们的整个这些条件已经讲完了,咱们往 ppt 往上翻一下,我们来看, 在我们讲这个查询表达式的时候,是不是这里边 from 后面跟表明,然后是 where 条件、 group by 条件、 happing 条件、 out 摆条, limit 条件,这些条件我们都已经讲过了,对吧?那么讲完之后我为什么我们还要回过来呢?我就是要跟大家强调一下, 在这里边必须按照这个顺序去给,比如说我在查询的时候,我 select 你看好了,我给大家演示一下啊,比如说我想先 select 星 from u 则表啊,然后呢我直接给个 l i m i 一厘米的三,然后后面再给微尔条件,比如说 wh e ievr 条件 id 曲磨二,哎,我的百分号呢?等于零呢?哎,这样的话,这个时候咱们来看走你,你看我报个错,注意啊,我的语法是没有,我这代码是没有写错的, 对吧?哎,你看好了啊,我们再过一遍 s e l e c t 星,然后 from user, 对吧? limit 三,这是没有问题的。然后后面我给了一个什么,给了一个 w h e r e 为了条件 i d 取模二等于零,走,你是不是都会报错了?哎,这个时候啊,不是我的代码写错了,不是我的命令写错了,而是语法的错误,他不支持你这样的,你首先必须先是条件,然后再是 limit 啊, 所以说里边我需要干嘛,给他做一个颠倒,好,后面我给他加上 l i m i p 立命的三走你,你看这个时候是不是就拿过来了,二四八前三条啊, 哎,所以大家记住,在我们去书写这些条件的时候,必须按照我这里给大家列出的顺序,从上到下啊,当然不需要的,你可以省略,比如说我威尔完了之后,我直接立米的可以,威尔完了以后我奥德拜在里面的也可以,对吧?我威尔完了以后, group by heavy 在奥德拜在里面的都行,但是你必须按照我这个顺序来 啊,所以大家这里边要记住一下,那么好了,那么 highway, 这个 select 我们了解了以后,我们再来回想一下啊, 我们再去讲,插入数据的时候,是不是还有一条数据,我们没有讲怎么样,是不是通过查询出来的数据,然后插入到这个数据 里边来,插入到这个字段里面,对吧?那 ok, 我们就把这个语句给大家来用一下,咱们来看啊,首先我插入我这里边新建一张测试表,比如 cr, ettble, 比如交一个 taste 的,然后这里边就一个 id 字段, in 的类型,然后凹凸杠 in cream 的 p i m m prem k, 然后再来一个字段,叫做,比如叫 user name, 然后呢,给他一个瓦叉类型, v r c h r 瓦叉类型给他多少呢?给他二十个长度, not not 不为空。 ok, 走你。好了,现在我有了这张表,咱们来看 so tables 这里边是不是多了一个叫做 taste 的这个表啊?哎,那么接下来干嘛呢?我从 use 这里边查到用户名以后,直接查入了 taste, 注意,现在 taste 的表来 select 星。 呃, t s t。 走,你是不是空了,哎,那接下来我要干嘛?我要 insert。 insert 往哪插入?往 case 的里面插入,对吧?插入什么呢?插入内容就是 select, s, e, se, l, e, c, t, 然后 user name from 哪个表? use 表,比如说我给个条件啊,我不都查没有条件, a 几大于多少呢?我们看下总表啊,我再往上翻翻, 大于二十的吧。啊,那好,我要的是 a 级大于二十的,注意条件,我什么都加了,哎,那么这个时候走你,哎,报错,报什么错?他说列数不匹配啊,为什么列数跟不匹配啊?注意,我 text 这个表里边是不是有两个字段,一个叫 id, 一个叫做 use name, 而我查询时候是不是只查询了一个优质 name, 所以他不匹配,那怎么办?由于我 taste 表里面 id 是自增的,我是不是直接括号给他一个 user name 就可以了。哎,那好,那现在我们再来回车好了,回车以后告我, ok, 干嘛?四行受到影响,对吧?也就是说有了四条数据,那么我们先来看一下,各位把这句话拿过来,我们这么去查询的时候是查询到了四条数据吗? 教你没有错,是不是查询到四条数据,两个小白,一个小美,一个小飞,对吧?那 ok, 我们来查一下 slide 星 form 哪个表, case 的表里边是不是多了四条数据,两个小白,一个小美,一个小飞, 对吧?那么我们看下原表的数据, s, e, l, e, c, t, select 等,然后我们要两个字段,一个叫 user name, 一个叫 卓 ag, 对吧? from 优质表走你,你看好了,我们优质表里面小白小美还有谁呀?小飞是不是都是年龄大于多少的?大于二十的,对吧?小白这俩, 然后小黑不算,因为他等于二十。对,小美是小,小昌跟小飞不是,小飞是,然后他俩也不是,没错吧?哎,那 ok, 这就是我们通过什么查询出来的结果,然后我们进行数据的添加操作啊。好了,那么这节课我们就上到这里。

公司业务概况主营业务,软件产品使用授权占公司主营业务收入的主要部分,二零二一年到二零二三年分别占百分之八十六点五七、百分之八十九点五零和百分之九十一点九零。数据及行业解决方案占比逐年减少, 二零二一年到二零二三年分别为百分之十一点四三、百分之七点六五和百分之四点零六。运维服务占比相对稳定, 二零二一年到二零二三年分别为百分之二点零零、百分之二点八四和百分之三点四四。 数据库一体机二零二三年新增业务占比百分之零点五九。盈利模式,主要通过销售数据库、管理系统、软件及其相关产品数据及行业解决方案获取收入, 软件产品使用授权业务毛利率较高,数据及行业解决方案和数据库一体机毛利率相对较低。经营模式,通过销售软件使用许可权、提供数据及行业解决方案、销售数据库一体机等多种方式实现收入。财务状况, 毛利率,软件产品使用授权业务毛利率均在百分之九十九点六八以上。数据及行业解决方案毛利率波动较大, 二零二一年至二零二三年分别为百分之二十五点四九、百分之四十三点二二和百分之四十九点零六。运维服务毛利率较稳定, 二零二一年至二零二三年分别为百分之六十九点五四、百分之五十五点七七和百分之五十六点一三。期间费用,二零二一年至二零二三年 公司销售费用占营业收入比例分别为百分之二十二点九五、百分之三十二点四一和百分之三十六点四一。管理费用占比相对较低,二零二一年至二零二三年分别为百分之九点一九、百分之十点零四和百分之九点三九。 市场竞争行业地位,公司是国内领先的数据库产品开发服务商,主要面向大中型公司、企事业单位及党政机关提供各类数据库、软件及相关技术服务。主要竞争对手包括中望软件、新环科技、金山办公等。 市场份额,报告期内,公司在软件产品使用授权业务毛利率方面与同行业可比上市公司保持一致,处于较高水平。风险因素,市场竞争风险,行业内竞争激烈, 公司需要不断提升技术和产品质量以保持竞争力。政策风险,公司业务受政策法规影响较大,需紧跟相关政策变化。