再来看 macbook show, 它是客户端对象查看工具,主要用来查找数据库、表字段等等。我们还是可以通过杠杠 help 来查看它的使用方法。 macogo show 杠杠 help 来看最前面,他的用法是这样, mac 会秀,然后可以跟选项,接着可以跟数据库库,后面可以跟表表,后面可以跟字段,来看一下他的选项。当然杠又杠 b 杠一起,这些肯定是必须的,我就不讲了,要查看数据库信息 肯定是要登录的,我们主要看一个杠杠 count, 还有一个杠 i, 你会看到杠 i 后面还有一个杠 stadius, 它们是等价的,杠 i 是短选项, 杠 stdos 是长选项,包括杠 p、 杠 a 七他们都有长选项,我们一般肯定都是用短选项。然后我们现在看刚刚看到的作用,他说是修 number of rose peartable, 显示每张表的函数,然后后面还有提示 maybe slow, 可能会很慢。 follow my subtables 不是 my sum 的表,知道原因吧, 我们说过 maxm 会专门记录本上面的函数,直接读取这个词就可以了,而云端 db 不会,他必须重新统计,所以他这里说不是 maxm 的话可能会很 man。 ok, 我们来用一下 master 归秀刚 youtube 一二三四,然后刚刚 count 执行。 如果不加任何数据库的话,他会统计每个库表的数量以及每个库的总数据量。 totros, 也就是这个库里面所有表的总行数。前面我们也看了用法,他后面还可以指定库、 指定表、指定字段来试试看。比如我们只想统计 d b 的数据,那就在后面加一个 d b, 一执行,他就帮我们把 d b 一里面每一张表的函数都统计出来了,还有列数也有,如果我们只想看 emp 的话,那就在后面跟上,表明 emp 即可执行。 可以看到他不但统计到了函数,还把字段的详细信息也列出来了。接着我们还可以继续细分,比如我们只想看内么字段的信息,那就在后面加一个 name, 这样就可以了。 ok, 这是刚刚看到的用法。再来看刚 i, 翻到前面的帮助信息,他所需要拿到 extra information, 显示许多的额外信息。显示谁的额外信息呢? about each table, 每一张表来试试看, 还是先加一个杠 i, 这就和修队的 b c 也是一样。然后我们加仓库 d 比一,这就是查看 d 比一每一张表的详细信息。我们缩小一点来看, 比如穿出引擎行数,平均行长度,当然他这个平均值是预估的,不一定准确。还有数据长度幺六三八四,其实就是十六 k, 也就是一个数据页。然后还有缩影长度,这个是表里面二级缩影占的总大小,所以你会发现 music singer 这几张表缩影长度为零,因为他们只有聚集缩影, 我们没有创建过二级,所以后面还有很多字段,关于表的各种信息都有。 ok, 当然也可以查看每一张表和每一个字段的信息,在后面加上表名和字段名就行了。
粉丝5.3万获赞37.8万


从零开始学网安第二十二集,我们来学代码吧,那么也就是第三个环节叫做 my circle 的 操作,这个是个重点,那么第一个话呢,就叫做数据库的增删改查,哎,因为刚刚咱们讲过 这四个库呢是人家自带的,那自带的话呢,我们就不要去操作它,对不对?所以说如果说我们想要去操作,那就得去创建自己的数据库。 好吧,那老师我如何创建呢?是吧?这里没有写代码的地方呀,哎,怎么搞嘞?好到你的这个连接名这里啊,右击点击新建查询 这里啊,右击这个海豚,点击新建查询右击新建查询。好,那么它就会出现一个这个窗口,这个窗口里面呢就是专门用来给你写代码的啊,在这里写代码,好吧。好,我把这个文字放大一点啊,按这个 ctrl 加鼠标滚轮,可以快速的放大和缩小文字,好吧,放大一点。嗯, 好,然后我首先写一下啊,老师,我应该写什么代码呢?我也没有学过哎,怎么办?没关系, 我们这个数据库呢非常的简单,所有的操作都只需要干嘛呢?按照老师给大家写的一个公式来,哎,每个公式我写的非常清楚啊,相当清楚,只要你有眼睛。好吧,我,我就这么说白了,只要你眼睛没问题,你绝对会写 啊,只要你明白里面的意思是干嘛的,按照他的语法规定来,你绝对会写。好吧,首先啊,我先把这个命令给它复制过来, 前面加这两个横线,这个叫做注视的意思啊,这个叫做注视,我写一下啊,这个叫做注视,也就是对代码的解释,哎,或者是呢,我自己写的笔记, 好吧,怎么按呢?就按一下, ctrl 加上一个斜杠,哎,能够快速的啊,生成这个注视,比如我按一下啊, ctrl 加斜杠,按一下,哎,前面会出现两个横线,我们就在两个横线后面可以写这个文字啊,随便写 啊。那首先第一个创建数据库哎,创建我自己的数据库啊,叫做 create data base, 后面跟上一个库名,好吧,按照公式来啊,首先我们写一下 create c r e a t e 大家看,当我写了一就是写了一个 c 之后啊,写一个 c, 那么他下面就会有这个代码的提示,大家看,没有哎,这个就是我们这个软件他的工具的牛逼之处,哎,我并不需要把每个命令都写完啊,你们在那个黑窗口里面去敲命令,每个单词都必须一个一个手敲,但是你用我这个软件就不一样了呀,哎,我可以用到这个提示对不对,非常方便啊,写一个 c 好有提示是吧,按回车啊,叫做 create 对 吧,这个 create 呢,它就叫做创建的意思啊,创建什么什么东西啊?那么大家看,有人说老师你给的这个公式英语呢,是小写的啊,但是呢,人家这个软件提示他的英语是大写的啊,有没有问题呢?我讲一下啊,在 circle 里面, 在 circle 里面,好吧,它是不区分大小写的。对,你用小写也可以,用大写也可以,甚至说你一半大写一半小写都可以啊,当然我相信一般没有人这么做啊。好吧,不区分大小写,你用小写也行,用大写也可以啊。 好, create 加个空格,空格再加上一个 data base, data base 啊,回收是吧,再空格写上一个库的名字啊,就是你要创建什么数据库给它取个名字。假设呢,我取名字为 test 一 好分号结尾。大家对了,所有的缩口代码你写完了必须要加个分号好吧,以分号结尾啊。每个缩口代码 必须分号结尾。分号结尾能用中文吗?你说酷名是吗?酷名的话可以用中文,但是呢我不建议啊,不建议用中文好吧。嗯,好。写好代码之后呢,怎么运行。非常简单,选中这一行代码,然后呢点这个运行已选择的这个按钮。 好吧,选择点运行啊,点这个运行啊,点一下好点好之后呢,你的下面就会有这个信息,它是 ok 的 啊。 ok 呢就代表你写的是 ok。 哎,你是没有问题的啊。好,然后怎么做呢是吧。这是创建一个数据库,那老师左边这个库也没有啊。啊,这个 test 一 在哪里呢?没看到 哎。那是因为这个软件它不会自动刷新哎。不会刷新啊,那老师我们怎么刷新啊。就在左边这里右击点一下刷新。好吧,右击点刷新啊右击点刷新刷一下哦你自己的 ps 的 一这个饼干就来了啊就来了, 简不简单同志们非常简单啊。然后呢,我可以展开展开里面,你看啊,里面就没有表啊,因为我们只建了一个库嘛。哎,这个就是我自己的库。按回车行不行啊回车不可以啊回车不可以。 好,然后呢这两个卡片是可以点击的啊,可以切换点击啊。点过来点过去点过来点过去。好吧,你按回车是没用的,你看我按这么多回车都是没用的啊。这个是编写代码的地方,它不能运行,想运行只能去选中啊,选,选重点运行。 这个库多大呀?这我就没办法回答你了啊,这这,哼,对对对啊,我讲一下这个分号答对了我讲一下啊,所有的符号,所有的符号都必须是英文的好吧。分号啊,也必须是英文的好不好,必须是英文的。 一直刷新没有,你运行没有啊,你的信息是不是 ok 的, 你要保证你代码没问题人家才会有啊,人家才会有。 好,这个就是创建数据库,你要创建啥就写啥是吧。创建 test 的 一,我就写 test 的 一,哎,创建 test 的 二,我就写 test 的 二,哎,别说我再写一下啊,别说,再写份 create data base 空格,哎,再写上这个 test 的 二, p e s t 二, 好,分号结尾,哎,选择点运行,哎,信息也是 ok 的, 哎,别说我再来创建第三个库 create data base test 三,分号结尾 啊,选择点运行信息也是 ok 的, 哎,那么我们就在左边这一栏啊,左边这里右击刷新,此时 test 二以及 test 三他都有了啊,他都出现了一二三,这个都是我们刚刚见的。好吧,听懂的啊,请打个一,听懂的同学打个一,一直刷新没有是 ok 的, 肯定是你操作问题啊,好吧,肯定是你自己的操作问题 哎,非常简单。好,那么这个呢,就是我们创建数据库哎,第二个我们再来去学习,既然库可以创建,那肯定也可以去删除啊,对吧,哎,万一这个库我不想要了嘞,我想给它删掉嘞,哎,怎么删呢?我也能够去通过命令来删啊,所以说第二个来删除数据库, 通过这个命令来上啊,回车跟着公式来, job d r o p job 空格, data base, data base 啊,空格跟上一个库名,想删谁就写谁,对吧?你要告诉他我要删的是谁嘛。好,假设我要把这个 test 的 删给它删掉,那我就写上 test 三分号结尾。 对,可以复制粘贴啊,可以复制粘贴的,没问题。好吧,好,写好了来选择这行代码,我们点击运行信息也是 ok 的。 ok, 好 之后呢,这里也没有自动刷新啊,我们要手动刷新一下,右击点刷新,那么此时 type 三呢,就消失了啊,就没有了,好吧,就可以了啊,没了,非常简单。第二个 好,第三个我们再去看一下。第三个呢,叫做切换数据库 切换好,那老师,什么是切换呢?我举个例子啊,举个很简单的例子,假设你现在是在 test 二这个库里面来操作啊,如果说你要切换到 test 一 里面去, 是吧,你要从这切换到这,哎,怎么办呢?要通过这个命令来切换,首先我们写上个柚子 us 柚子后面跟上一个库名,空格就是你要用谁,你要写谁,是吧,我要切换到 test 的 一,好,那我就写 test test 一 分号结尾 好,选择点运行,哎,是 ok 的, 就切换成功是吧?哎,如果说我要切换到这个 test 的 二,我就写 use test 二分号结尾好,选择点运行,这个也是 ok 的。 好吧,就可以了啊。哎,那还有第四个,老师,我想去看一下,哎,我当前用的是哪个库?我当前正在使用的是哪个库?万一说,哎,我这个字也记不得了,哎,怎么看呢?有命令的啊,在这通过这个命令来看, 直接写啊, select s, e, l, e, c, t 空格 data base, data base 加个括号,括号是英语的括号啊,再加个分号 好,写好了选择点运行,是吧?那他会告诉我当前正在用的是 test 的 二这个库。好吧,如果说我用这个 else test 的 一,再去运行一下,切换一下,是吧?切换好之后呢,我再去查看我当前用的是哪个库点运行,那么他告诉我当前用的是 test 的 一, 好吧,很简单啊,那还有最后一个,第五个就是去查看所有的数据库有哪些。 查这个查看所有的数据库啊,叫做 show s h o w show data basis。 分 号结尾选择点运行,那么它告诉我所有的数据库有这么几个啊,一二三四五六分别对应的就是我们左边这个一二三四五六。 哎,很简单啊,非常简单。幺零零七。啥意思?你要看他后面的英,英文是什么意思啊?你看他英语是什么意思啊?就假设你们,我举个例子吧,假设我随便写一个错的符号啊,我假设我写个中文的分号好,选择点运行,这个他会报错,对吧?报错后面有很多的英语, 这个英语怎么去翻译呢?我们就点到这个信息啊,这里有几个卡片嘛?点开这个信息啊,再把后面这个英语复制一份,复制打开你的翻译软件,是吧?比如说有道翻译往这里粘贴,哎,它这个英语这翻译过来就在这里啊,你就跟着它的翻译意思来做一个修改。 好吧, 下一集表的基本操作。

hello, 大家好,从今天开始我们要开始一个新的系列,我们要开始进行对于 circle 语句的学习,就是数据库一些相关的知识,我们主要是进行一下 circle 语句的练习。 我们今天使用的这个 circle 语句的刷题网站是牛客网在线编程,我们来看一下,今天我们来看一下第一题,它已经给定好了一个 user profile, 一个数据表,那么我们如何想要 查看用户信息表中所有的数据,那么我们如何取出来呢?你看最后的输出结果是和之前的一个数据表是一模一样的,那么也就是说我们要查询整个数据表,对吧?我们来看一下相关的知识点。 这课我们要使用的是 select 语句,我们来学习一下。 select 语句主要是分两种,一种是对整个表进行 查询,可以查出整个表,但是还有一种是要取某个表的特定的几列,比如说我们的第一列和第二列,对吧?那么这样的参数分别就代表我们的字段名嘛。 然后 table name 代表的是查询的表名称,这个新号表示通配服务,它意思就是说表示选择表中的所有列,像在这道题中, 他要查询的是整个数据表,所以我们当然要选择这一种,我们来写一下,我们就是要使用通配符的这种形式,我们给一个注示,比如说这样通配符,我们 我们要使用这个语句来查询整个表,我们来具体的实现一下,我们复制一下 表名称已经给定我了,我们来替换一下,我们来自测一下,你看他写的是可以通过的,像这个测试用力是可以通过的, 然后我们点击保存并提交,看一下是否正确呢? 没问题的,对吧?这是我们的 circle 第一题。那我们来一起看一下第二题,我们来比较一下第一题和第二题有什么区别。同样的一张表, user profile 也是同样的表格,字段也是都是相同的,但是有一点是什么? 我们也来比较性的看一下第二题。第二题是查询多列,多列不是整个表格, 你看他给定我们数据表名称是相同的,和第一题相比,然后数据表也是相同的,包括字段名完全都一样,但是他最后的查询返回结果是这四列,对吧?原本他是有六列的,但是只取其中的三列,只取其中的四列, 下个知识点就是我们要取某一列,就是使用这个语句 select, 我们来注视一下,写个知识点, slat 第一个字段名和第二个字段名,然后从这个表中查询,对吧? 那么我们来写一下 slat 要查哪几点呢?我们要查这个第一个参数,逗号,我们要用逗号连接,哦哦,第二个参数, 第三个参参数,还有第四个参数,我们要取这几个字段,从哪里呢?我们要从我们的这个数据表中,这个数据表。我们来复制一下 user profile, 注意这里不能和 follow 相连接哦,这里必须要有一个空格,当你的这些重要的关键字出现蓝色的时候,说明就是正确的。现在我们来自测运行一下,看看查到了没有, 保存并提交没问题的,对吧?好的,今天的练习就到这里,我们今天主要是学习一下 circle 语句里面的 select 查询语句, 也是学习 circle 语句最简单的两个事例,因为它主要是进行一下字段的查询和整个表的查询。 那么我们下节课要学什么呢?我们下节课要来学一下查询结果去重就是一些简单处理查询结果,我们拿到了所有的查询结果,或者是其中某几列的查询结果,我们要对数据进行一下处理,比如说我们要去重, 比如说我们要返回某几行,或者是我们将查询后的某一列,比如说我们这里的年龄,我们要改成用户年龄的,要改成 user 地址,我们怎样去重命名, 这些都值得我们去思考,我们每天进步一点点。今天的 circle 语句的学习就到这里,我们下节课再见。

哈喽,大家晚上好,今天和大家分享一个网站,就是我们的菜鸟教程, 它可以学习计算机任何的编程语言,包括一些框架什么,还有数据库,嗯, ai 数据分析,还有开发工具叉, ml 教程,还有点。 net, 还有一些网站建设的一些相关的知识。 嗯,当然我们这个系列主要是学习我们的数据库,你可以选择你的三扣,也可以选择你的买三扣,或者是等等一些 数据库的语言,我们来主要学习一下三扣,我们点击三扣教程。今天我们来看一下纽扣网里面的第三题查询结果去重,大家,我们来看一下纽扣网里面的第三题查询结果去重,大家,我们来看一下纽扣网中我们主要是学习了 在我们的上节课中,我们主要是实现了对某个数据表整个 数据的查询,以及对数据表中某个字段,也就是某几列的查询。但是我们有时候不一定要 对于某一列或者是所有数据全部都要拿过来,我们要对里面的数据进行一下操作。今天我们来看第三题,要查询我们结果去重, 我们来看一下现在给的这张表和上节课都一样,对吧?它要查询到的表是什么?是出现这个 university 大 学名称的一个子段,所以我们还是用 slide, 然后要查询这个子段。我们先写好一个整体的 框架,我们用记事本, 我们打开记事本,我们其实首先我们要从这个表中,对吧?我们来简单叙述一下从这个表中,然后第二步是查取 查询某几个字段,然后再对再对某几个字段 过滤,一般就分为这几步,我们后面会增加新的一些方法,我们会进行补充。我们先看一下这些 插入这个 university, 然后从哪里呢?刚刚我们说从还是我们之前的 user profile, 这样就完成了吗?完全不是的,它说要去重,我们你看它一共有五行数据,但是我们可以看到北京大学出现两次,但是在最后的结果中它只有一次。那么我们今天来看一下对应的知识点。 select distinct 就是 去重返回唯一不同值,唯一不同也就是不会出现重复值,比如说我们查询现在这个表格里面, 像有一些它就是重复的,比如说在 control 里面有重复的, 它的语法是怎样呢? select distinct country from websites。 是 不是把 distinct 放在这个字段的前面?放到这个要查询, 再填前面写一个 d, s, t t, 然后按一个空,然后按一个空格。我们可以看到一些特殊的字段,它都是变成蓝色的,所以这里我们也要去注意一下, 特别字段和普通字段它的颜色是有区分的。那好,我们来自测一下,运行显示,可以通过我们保存并提交,没问题的,对吧? 今天我们就要掌握一个知识点,我们每学一个要记住一个,然后不断地去重复的复习,那么这样我们后面会积攒的越来越多。 我们这一课主要学习了 distinct 这个重要的子段,可以返回唯一不同的值,也就是我们这道题实现的去重。今天我们的这道题就分享到这里,我们明天再见,拜拜。

接下来我要教大家的内容是 ddl 语句的一个使用,刚才咱说了 ddl 可以 干嘛?操作库,操作表,操作自断,这三项是不是都可以啊?我给你分三个,视频讲一个,视频讲一个。 那接下来我们先来看第一项, ddl 主要负责库表的结构设计,那接下来呢,我们来看看它的格式啊,比如说未来十级开关中,怎么着呢?我记得刚才我图里边已经画过了,你们还有印象中 一个项目,来看这个,什么时候我们才会建一个库啊?一个项目是不是考虑建一个库啊?所以你会发现在这个位置来了啊,京东超市一个工程,这是一个项目,京东首先又是一个工程,一个项目, 所以呢,你会发现京东超市的数据库,京东生鲜的数据库是不是可以做成这个操作了?然后呢,既然再往前边,那就是各自有各自的一些表,比如说京东超市的用户表,京东生鲜的用户表等等等等。所以你有没有发现一个项目下啊,一个数据库下 可以有多张数据表,那就是一个项目,一个数据库,一个数据库再来多少表,还有这样的一个关系。 好,那接下来再往下边儿就是我们来看看库的操作,跟着思路啊,来库的操作来了啊。第一步, create database 名,建库的, 但是库存在会报错,创建会报错。再来,当数据库不存在时,创建数据库 create database, 念下这个单词叫什么? if not exists, 如果不存在,我告诉你它有一个语法叫 if not exists, 这是如果存在, 接下来再往下边写上啊,叉 set, 叉 set 是 什么?是指定码表? utf? 什么 八八没有杠,不要加杠,加杠报错。为啥规定啊?只有数据库里边这儿不加杠, 但是如果说你要是用 python 什么来写,要不要加杠啊?要加杠呢?这是啊,为了以事区分这个地方我再说一遍,在括号语句中,码表没有杠,不要去写 utf, 杠八是 utf 八。 好,再来。再往下啊,数据库不存在,则创建存在,会有忽略啊,那再往下啊,这个是指定支付集好了, ok, 一 会儿接出来,长这个样子,如果你不乱码,听好了,它长这样,如果你乱码,它长这样。 哎,能看明白吗?再往下啊,来了, show database 显示所有数据库 use, 这是修改数据库啊,就是使用数据库。 那接下来再往前边,注意后边有个什么 s data base 是 不是一个数据库啊?加一个 s 就是 一堆数据库的意思了。柚子就是切库。那再来如何知道当前用的是哪个数据库呢?柚子 啊,有人说瘦是吧?我告诉你都不用干啥呢?你也不知道当前是谁,你柚子一下再切一下不就行了吗? 我比如说我现在,我也不知道我用的是二还是三这个库,但是我知道我将来要用三这个库,那我怎么办?柚子在这,你写个三这个库不就切过去了吗?我管你谁呢,你爱谁谁谁。所以我下边这个问题我是不是用柚子可以解决啊,但是写的太 low 是 吧,咱总得会点别人不会的 啊,才能显得我们比较厉害。所以呢,如果知道呢,这里边有个叫操作,你看第一个可以看,直接看就行了,第二个叫 select select 是 选择叫 database 小 括号。那这个呢,就是帮你去查看当前用的是哪个库 好了。那再往下边就没了,这是一个删库的动作,你看我给你写了三遍,注意实际工作,念一下这几个字干嘛不要删除数据库,你们不经常听一句话吗?听啥话?删库,跑路跑。这个就是删库 啊。这就是删库的那个删库啊。那跑路怎么跑?这个我就不教你了是吧。啊,你就撒泡跑就行了,但是也跑不掉啊。所以那再来往下就 ok 了,就结束了。好,看了一遍那几个语法你们 背下来几个?一个我刚语法给你念完了,就那几个背下来几个,一个也没记住。过分了啊过分了啊。来了,我开始了,你看我怎么怎么讲啊, 整个这一堆拉过来了,这是刚才朱师那一头写这了。来来来,我再给你讲一遍,就是关于 circle, 你 要做的只有一个字啊。只有一个字?什么?敲 circle 在 我看来学不会。只有一个字。这个字是什么?是懒。学不会 circle 只有一个字,懒, 因为他没有像我们前面学的 python 啊。学的什么呢?你看看衣服里边套个缝啊,然后再套个什么位子套个什么给你套。懵逼了,但是我告诉你, solo 里边没有 solo 里边我很负责任告诉你没有,我们不玩那么深的操作。你学不会 solo 只有一个字来,敲的少,没有别的,就你不用动脑子,那格式是死的,敲多了你就记住了。好,那么接下来我们开始来写了。哎,一堆的芯 好案例一晚上你们回头练哪个代码?你们是不是就可以晚上案例一案例二,案例三,案例四,是不是可以按顺序来练啊,不然的话你也不知道我现在标到哪了,所以我给你标清楚,因为这块就是多敲多练就能搞定的活来开始了,把前面这个复制一下,这个叫听好 d d l 语句。 d d l 叫什么语句?数据?什么数据定义语言啊?叫 definition, 对 吧?好,那么接下来我们来看看后边这个 d d l 语句操作,念一下这三个字叫什么?数据库?数据库?哪个单词? data face later face。 来了啊,来了,首先,那接下来 c o r d 啊,增删改查,我先教你,第一个动作叫查看已安装的, 叫已创建的所有数据库,跟上来了吗?好嘞,第一个叫什么?展示 select, 白学了,就照这几个抄,你再给我弄 select 我 就怼你了啊。好,就这个 看一下啊,那往上看,就这几个单词啊,来了,第一个查看你创建的,念下这俩字叫什么?所有,那不就展示吗?展示哪个单词?受这个单词啊,受, 受啥?受?受什么东西好? ok, 就 跟写文章一样,问你数据库哪个单词? data base d a d a b s 啊? b a s e 是 不是这个单词啊?一堆的库,所以要在这个单词的后面加上一个 s, 你 看这样来做的话,它是不是就显得简单好多了,对不对?我带你推理啊,我不是,来,我给你默写一遍,你看我写完了,我多厉害。好了,你们照着我抄一遍就行了,没有意义,我来带你去推,你得知道这个语句格式大概是怎么定义的,然后那你再来记就好。记了 啊,你要想让我讲的快,我就把这个给你默写一遍,我默写完就背就好了。那我觉得可能没有太大意义,所以来那 ctrl 回车。哎, 等会儿。这,这个怎么在这展示的来着?咱上午的时候效果是不是都在下边展示的?他怎么弄到你语句下边来着?哎,还记得这个地方有个叫 in editor, 什么什么 results, 是不是在编辑区展示结果呀?打勾就行了。哎呀,老师,这个对号怎么跟三十揉一起了?没有关系,第一次是这样,你看这回车再跑一遍他就回来了。 老师你咋知道呀,这玩意都玩过多少回了,都,再跑一遍就行了。来,我不想玩这个内容了,怎么办呀?你可以把它点这个叉,把它叉掉就行了。好了,这是查看原装的所有输出。 那接下来我问你个问题啊,刚才大家看到我这里边有哪个表?一二三是不是有这三啊?有这三张数据库啊,三个库。来,我要开始教你动作了。你猜我要教你第二个动作是什么?创建数据库是吧?啊,那行,你说创建就创建吧,创建数据库 没了,就连几大组。开始了。第一个,哎,创建数据库,那创建,创建之前你得先把它删了,一二三都在你创业他肯定报错来。创建哪个单词?往这里边摸。创建哪个单词? create, create 数据库。哪个单词? data base 有 s 吗?没有 data base 有 s 吗?为啥不加 s 啊?单个的库。你现在创建库是不是单个的库啊?单个的库加什么 s? 不 加 correct database, 后面写啥数据库名? delete 一, 我问你个问题啊, delete 一, 这个数据库我这有没有?有有,所以你再创建它会报错。看啊,来。哎,等会你看,跟刚才不一样了,刚才是不用选啊,这句话不用选, 直接光标在后边或者在中间都行,在哪都行,直接 ctrl 加回车,你会发现他是不是会把这句话给你选中啊?你知道他是怎么选的这句话吗?他怎么知道我这句话到哪结束呢?因为最后有什么有符号,你看这个跟刚才不一样, ctrl 回车 默认是不是第一个呀?啊 stay, 叫啊 stay 的 动词就是选项,如果你要摁一下下,选中他,我去,这是不是把我整个文件内容全选完了?我说一下,如果你选第一个,那么他只执行你这一个词口, 如果你要往下选,选了他,他会把这个文件中所有的字号全给你执行一遍,分上来了吗?所以一般来讲,我们选谁选第一个啊?那结果你发现杨老师报错了, congrate 的 他这个位置有没有英语好点的?啥意思? 无法创建?为啥无法创建?因为库已经存在。老师,我不会问你个问题,我教没教过你装一个这个插件还记得吗? creation 是 不是做翻译的?你要还不会怎么办到 c 把它怼进去。我就不信你照这玩意你还不会写。 他都已经告诉你了,无法创建数据库的零幺。后面有句话叫什么数据库存在。那就意味着你现在还想建两种手段, 第一,干嘛把这库删了重新来一遍。第二个,改个库名是不是就可以了?哎,都行,那我们用谁呢?我们删除的方式,因为我们一会要玩其他的动作 来直接开始了,跟着我思路。所以呢,整个这个位置我要把库删掉。怎么删库啊?念一下,终于开窍了。 微博你也 delete 他 了是吧?好,那来啦,来了。怎么写?后边猜,删除数据库。数据库?哪个单词? later base 哪个数据库啊?点一看,上回车删掉了。 我复了一下,我反手就一个 d 零二,删掉了,我复了一下,反手就是一个 d 零三,我删掉了。哎,哥,上来了吗?那我问你啊,接下来这个一,能不能创建啊?能,能创建,你看这里不是来个对号啊。来个对号怎么办呢?四代的星,直接解锁就行了,看看这个意思。 好,那接下来呢?跟着我思路,我们接着往下来走啊。这个是这一堆,但是现在有个问题就是你的库的码表是啥?我不知道啊,所以接下来我再教你个语句。这个是第七个 啊,查看某个,查看某个 数据库的码表。来,你告诉我创建数据库是哪个单词?是不叫 created with 啊?好,那么这个代码呢?展示展示,展示哪个单词?兽,所以叫兽 说什么?把刚才语句拉过来 created with。 哎,跟上来了吗?那这样他会把你的动作给你展示出来。那你用的啥码表?我很好奇。朝回收来吧。你告诉我它什么码表? ok, 上 c。 你 把刚才代码拉过来,你告诉我它现在用什么码表?默认默认什么码表?五点,五点,五点五杠八 马表。哎,听懂了不?这个一是他,那接下来我来做一件事情。什么事情呢? create, 来个 get base d, a, t, a, s, e, 然后呢?来个 get 零二, get 零二,来个马表。字母级那个单词啊, 啊,叫 c a r a c t a 啊, carter 啊,叫什么 set, 后边写上一个叫 g t k 就 行了。好,这个是以以 gb 码表创建数据表。 好,来第一个啊,以默认码表。这里是这是谁? 这里是 u t f u t f 八六八。好了,那接下来我们再来看一下,以 g p k, 我 们来创建 ctrl 加回车。我问你啊,二现在是不是已经造出来了,你告诉我怎么做?我们来一个 d r 就 行了。 c r 以后 ctrl 加回车。那再来帮我念一下整个这个叉 set 等于什么? g b k, 所以 这个是 g b k 啊,那接下来往下来看,还没完,还有呢? create 在 the base。 好, 我说八秒啊,那么创建数据库,那在 the base 这里要告诉我,他现在再次执行,知道吗?没报错, 这刚才是不是已经说过了啊,为啥汇报错啊?因为出入库存在存在。 好,怎么解决这个事情啊?改名或者把他删了,要么改名,要么你看我这样讲能不能听懂。哪个老师给你讲的改名好,这个操作叫衣服。 这句话是啥意思?不是会报错,这这句话是数据库在一样,不存在,存在就 科长回车,科长回车,科长回车,科长回车,科长回车,科长回车。 有问题吗?没有没有,没问题。那接下来呢?我们来看接下来还有一个,还有一个呢,就是关于修改这一块。那你看啊,建库我就讲完了,建库一般用的就是它,所以完整建库来写这了叫完整建库,格式 好, create 点零几了,点零三了吗?对,好叉 set 啊,凯瑞凯 set 也可以写成叉 set, 比如说叉 set 等价于上面这个单词的缩写,叉 set 等于码表。什么码表呢? u t。 啊, 好,我讲完了,那也说叉啊,这个叫采用。 采用什么?哎,没有没有看啊。啊,采用啊, utf 八码表创建电影三存储,如果存在就什么都不做, 那也得怎么做这个事。 但是这个 e f 要写到哪里啊?这个三呢?前面啊,所以 create the base if not like this 啊, delete 三,后边指一个字母 g 好 了,所以这个就是完整的进库格式,学会了吗? create the base if not like this 啊,如果不存在它,我就创建直接码表。 好,接下来我们来把三接出来。那接出来以后,那么关于创建这一对就差不多了,查看呢?就第一个,我们也讲完了,接下来该讲修改了,修改只有一个,就是叫修改数据库的俩字小码表,它也只能改码表。 好,什么意思呢?我先问你个问题啊,来告诉我, d 零二,看这 d 零二目前是一个什么 g b k 好。 d 零二啊,我再说一遍, d b k 好, 接下来呢?我的需求是把 d 零二码表啊,把 d 零二从 g b k 拿出来用八。 哎,听懂了吗?好,来这儿抄,不会写不会抄吗?老师抄我都不会抄答案, 这个代码跟上面不一样吗?你看这一堆,来吧,修改是哪个单词? alter, 我 看你背了吗?这单词修改是 alter 啊,在这儿修改是 alter, 然后呢?再来一个数据库,哪个单词数据库?哪个库?数据 库,你就直接写叉 set 就 行了。 let's 码表我讲完了, 你觉得难吗? alt 在 the base, 谁谁谁指定新的字母记走,你来执行成功。刚才看那个 d 零二是还是 d k 呢?看着会撤,来,告诉我现在已经变成啥了,念这是什么 u 型吧。 哎,跟上来了吧。再看哪个没讲茶讲完了,曾也讲完了,山也讲完了,那接下来是不是就剩最后一个了?看看当前用的是哪个库,怎么怎么看来着?柚子啊,第一种柚子切第二种就看,这就行了, 看哪呢?看这,现在我想让他用哪个库就用哪个库,点他看有第一第二第三,看到了吗?我点他用第二,我点他用第三,我点他用第一。 哎,跟上来了吧,在这切裤子。好了,来接下来我们做一件事。啊。啥事嘞?来往下看,除了他以外呢?查看有哪个书库还没完呢还没完呢 啊,第一个右上角我是不可以看,加语气可以看,这个柚子是不可以看,我也不想用,还有别的吗? 这个记一下就行了。这个是一个函数啊,叫 slack 的 位置零二,如果我要把这个位置换成零一呢?有这个环节他的结果就变成零一了,哎,跟上来了吧,根据他来展示了。好,来最后一个,最后一个真的是最后一个了,切换出用户那个单词, 柚子柚子柚子柚子柚子,你看再来一个,我要柚子柚子二, 看这个地方会从一面来,嗯,哎,跟上来不好,所以叫柚子封号,这是切换输入。好了,整个这一堆我就全讲完了,我全讲完了,来来,再来念一遍啊,关于酷的茶, 然后呢?酷的增,然后呢?再来一个酷的改,然后再来一个最后酷的什么?或者删删,是不是在这已经玩过了?嗯,好,那这就我们第一波啊,第一波大家把这个可以快速的去悄悄去练练去试试是吧?好嘞,我先保存一下啊。

好,到目前为止呢,关于啊, sql 语句之操作数据库我们就已经聊完了,那接下来呢,我来教教大家表的一个操作,那么你来告诉我,表的动作应该是类似于啥呀?表的动作是不是类似于刚才咱说的那个地方就这个位置 啊?也就是说现在咱已经在这里边学会了这个动作,你是不是已经把这个库是不是已经切出来了?那接下来呢,我要做的事情就是,哎,等会儿我怎么样才能去切到这个库 而不是别的库呢?怎么切这个库啊?柚子,我柚子到这个库以后,我在建的表全都是这里边的, 如果我柚子到别的库,我在建表全都是这里边的,跟上来了不?所以第一件事一定要切库啊。来,接下来咱来看看库这个啊,操作之后表的一些内容,你看啊,创建数据表,它的格式是这样的,叫 create table 表明,哎,等会这个地方它有类型了,这个类型呢,是在后边写的,先看啊,前边先写名,后边写类型,等会这个中括号,念一下, 中括号是啥意思?中括号在 l 两次中我写过,是不是代表可选项啊?所以呢,接下来这个约束啊,就是大家可以写,也可以不写 啊,那约束是干嘛的呢?我告诉你,约束是在数据类型的基础上,对这一列的值继续做限定,但是我知道我这么说你们懵,我问你个问题啊,数据类型是啥?假设我的第一列这个列是 int 类型, 那就说明数据类型是不是 int 呀? int 能限定的是什么?你这列只能是整数,然后不能是字母串,如果是字母串是不是就报错了?那但是 int 能不能限定我这里边的整数不能出现重复值? 然后呢?我这边整数必须是递增的或者别的等等等等。 e t 能做这事吗?他做不了,谁能做呢?约束,所以约束就是在数据类型的基础上,对某一列的数据继续继续做限定啊,做这个事情的 好,那么啥行啥不行,约束说了算。那接下来往下来 create table 开的 great 开的 great 是 什么表啊?是不是叫分类表啊?你看后边儿类型 id int 类型 primary a 等会儿 primary 这个单词是什么意思啊? 啊?主要的意思 primary key 分享过来就是主键的意思,所以它是约束一种,叫主键约束。而主键约束有个特点,它的特点就是该列值第一必须具有唯一性,就是一已经存在了,它就不能再有第二次。第二个该列值不能为 空啊,不能为空。这里边的空不是难,而是闹。不是这个难啊,不是他,而是闹。 n u l l 空等价与 python 里边的难没有任何区别啊,都是空。 好了,那接下来我们先来往下看啊。哎,等会这里边这个类型念一下。这个类型怎么念? 你看吧,我就猜你们会有这样念的啊,那这个,这个发音怎么发的呢?我听过比较奇怪的发音就是哇叉的形是吧,你不要这样去念啊,你这样念出去别说我教过你啊,我没怎么讲过课。 v a r i a b o e variable 什么意思? variable 什么意思啊?变量的意思吧啊,在这表示变量,然后呢再往下 c h a r 然后呢?差,其实就是角色, 然后呢?这个单词有个 c a r a c t r 叫 character, 叫变量角色,变量角色等于变量角色啊,变量角色嘛,它是这个意思,叫变量的角色。 然后呢,我给你讲一个题外话啊,问一下你们玩游戏的时候有没有听过 n p c 啊? n p c 什么意思啊?人机,人机 no player。 character 叫非玩家扮演角色,就是 npc 就 不是玩家的啊,就是其他的那些,那个叫 npc 啊,对, npc 电脑人就没有脑子的,怎么怎么样。 character 是 角色的一个单词 啊,那么这个单词收回来,收回来。这个单词的发音呢?就是第一个单词呢,叫 variable, 所以 我一般念,我可能会喜欢往里收,叫 y 叉,我可能会念这个,有人呢,会念哇叉,然后。但是你不能加重音哇叉是吧,那 就跟那什么似的,就人怎么念都行,反正我说音是 y 叉往里念的,然后这个类型是什么呢?这个类型等价于我们 python 中的那个语句啊,它代表字母串,就是 python 中我们是用语句 str。 这边是用 y 叉这个类型来表示 啊,但是不能念那么奇怪的法语啊。小括号一百,这是啥意思呢?说明这里边最多最多只能写一百个字母。 那请问十算几个字母啊?算俩,一个十啊,一个一,一个零。那比如说大家知道在实际开发中,我们一般会对你的密码长度啥的是不是做限定啊?如果我这里边写个小括号二十,那就意味着你最多只能存二十个,再往后我就存不下来了啊,是这个意思啊, 行了,咱说出来,咱接着往下看,还没完呢,类型咱稍后再说啊,就是这约束啊,稍后再讲。那接下来我们先来看看啊,第一个查看库里边有哪些表,收 tables, 哎,如果我要看库,什么叫收 data basis 是 不是跟这一样啊?再来那查看指定表的 结构叫 dsc, 就是 describe 展示详情的意思啊。这个一会儿我给你演示啊,先看一遍。那你们尝试默写默写就是不算默写啊,默记一下对吧?一会儿呢,我会带你写,写完以后,然后呢,我们还会给大家时间列。 那再来修改指定表的名字, rename table, 旧表名 new 新表名,再来删除指定的表,然后叫 drop table 表名 啊,是这种,那接下来呢?再往下边就没了,如何创建?然后等等等等这堆来我给大家演示一下。首先切过来以后,第一个动作应该是把刚才这堆是不是给他干嘛呀? 复制粘贴一下。二零几了。二零二 ddl 语句数据定义操作,不是数据库了,叫数据表。数据表表的话是哪个单词啊?叫 table 啊,也就是说现在我已经成功的从刚才的这个圈圈里边。我已经从这个圈成功的进到了 这个圈里边。跟上了吗?我已经到这步了啊,来了,开始写了啊,开始写了,写什么呢?往下看,首先第一个动作我们先来看啊,第一个动作跟上边一样,一想干啥先别忘了一件事,一定要干嘛,切库,切库, 那老师当前用的是哪个库啊?你在这 slack 的 位置是不是可以查一下啊?我一般不查。为啥呢?我要不看上面现在是不是 d 零二啊,我要用哪个库, 是不是点零一啊?右子点零一。好了,看车回车。问你个问题,我现在是不是已经切到了点零一这个库了?嗯,那我管你是谁,我已经过来了,来第一件事,查看,查看数据库,找当前数据库中啊,所有的数据表。 哎,等会有人会问我一个问题,老师能不能查这个什么呢?听清他的需求,他的需求是查所有库中的所表,比如举个例子,我有五个库,你把另五个库的所表同时给我打出来,做不了这事, 能听明白吗?只能是你切到哪个库,你只能玩这一个库里边的东西。那于是来叫售展示 tables, 就是 展示锁的表,结果你发现,我去,居然是一个什么控表,为啥控表?是不是没有啊?那接下来我们开始来建表。第三个操作叫创建数据表,格式如下, 数据表,来你,你帮我建一个吧。那学生表字段为为学生 id s id student 的 id 嘛?叫学生 id, 再来下一个字段,姓名, 学生姓名 age 啊,叫学生年龄。来啦,你帮我把这个做一下,请问怎么做呢?来杠精格式啊,我给你写一下格式是什么样的格式,看好了,来了啊, create table 中括号中括号表示格式啊。 if, 哎,这个 if 还可以写 not, not e, s, i s, t s exists, 就是 不存在,就创建后面写上数据,数据表明啊,小括号分号在小括号里边朝回车往下写 好第一个字,断名啊,字断名,字断名,其实就是列名字断名空格,数字类型空格中括号写约束, 有就有,没有就拉倒来复制复制。然后呢?接下来再来就叫干嘛呢?这个操作来往下来啊,逗号点来点点来点,最后一列没有逗号,听明白了,不加了就报错,这是你们容易栽的地方。最后一列没有逗号啊,虽然我说了你,你一会也会犯错,没事,多栽两下你就学会了, 然后接下来往下来走啊。来,看好了,字代名竖立行约束。那接下来呢?我的需求已经给你了,是建一个学生表,来,你帮我建一下。应该怎么做啊? 可瑞呢?对不?衣服 not 一个 this。 我 问你这句话我不加行不行? 行,我加了和不加有什么区别?加报不报错就是表存在的时候报不报错,你不加表存在是不是就报错了?你如果加了表存在,是不是啥都不做呀?对,仅此而已,没有别的任何区别,来此就等他。 好,那么接下来先写啊,你别这样写啊,有人写代码是先写小括号啊,人家都给你补齐了,这哥们还得硬删一半,然后往下写,写到最后咵,他在这给我补个封号,老师你看我代码哪错了。 好,那写的时候啊,注意啊,我教你一下,直接一对啊,就是一对,写完以后写个封号,完事以后光标挪到左边,跟上了不直接敲回车,然后在这里边写就好了。 来,接下来第一个字,短 s, i, d 什么类型?学生的一个编号。那学号肯定是啥类型啊?肯定是整型嘛,所以 int 类型就行了 啊。其实后边应该写上 primary key, alternative, 但是这玩意没学过。这个东西是啥?这个东西我告诉你,这是主键约束的意思, 那意思就意味着将来你往里边扔 sid。 第一不能给我扔空纸,第二不能给我扔重复纸,听明白了吗?这是做限定的,但是这个没学过不写 没学过不写删一会再写。第二个是不该写内幕了?内幕什么类型啊。玩儿差。玩儿差多少呢。二十姓名正常,二十字不够你写少数民族的话应该也够了。再来往下来个 a 级。 a 级什么 in 是 不是就是你的年龄啊。好,下边你可以写注式,我一般是喜欢在后边写这个叫学生的一个学号。 好,下一个操作就是学生姓名,下个操作就是学生。学生,哎,很好,学生年龄。 好了,那接下来看。好啊, ctrl 哎, ctrl。 有 人又问老师他怎么多俩选择。你看啊,我问你那 ctrl 加回车是不是执行这个语句的?你要么,你要不想用你就选中这段,然后点执行也行,跟上来了。不, 我个人是喜欢用习惯了光标点里边也行,点外边也行,反正他是以这个分号结尾的。从哪开始呢?从上面这个分号结束到下个分号开始。比如说当你 ctrl 加回车以后, 他会自动找到这个往后,这个往后,但是这个干嘛呢?往前的这段内容。这就是一句话,跟上来了吧。那这样找的,那现在我就 ctrl 加会车,默认是不是就选中当前这一句话呀?如果你要跑所有的脚本,你摁一下下 是不是就把这个代码就给执行了?哎,那么他就选中所有了,当然我们就跑这一个脚会车。哎,等会表见没见出来。见出来了吧,我家约束了没? 没加啊,一会再一会咱加。单独加先不做,一会加。来问你个问题, ctrl 回车收 tables。 请问我多没多一张学生表。多了好了。 ok, 那 这就是查看当前所表以及创建学生表。能创建就能,干嘛 删除,我还没玩呢,你上来就给我删了,哎,太狠了吧,多大仇多大怨啊。 好,创建出来了,接下来那就是查呗。查,不就是刚才第一个我们查看所有表吗?然后再来一个,那不就是修改数据表吗?对吧?那修改数据表,你可以来个叫修改数据表那名 名。有人说老师改里边的字段算不算改表?算,但是我一会单独罗列就是里边这个字段,怎么改?听明白了不?现在你先帮我把表名改一下,修改属于表名,从 student, 你 给我改为 sto 来格式, rename table 就 表明 to 新表名。我就问你一件一件事,我把格式往这一怼, 请问这个代码你会写了吗?会了,你就是这玩意记不住而已,怎么办?多记几遍不就会了吗?好,来 rename table, 谁谁谁 student。 二, two two s t u 啊,写完以后你看是不是改表名成功,当你再来收 tables 的 时候,你的表名已经换成 s t u 了。 好,以后你如果再写刚才的 s t u, 他 是不是就会给你报错了,找不着了。那接下来就是改啊,那老师还有啥改?还有字段,这个字段一会再说,来增,我们讲完了,不就是创建吗?删删删,表,我们还没讲 改,那就是改表名。讲啊,查,查询所有上面是不是有个叫什么操作。收 tables 是 不是也讲完了,接下来就剩最后一个了,最后一个就是删,删之前我让我这个代码啊再发挥一下价值,我们写一下叫删除数据表, 删除数据表,然后听好了格式我给你写一下,格式叫戳 table, 数据表明。 好,那么接下来来吧,告诉我怎么删 top。 你 不会在这里边写个 e f 呢?的一个 z 四四吧?这是 e f 一个 z 四四,就是如果存在我就删除,如果不存在啥都不做。 这上来了吗?啊?中间这个是 e f, 一个 z 四四,看到 c。 好, 那么接下来我问你个问题啊,我的 s t u 在 这里边存不存在啊?存在,所以删除。 删除以后,请问还有刚才的表吗?没有,没了啊,这是删除数据表啊,接下来那老师你敢删吗?那有啥不敢,为啥?借表的语句不是在这的吗?你再点一下这张表,他不就又回来了。又回来了吗?跟上来了吗?实际开发能不能干这事? 可以吧,把那个八字吃了,不对,把这仨字都吃了,对吧?差点说,可以,是吧?实际开发不要干这事,你要干这事,我跟你说,你老大不是拿砖头追你,老大拿刀追你,真的是。 然后呢?实际开发你如果真干这事,你说老大,你看啊,我照着咱数据表,我把这个创建表的字段留着了,然后你看我把表删了。 那你跟老大说,哎,老大,你看,我把表又借了一下,因为咱公司成立时间太长了,这个表里边东西太多了,我又给他格式化了一下,对吧?你看你老大怎么处理你 啊?那你要知道现在有个法叫呃,信息安全法,那信息安全法如果说你真的因为你商户或者不超不当的操作给公司带来比较大的一个经济损失,公司是可以干嘛 起诉你的啊?公司可以起诉你的,你们当然在网上搜一下,还真有,还真有程序员,然后因为什么谈离职赔偿还是啥没谈妥。然后呢?就是从公司离职了,离职的时候把那公司的库给删了,然后那公司就直接送了他两年还是三年的牛首族。 那哥们现在出来没?应该还在里面蹲着呢,是吧。啊,所以程序员也是一个高危职业是吧,哈哈,做不好容易把自己送进去啊,所以你们要注意啊。所以来了啊,来了,我们现在现在随便玩,到公司就不能这么随便了,现在随便霍霍。那 走你。那现在这个时候呢?我们又借出来了。所以说 tables 问你这个表现在是不是已经有了?接下来我教你一个重中之重,将来面试会问如何 如何查看表结构。好,那我告诉你格式。是啊,格式是 dsc 啊,数据表明不是那个啊,不是那个什么 show create 什么 table 啊,来个 student。 你要这么做,他只能简单的看一下里边词段啥的。 ctrl c, 你 虽然没写,但是你有没有发现这是底层,这是底层,但是你看看,对比一下底层,对比一下我们自个界面,你有没有发现咱自个的界面写的是个小儿科,人家是不是在底层给你做了大量的东西啊。 好,你看看有啥你能看得懂的。第一个底部的闹是啥意思啊?不为空,这是一个默认值,也叫默认约束。 再来 int 十一啥意思? int 里边是不是有类似于观察是不是也是有长度的长度十一位,那有人说以后我要不要写 int 十一。不需要,你写了还会报错,你写的只有一个 int, 不要加后边的这个长度。 哎,听明白了吧,底层自己说啊,不用自个做。再来 you 八。 you 八是啥意思?默认的什么码?表 好了,那说回来接着往下走。还没完呢啊,没完,但是呢,你能不能看到我里边字段具体的一些?我不要这么具体的语句,我想简单看看。所以呢,这个语句就是叫谁啊? dsc 来了啊,直接写 dsc, 就是 dsc i b describe。 它是啥意思? 什么意思?描述信息啊,我描述一下你的信息啊, describe dsc 谁呢?数据表明咱的表叫是不是叫 sto 啊?我现在玩一下是不就行了,我看有几个点头的。我刚才已经把这个表删了,我又重新建。现在这个表名叫 si 六的呢, 跟上来了吧。好,来,叫 sedata 啊,不能写它 s t o t e t。 好, 你会惊奇地发现一件事,来问你, file 啥意思?字段啥类型? no, 这个是是否能为 no? yes 是 不是可以为 no? key 就是 它的一个主键 default 默认值,然后下边就是它的一个扩展信息 啊,我们一般只关注前几项呢?只关注前四项。哪哪前四项呢?就四个有东西的啊。第一个,列名,这字的名类型是否能为公以及是否有默认值,一般还会再加一个中间那个 key 啊,就是主键列位 好了。所以 dsc 查看表结构的。各位将来面试问你 dsc 的 作用是不是可以跟面试官讲了?哎,有同学点头了。好,那我知道你没学过 solo 啊。如果你真的学过 solo, 你 会发现 dsc 在 solo 中有两重含义。 第一重含义你已经看到了,是不可以帮你去查看表结构啊?第二重含义,用于做排序的时候,那个升序还是降序呢?降序排列, 如果你要降序,你必须写 de c d 这个单词啊, d e, s c 啊, e d i n g 那 堆 de c d 它是降序,所以面试的时候问到你 d, s, c 的 作用,有个很奇怪的问题, 有的人就记住了,查看表结构,有的人就记住了,讲序排列啊,就是有的人把两种都记住了啊,那有的人可能两种都记不住,对大家来讲,我希望他的俩作用你都得会,但是目前咱是不是就学了一个作用吗?稍后再讲下一个 好了,那到这关于表的操作我就全部讲完了,分别是创建表,修改表,查看表、删除表。好,接下来我们选择一个操作, 把这个就给它查掉了,这就是你刚才写的代码,就这一堆。那现在我们做一个操作,先把它最大化扔到这里来,往下总结了如何创建数据表,刚说过了,叫什么来着?可瑞特,可瑞特的 table, 然后完事以后往下写数据,表明里边写 字段名,数据类型约束是不就可以了?好,那再往下边啊,如何查看表和表结构?查看所有的表, 那是不是叫收 tables 啊,然后查看表结果呢?收,呃,这个收取了 esc 啊,那么表明没有 table 啊,这个没有 table, 那 再来如何删除数据表? table, 表名刚是不是也玩过了啊?再来,那再往下就是 table 表名这一对, 那后边有些操作失利,然后呢?就这个就叫讲 a 列 b。 什么意思?我跟你讲的是那个,你来帮我做做这个,你看你会不会啊,参考我的那个代码,把它来玩玩就可以了。来,我先保存一下啊,这数据表相关操作。

今天我们讲解一道 my sql 的 高频面试题,就是 my sql 的 逻辑架构。很多面试官都特别喜欢问, 能不能讲讲 my sql 的 逻辑架构,大家遇到这个问题千万别慌,面试官其实不是想刁难你,主要是想看看你对数据库有没有一个宏观的认识,而不是每天只会盲目的写,增删改查。所以放轻松,这背后的逻辑其实特别有意思,也很好记,开始之前别忘了关注点赞哦。 想要搞懂 sql 的 架构,大家只需要记住四个字,脑手分离。这是什么意思呢?也就是说, sql 把处理逻辑的大脑和真正去存取数据的手完全拆分开了。我们可以把 sql 想象成一家运转高效的大公司,咱们可以把它上下拆解成两层来看,上面那一层叫做 server 层, 它就是公司的管理层,也就是 mycoco 的 大脑,所有跨部门的统筹规划工作都在这里完成。当你把一条 coco 语句发过去的时候,它首先会遇到连接器,连接器就像是公司的前台保安,它要核对你的身份,看看你有没有权限进这道门。进门之后,语句就交给了分析器。 分析器是个翻译官,它会把你的 coco 语句一个词一个词的拆解开,看看你到底想干嘛,顺便严格检查一下你有没有写错别字或者语法错误, 确认语句没问题了。接下来就到了核心部门,也就是优化器,这里是公司的战略规划部,他会飞速运转大脑,决定你的这条指令怎么执行才是最快的。比如他会决定走哪个缩影或者多张表,关联的时候先查谁后查谁,最后他会拿出一份非常详细的执行计划, 有了计划,执行器就登场了。执行器自己是不干搬砖这种体力活的,他会去调用底层的接口拿数据。 那么这个底层是谁呢?就是咱们要说的第二层存储引擎层,他就是真正去仓库搬砖的工人,专门负责和文件系统打交道。 到了这一层,工人们根本不关心你的 coco 语法写的有多花哨,他们只关心一件事,就是怎么把数据稳妥的写到磁盘上,或者怎么快速的把数据读进内存里。说到这里,你可能会觉得 好像也没什么特别的,那你就低估它了。买 c 口最牛的地方就在于它的存储引擎是插件式的架构,这就意味着你可以根据业务需求随时更换工人。如果你需要支持事务,还要行机锁,那就请 innooper 这位工人出马,这也是现在的默认首选。 如果你只要读写速度快,根本不需要事务,那你可以换成 my sm。 要是你想把数据全放在内存里,体验飞一样的感觉,那就直接用 memory 引擎。 那么大脑和工人是怎么配合的呢? server 层通过一套统一的标准接口和存储引擎沟通,所以管理层根本不需要知道底下到底是哪个工人在干活,直接下达标准指令就能拿到想要的数据。 接口隔离设计的非常巧妙,那咱们把核心逻辑理顺了之后,我再顺势给大家抛一个面试官爱问的连环追问那批,你讲完可能会接着问,既然优化器这么聪明,那他每次选的锁影都是对的吗? 这时候你就可以自信的回答并不总是对的,有时候底层的统计信息没有及时更新,优化器也会产生误判,选错锁瘾,咱们咱们是可以通过指令来强制纠正它的。 好了,买 c 口的架构咱们今天就聊到这里,大家在准备秋招或者春招的时候,多把这些底层概念在脑子里过几遍,面试的时候就像聊天一样自然的讲出来,绝对能给面试官留下非常好的印象。祝大家找工作顺利,拿到心仪的研发岗 offer, 加油!

卖 c 口锁瘾连环十八万,兄弟们是时候反击了!这些年被面试官用锁瘾场景题按在地上摩擦的还少吗?这条 c 口走不走锁瘾?为什么?这个走了那个不走?区别是啥?到底走哪个?一套组合拳下来,脑子还没转明白呢, over, 已经转给别人了。今天我就带你们把这些年的账一笔一笔算回来。第一刀,顺序不对,走不走? 面试官甩过来一条 c 口联合锁隐士,很多人一看,哎呦,顺序不对啊,不符合最左匹配啊,不走,兄弟你输了。答案是走,因为买 c 口的优化器,他不是傻子,他会自动给你调整条件顺序。调整完发现哦, abc 都齐了,最左匹配安排第二 刀,那这个呢?还是个联合锁隐?这次走不走?不走为啥?因为你压根没写 a, 最左前缀直接被跳过了,买 c 口想帮你都帮不了。就像你约饭说我和那个谁,人家问哪个谁,你说就那个谁 谁,鬼知道是谁。如果你也对这类题也答不上来的话,我这整理了能让大厂 h 二沉默的必考题目,覆盖了 jvm 夺命连环问、 spring 灵魂八谷 包并发必考场景 release 深度陷阱,点个赞,甩个 pdf 直接带走, nice! 第三刀,这两条有啥区别?联合锁影还是大家可以先暂停,想一想好公布答案。第一条要回表,第二条不用。为啥? 一条查了自断 a, 但 a 不 在个联合锁影里,所以得拿着锁影找到的主键再跑一趟主键锁影去拿 a, 这就是回表。第二条,只查 b 和 c。 巧了不是,这俩刚好在联合锁影里,锁影自己就把答案给你了,不用跑第二趟,这就是覆盖锁影,一个不用加钱,一个要加钱,你选哪个?第四道,那锁影到底怎么建?回到最开始那道题,条件是这样, 锁引怎么建?正确姿势或者位上。记住一句话,等值在前,范围在后。 a、 c、 d 都是等值条件,应该放前面,能快速过滤数据。 b 是 范围查询,要放最后,避免阻断后面的字段。等值条件可以直接通过锁引结构快速定位到第一个符合的数据,这一步就筛掉了大部分数据,然后再进行范围查询,这叫先精准打击,再范围扫荡。 第五刀,三个锁引, adx d, adx d a, d x e, id 深 c 口是走哪个? 答案不一定。从形式上看,三个锁影都满足,最左匹配理论上都能用,但实际执行时, myico 会评估成本,选一个最便宜的, 这个便宜主要看两样, i o 成本要读多少页, cpu 成本要比较多少次,谁便宜走谁。 myico 也是个过日子的人。最后送大家一句话,锁影面试题考的不是你会不会被最左匹配,是看你有没有真正理解 myico 是 怎么想的。 你以为你在答题,其实你在猜 mexico 的 心思,他会不会优化,他觉得哪个便宜他要不要回表猜对了, offer 到手,猜错了,出门左拐。兄弟们, mexico 锁影这块面试里真的太常考了,考法多,变形多,坑更多。但今天这一套组合拳打下来,下次面试官再拿锁影题,难为你,你就把这张图拍他脸上。来,咱俩聊聊成本评估。

本视频耗时五个月,共计三十小时,三十八分钟,零基础自学黑客从入门到入狱,全套教学视频包括工具安装与使用、黑客攻防渗透测试等,共三百六十八集,此视频内容敏感,很可能被下架,建议先收藏再观看。声明, 此教程仅供学习,禁止用于违法行为。要是想系统学好网络攻防技术,我自己录制的二百节从零到进阶的视频教程可以分享给你,主流的网络攻击和防御的技术都讲的清清楚楚,只要是粉丝留个六百六十六就行,只希望你能把学到的技术用在正道上 啊。大家各位同学们,大家好,我是沐辰,本堂课的话呢,我们来学习一下数据库相关的一些知识点啊,也作为我们整个后面售货处的一个知识储备的一个学习啊 啊,首先呢,刚刚呢,我们讲到了 macos 啊,我们的数据库,那首先呢,刚刚也讲了,数据库,顾名思义就是一个储存数据的一个仓库啊,他们呢以一定的方式呢,把数据呢储存起来,能够和多用户进行一个共享。那么这里呢,就得提一个点,大家记好了啊,就是关于我们数据库的一个层级关系 啊,通过这张图,大家应该做一个初步的了解,什么呢?比如说啊,这里呢,有一个 macos 的 一个数据库服务器, 对吧?在服务器里面啊,他的里面会有多个什么呢?会有多个数据库,那不止一个数据库啊,他会有多个数据库,比如说数据库一,数据库二,数据库三四五六等等, 数据库里面又会有多张什么呢?数据表哎,比如说表一、表二、表三、表四、表五啊,这个成绩关系一定要捋清楚,就里面有什么,在里面又有什么? 那么表里面会有才会有什么呢?对应的一些字段啊,就是我们的行和列,那字字段里面才会有我们所需要的保存的一些数据啊,我们成绩关系一定要捋明白,那这里给大家捋一下,大家可以从这里呢就开始做一下, 跟着我做一下笔记,对吧?我们这里新建一个什么呢啊?新建一个文不文档,大家一定要明白我们的数据库啊,服务器, 服务器的一个什么啊?层级关系,那层级关系刚才讲了一个服务器一个数据库,服务器里面他会有什么呢?他会有多个多个我们的数据库,对吧?那库数据库里面的话呢?又会有多个, 多个什么啊?多个我们的数据表,那表里面他又会对应什么呢?多个行, 多个行和列的一个数据,行和列啊,就是我们的字段,也就是所谓的字段,字段里面才是我们对应的一些想要查询的一些数据了。那么这个成绩关系一定要搞明白,因为后面呢,我们在进行 收购注入的这样的一个渗透当中啊,我们要顺着这样的一个程序关系,一层一层的往下面拿到最里面的这个数据啊,所以我们得一层关卡,一层关卡的过啊,先到服务器里面,然后找到数据库,然后找到每个对应的表表里面,找到对应的行和列,才能在行和列里面拿到我们想要的啊, 我们的任意查询的这样的一个数据。 ok 啊,这是我们要搞明白的第一个点。好,那么这里搞明白之后呢,我们再来讲一讲,那如何去找到对应的数据库?它的库名叫什么?它表名叫什么?包括它的行和列,它的字段名叫什么呢?对不对?我们得知道它的名字,我们才能找到对应的数据啊?好,这里就得提一个东西了, 就是我们的这一个系统库。对,系统库啊,系统库是什么东西呢啊?系统库呢?它是提供访问数据库的一些原数据的方式。什么叫原数据?也说数据库的个人信息, 为什么说讲是个人信息呢?我们这么理解,我们把一个数据库服务器当做是一个人,对吧?当做是一个人,那么每个人他都会有一张身份证啊,比如说身份证上面会有记载你的个人的姓名啊, 对,以及你的籍贯,包括你的身份证信息,包括你的出生年月日等等的个人信息。那大家想一个问题啊,如果说你的身份证啊, 在大街上丢了啊,被一些非法的这种坏人捡到了你的身份证,那是不是可以造成很恶劣的一些影响啊?利用你的身份证啊去可以做很多非法的犯法的事情,那同理 啊,对吧?我们数据库呢,他也有一张身份证,如果我们能够拿到他的身份证的话呢?哎,我们就可以通过通过身份证里面的一些信息,可以做很多我们想要啊做的一些信息。所以整个系统库啊,是在整个微博渗透或者收腹咒的渗透过程当中啊,非常 重要或者优先级非常高的一个东西啊,我们要获取这样的一些信息,那系统库啊,这里就了解完了,其实大家明白一点,就是我们的人的一张身份证一样啊,这个呢就是我们的,当我们搭建一个 呃 my sql 服务器之后啊,在服务器里面自动会带有四个系统库,一定要明白啊,系统库有四个, 哪四个呢?一个呢叫我们的 information scheme 啊,还有一个叫我们的 performance scheme, 包括我们的 my circle 啊,我们的这个数据库包括我们的啊 cs 啊,一共有四个名字,大家记一下啊,名字大家记一下,其中呢啊 比较能够用的比较多的叫 information 这个白色的啊 information scheme 啊,这里面啊它有一些数据是非常敏感,也是我们需要用到的。好,那么一个个来看啊, 首先一个个来看我们这里呢,呃,先来打开我们本地的一个啊, p g b 十二点我给大家可以运行一下啊,看我们本地的一个数据库来运行一下啊,打开,然后呢我们进到 my circle 的 这一个位置啊,我们登录一下我们 circle 啊,我先启动一下啊, 啊,已经启动了对吧,我们进到我们的并木路,然后呢运行 cmd, 我 们来运行一下啊,登录一下我们的 mac 口杠啊,我们的 啊 log 权限登录,包括密码也是 log 啊,根据各各位你们情况来啊,幺二七,本地的啊,点,零点零点一, ok, 好, 我们首先第一步啊,来回顾一下咱们 之前学习卖漱口相关的一些漱口语句的一些语法啊,我们先来回顾一下来,进来之后啊,我们现在来干嘛?来 啊,到这里大家也一样的做笔记就好了啊,回顾一下什么呢?回顾一下我们之前学的漱口语句的一些语法,比如说现在我进来之后呢,我想查询当前, 当前我这一个数据库服务器的什么所有的,所有的什么所有的数据库啊?它的一个库名怎么访问呢?我们可以通过一个啊,一个函数修我们的 data base, 对 吧? eses 啊,这个大家注意啊, es 这样的一条社会语句我们就能够访问。来,我们来运行一下小 a, 他 背四来返回,那我们可以看到呢,当前我电脑上面搭建这个 mac 服务器,它所有的数据库一共几个?一二三四五六七,一共有七个,其中有四个 是什么?是我们的系统库对不对?刚刚我讲了嘛,系统库一共有四个,哪四个?一个,第一个教我们的 information, 不要忘了,第二个 my circle, 第三个 performance, 第四个 cs, 一 共有四个,那其余的三个是什么呢?是我自己创建的。 对,自己创建的数据库啊,等一下呢,还有一个数据叫 test, 看到没有?这里有个数据库的名字叫 test, 这个等一下我给大家会来做一个演示,来学习我们对应的社会语句,来回顾的时候来做一个演示的, ok, ok, 好, 那看完这个之后,这第一个啊,查询我们现在所有当前服务器里面所有的数据库,那如果说我想选中某个数据库,对吧? 选中某个数据库,怎么进行选中啊?怎么选中?可以通过 user, 别忘了 user, 然后呢?数据库名字就可以了,那比如说我这里一个七个,那我刚刚讲的 test 呢?我们来做一个演示,对不对?来,我们来看一看,选中 test, u s e t s t ok, 我 们按下 啊,分号结束,那我们就这里就等于说选中了啊,选中,那选中之后啊,现在我们是等于说已经进到了这一个什么 test 这样的一个数据库里面,那进来之后如果说我想干嘛呢?哎,我想 啊,在这个库里面看一看有哪些表,对吧?啊?查询啊,当前数据库,对了,上面那个是服务器,现在我们是进到第二关了,到数据库了,那么数据库我将 查看里面的什么呢?数据库里面是什么?是表吧,对不对?查看当前数据库所有的表怎么查?通过我们的修 tables, t a b l e s tables 啊,这样的一个啊,售后依据来进行查询, t a b l e s tables。 好, 可以看到当前我这一个 test 数据库当中,它只有一张表叫 t e。 啊,这一张表啊, 这是我自己创建的,就为了带给大家在这堂课里面演示或者回顾。呃,我们售后做的一些语法用的啊,做实验用的啊,一般呢,我们在实战当中啊,或者说一些互联网公司在开发一款商品,开发一款 app 或者应用程序的时候,他对应的数据库里面的表 啊,至少是成百或者说上千啊,这样的一些数量的不可能是一张啊,这里给大家做一个,只是为了大家更好的直观的能够看清楚啊,所以只有一张表, ok, 好, 那么现在呢,我在干嘛呢?我们是已经进到了这一个库这里来啊,这个表这里来了,那我现在呢想查询什么? t e 这张表的所有数据,大家别忘了,其实我们在之前学嘛,搜索的时候应该是学过的,对不对?要用到一个什么 查询的关键字啊?怎么关键字查询叫 s e 啊? select, s e, l e, c t, 对 吧?查询 s e l e c t, 然后呢,写上我们的星号 form, 我 们的表名叫 t e, 对, ok, 这时候我已经写完了,简单解释一下啊,回顾一下, 这个 select 是 查询的意思,那么这个星号呢?代表所有,它是一个通配符,代表的是所有啊,全部的意思。那么 form 后面是说从哪个表查询,后面跟的是我们的表明, ok, 那 这句话的意思就是说,查询所有数据,查询哪个哪哪里的所有数据呢? 到 t e 表里面查询 t e 所有的数据, ok, 我 们来运行一下 s e l 啊, l e c t 啊,查询所有 form, 我 们的 t e 这张表按下回车。那么现在我 t e 的 表呢,就给大家做了一个展示了啊,它里面呢啊,这个表呢?它的数据呢?就在这里啊,一共有三个字段,一个叫 id, 一个叫 name, 一个叫 password, 就 pass 啊,就是 id 账号和密码啊,它的数据就在这里对应的显示出来了, 对不对?好,到这里啊,这个简单查询呢,我们就回归到这里,接下来我们来干嘛?加一点趣味性,哎,我们要进行一个条件查询,对吧?条件查询,我不想查询全部,哎,我只想查询什么呢?比如说, 我看一下数据啊,比如说我想查询啊,我们的 id 等于等于什么?等于三的,然后等于二的都可以,对吧?我想查询 id 等于二的,那这也就叫一个条件了,条件的话呢,哎,我们就得用到另一个关键字叫 will, 对 吧?啊? will 就是 我们的这个条件, will 后面来跟上我们的条件啊,即可, 条件即可。那怎么写呢?那我们写上啊,前面不用变,对吧?查询还是用的是个查询关键字, select 信号 form, 我 们的 t e, 然后条件跟上它的条件 id 等于 等于一。 ok, 这道数学题我们就写完了,查询条件啊, id 等于二的数据啊,好, ok, 那 我们来这里写一写 啊, e c t 查询所有 form, 我 们的 t 一 张表,条件跟上 w e r e 啊,它的 id 呢?等于二。 ok, 回车,那我们就查询了出来了类条数据, id 等于二的那条数据,对不对?好, 那这个条件查询找完之后呢,我们现在又来学一个新的东西啊,比如说,哎,我还想加一点趣味性啊,我想查 id 等于二 啊,然后呢?还想查一条什么呢?就是 id 等于二的那条数据,对不对啊?名字的网五密码等于二,二,那我现在还想查一条啊, password 等于一,一一的那条数据啊,除了 id 等于二,还要查一条啊, password 这个密码等于三个一的啊,两条数据,对吧?进行两个查询, 那这两个查询的话来写好啊,我们的条件什么呢?要查询查询 id 等于二啊,并啊,然后我们的 pass word 呢,要等于一一一两条查询语句,那这么写的话,我们肯定要写两个售后语句,对不对?那这里我们可以使用一个什么啊 合并查询,把它们两个售后语句呢合并到一起,或者连接到一起,叫我们的 user 啊,这个 user 呢?在我们售后注当中啊,比如说手工注当中 啊,用的比较多啊,等一下我们在下堂课的时候会给大家讲,对吧? ulex 合并合并查询啊,合并查询,这给大家做一个比较,这个 ulex 大家记一下啊,因为在售后注当中它会用到的啊。 ok, 那 合并查询来怎么写?合并合并就是把两条售后也就合到一起喽,对不对?那我们一个个写,先查询 id 等于二的,对吧啊? select 查询全部 form, 我 们的这一个什么啊 t 这张表 啊,条件跟上 w, h, e, r, e, i d 等于二,然后我们使用 union 合并第二条,再来查询啊。 select 查询所有 form, 我 们的这个 t e 条件再跟上 w, e, r e 我 们的这个什么 p, s, s 等于三个一啊,这样写就可以了。 那这个合并查询说白了就是干嘛呢?把它说小一点。说白了啊,什么叫合并查询?或者说什么叫联合查询呢?就是说通过 union 这个关键字,把第一条查询语句和第二条查询语句它们两个 加起来啊,拼接到一起啊,当然注意,这个 user 呢,它是有一些特性的啊,有一些特性啊,等下给大家讲啊,有些特性,我们先来看一看这段数据能不能行,对吧?我们这里呢,就保存运行一下来,我们就不写了,直接在这里复制回车 啊,他这里报了一个语法错误,先来看一下啊啊,比如说我们这里呢,把这个杠号去掉 p s, s 再回车 啊,我们就查出来了,对不对?就查出来了,查出来两条数据,一条呢 i g 等于二的,这条数据,还有一条呢,是我们的 password 等于三个一的啊,这两条数据,那刚刚讲的 user, 这个合并查询它有 特性啊,这个特性什么呢?有两个特性啊,就对有两个特性,那这两个特性大家也要记住了 啊,也要记住了,因为接下来在下堂课里面这两个特性也会利用这两个特性来达到手工收货注入的一个目的,所以一定要记住第一个特性。什么? 就说第一个特性是前面,因为我说了合并查询是把两条查询语句连到一起,所以呢,它分成前面的查询语句和后面的查询语句,对不对?那第一个特性什么?就说前面的查询语句和后面的查询 语句结果啊,注意结果互不干扰啊,这第一个特性啊,什么叫前面的和后面的结果互不干扰呢?比如说我前面的这条售货语句,我要查一条 不可能成功的,比如说我查一个呃,负负一的啊,你们大家可以看到在我的数据库里面是没有 id 等于负一的那条数据,所以前面的这条售货语句肯定是不可能执行的。 按照我们传统的就是以往的生活住的一个以往的生活语的学习,如果条件不成立,那我们这里呢就不会执行吗?对不对啊?我们之前在学威尔的时候应该有学过威尔呢,他其实跟我们的编程里面啊 的一个 if 是 非常相似的啊, if 打个括号,然后呢?执行我们的花括号,在小括号里面就是我们的条件题,对吧? 条件啊,如果为真为确,我们才会执行这个括号里面的内容,是吧?才会执行,如果为 force, 他 是不会执行的,对吧?跟我们的编程 if 是 非常相似的,大家可以这么理解,那这里我们如果通过上面这个条件来来 学这里的话,应该也是一样的,如果说这里查询不到,那后面应该也不会执行,但是注意了,我们使用 unit 它的特性之一就是说前面和后面是相互独立的结果,互不干扰啊。其实大家可以理解了,就说前面就算没有查询出来结果,后面的它不会影响到。来,我们来看一看了这道数学语句,我们继续运行一下, 来运行一下,这里改一改啊,我把它改成个什么负数,对吧?负二有没有?肯定是没有的,对不对?按下回车来运行一下。 嗯啊,来运行一下可以吧?是不是有,那大家可以看到啊,就说前面的这一条,我查询负二的这条是没有结果的,在这里是没有结果吧, 对不对?没有查询到,但是呢,后面的这一条查询三个一啊,他是有查询到结果的 啊,并没有因为前面没有执行成功而影响后面的这条售货员的执行,所以这是第一个啊,特性,我们的用的第一个特性。那么还有一个特性什么呢?注意前面的查询啊,语句啊的字段数量, 数量要和什么呢?和后面的查询语句,语句 字段数量要什么?要一致,对,这是也是一个非常重要的特性,要一致 啊,要一致。什么叫查询字段的数量呢?这个就查询字段数量,我们这里是不是写了个星号, 星号代表所有的意思,我们也可以发现,在整张我这个表里面,它一共就只有三个字段,那所有这个信号它的意思就等于什么?等于三嘛, 对不对?那这里我们写个写个什么 id, name, password 这三个数量嘛,等于说查这三个字段,那么这里呢也是这样的,写一个星他们两个是相等的。那如果说我把前面的改一改啊,我前面我只查 id, 对不对?我只查 id, 后面我要查所有的,那我们来运行一下它现在的制断第一条查询语句,它查询制断的数量只是查一个, 后面的是查三个,它们的制断数量是不一致的。那我们来看一看,那这条数据能不能够正常的运行。来我们来这里再次复制粘贴按下回车,它这就报错了,不能够正常的运行, 为什么?因为我说了他的查询时段数量要两个保持一致才可以,那我们可以改一改了,我们把第二个呢也改成一个,对吧?我们也只差一个,比如说我们只差一个什么?它是 word p s s 可不可以按下回车?可以 对不对?因为它的数量和后面的数量是一致的,哪怕前面我查的是负一没有结果,但是呢后面的他也是能够执行的。这个呢是合并查询 unit 他的两个特性,大家一定要切记啊,一定要切记这两个特性一定要切记。等一下呢,我会把这一个我们写的课堂笔记呢,我会打包好啊。呃,放在咱们这个课程相关的这一个资料当中啊,大家呢好好的看一看。当然呢大家也可以跟着我还这句话 咱们边听要做笔记啊,不能说光听咱们就听完就听完了啊, ok, 这是第二个啊,好,那么除此之外的话呢,我们还学习一个东西叫什么呢? o 的 by 对 这个东西我们也来学习一下啊。 o 的 by, o 的 by 这个东西是干嘛的呢?它我们就称之为排序的啊,排序用的。 呃,来看一看啊,排序怎么用来?呃我们在后面可以跟上一个排序,那我们写上吧,比如说啊,我们再来查询一下所有的,再来查询所有的 s e r e c t 查询所有 form f f 哎, f f f r o m t e 对 吧?查询所有的好。呃,我们的搜索语句啊,它是默认后面会有一个 order by, 有 一个排序的啊,有一个 order by 的 啥意思呢?什么叫排序呢? 我们现在可以看到我们的这些字段,比如说 id, 它是按照一二三四从小到大 排序的,对不对?那我们来写一写啊,来 order by 排序这个函数后面跟上什么?比如说我们如果想一个自断排序, order by 后面跟上你要的自断名字啊,它就会按照那个自断进行排序。自断名字。那现在我写了一个 id, 你 看它有没有变化啊?来写上来 这里后面跟上什么呢? o r d e r o 的 by id 运行一下有变化没有?有变化,没有没有变化。为什么?因为我们查询出来的结果或者表里面的这个排序规则,它默认就是按照 id 的 降序,也就说从小到大进行排序的,那么改一改了,我现在要它干什么?按照我们的密码 p a, s, s 这个时段进行排序,那么看看有什么变化啊?来,我们继续来 改成什么?改成 p a, s s, 对 吧?来回车你们可以看到有变化没有?有变化了啊, id 是 不是打乱了?为什么打乱了?因为它是按照 ps 从小到大进行排序了,对不对?这就是我们的排序,当然在搜口输入当中 all the back 它不会用来排序,它是用来干嘛?拆解 啊,注意啊,是用来拆解什么的啊?我这提前讲一讲啊,拆解我们的这个表的 列数啊,对,这个大家注意了,表的列数怎么拆解呢? now, 注意听,我们可以在 old by 后面呢,跟上字段名字也可以干嘛?也可以跟上数字, 一二三四五等等等等等等啊,跟上数字,那数字对应的是什么?比如说我跟上一个 o 的 by e, 它指的就是你这个表里面的第一个字段来看好,什么意思?比如说,我这里不写啊,具体的字段名字我就写一个, e 代表什么? e 代表我当前字段的这个字段,也就是说 e, 它等价于 id, 那 么来运行一下回车是不是一样的, 对不对?我这里是不是写了个一啊,对吧? id 是 不是也有了啊?按照 id 来排去的吧,对不对?那同理可得我这里写个几啊,我如果说写个呵,写个三,我是不是按照 password 这个密码来排去了,是不是? 没问题吧?大家看到没有,我写了个三,他是按照第三个字段来写的。那为那这个怎么进行拆解我们的这一个表的列数呢?因为我们可以啊,你写一,他如果没报错,就证明他呢有第一个字段,你写个三,证明没报错,他有三个字段。那如果说我写个四呢? 啊,大家想一个问题来这里,大家可以提前想一想啊,因为后面我们要学这个东西。来,我写个四呢,我当前的表里面有第四个字段吗?没有吧? 按下去报错,没有,报错了,他提示我们没有找到第四列,对不对?这就报错了。那我是不是可以利用这个报错信息我就能够知道啊?知道什么?当前这个表有 几例是不是能够知道了啊? ok, 这是一个提前啊,咱们掌握的一个提前的一个资料啊,一个知识点,因为咱们后面要学的。 ok, 好, 到这里的话呢,我整个关于收口珠的一些简单的收口语句语法,我们就回顾到这里, 在后面啊,呃,咱们用到了我们就讲啊,因为后面还有一些,比如说啊,我们的这个 content, 包括我们的这个 group up, 对 吧?等等,我们都会用得到这些函数,对吧?我们都会用的到, 包括后面的一些报酬助,我们也会用到啊,那我们不着急吧。好吧,我们先在后面,我们学的时候一学,一边学呢,咱们一边啊,学习相关的一些新的啊。好,然后我们来回顾一些新的。 ok, 那 这两个呢?我们就先到这。

说一下这个 clik 语句,它在 micro 里面的一个执行流程吧。啊,好,就史莱克语句,它首先会查询缓存,就如果缓存里面有,就直接返回, 如果没有,就继续执行,生成一个执行计划,最后就由这个存储引擎按照这个执行计划去读取数据。嗯,你 提到了这个缓存和执行计划,方向是对的,不过这个流程其实可以拆的更细一些,也更容易在面试中体现你的个系统性思维。我帮你捋一捋整个 c 的 一个执行过程呢,其实是可以清晰的划分为六个关键的阶段。第一是连接器, 很多人会忽略这一步,但它其实是在所有 circle 执行的一个起点,这个环节会验证你的个用户名密码,还要检查你对目标数据库有没有访问权限。第二,查询缓存,你刚才提到了这点很好,但要补充一个重要的一个变更,从 mc 八点零开 开始查询,缓存功能已经被彻底移除了。为什么呢?因为在高兵法写多读少的一个场景下,缓存命中率极低,而且每次写操作都要清空相关缓存,维护成本反而成了性能的瓶颈。 三、分析器,检查你的一个思考,它是否符合语法规则,比如关键字有没有拼错,括号是否匹配,表明字段是否存在等等。如果通过了检查,分析器就会生成一棵解析树,你可以理解为思考的一个语法骨架,这棵树结构后续会被优化器和执行器反复使用,是整个执行流程的一个语义基础。 四、优化器,这是性能的关键啊,它决定用哪个锁影多表,捉影顺序是否用临时表?比如先过滤小表再关联,能大幅减少中间的一个数据量。第五,执行器按优化器的一个计划调用存储引擎 提取数据,如果走锁影,就通过 b 加数定位数据页,如果是全表扫描,就顺序提取数据块。第六,返回结果。把查到的个数据分批分装为网络包发给客户端,结果极太大时还会流逝返回,避免内存溢出。如果能把整个链路串起来,尤其是强调优化器的一个决策作用, a server 与引擎 那个协助机制就能展现出更强那个底层理解力理解了吗?嗯,好。最后视频配套的面试题答案都整理在评论区了。另外,如果近期面试受阻,没有面试机会,我们也有面试突击陪跑服务,可以私我咨询。从简历优化、项目包装、技术突击、面试、突击、项目业务难点亮点梳理、模拟面试、面试复盘并向内推等。