00:00
好,那咱们接着来看下一个问题,叫做circleql大小写的一个规范啊,这块呢,我们在上篇当中啊也提到过这个事儿,就是在这个Windows平台下,我们这个circleq啊,在编写的时候呢,它是大小写不敏感的,对吧?那么在这个Linux平台下,咱们SQL编写的话呢,它是大小写敏感的,但是注意哈,咱们这个呢,没有说所有的场景都敏感,比如说呢,表明啊,数据库名啊,关键字啊,这个这个函数名啊,不是说都敏感,只要呢,你有一点敏感的话呢,咱就算是敏感的。是这意思吧,啊,这个要理解啊,那也就是说呢,不管是咱们在Windows下,还是在这个linus平台下,咱们在编写SQ的时候呢,像这个关键字啊,像我们说这个函数名,实际上呢,他们都是不区分大小写的,说白了就是关键字和函数名呢,都是大小写不敏感的,那对什么敏感啊,哎,咱们往下看好的啊,往下看。首先的话呢,我们看这样一个指令shows,然后呢叫lower case table names,我们先看一看呢,针对于Windows和Linux呢,他们这个参数这个值啊,分别呢是多少啊,CTRLC一下啊这呢为了方便呢,咱们就直接在这个SL里边呢去演示了,这两个呢是咱们的Linux,然后咱们再去加一个啊新连接。
01:13
这块呢,咱们就连接一下咱们这个Windows平台下的这个MYSQL8.0 OK是吧?好连接一下啊,这个咱们讲上面的时候呢,用的不都是这些数据库嘛,那我们把这个参数呢,给它拿过来啊,首先呢,我们叫show variables like啊,我们这个参数呢,整个选中呢做一个执行,大家发现呢,这个值呢是一对吧,然后我们再回到咱们的这个Linux下边这个8.0啊这块我们就不要了啊,整个删掉CTRLV,把这个呢选中做一个执行,这个结果呢是零啊,你发现呢,一个是零,一个是一,那很显然呢,这个零代表呢,就是大小写敏感的意思。这个一呢,表示的就是大小写不敏感的意思啊,OK是吧,那除了这个零和一之外啊,我们说还有一个值呢,叫做二啊,那这个区别是什么呢?呃,一是咱们Windows下的说大小写不敏感,在我们创建的表数据库当中啊,都是以小写的形式呢,保存在这个磁盘上的,诶这块你要注意一点就是即使呢,你这块呢,创建一个表,它是用的大写了,但是保存的时候呢,都还是小写的。
02:12
啊,那我们写SQ的时候呢,你写成大写也好,小写也好,它都给你转化成小写呢,进行数据库中的一个查找,所以给我们的感觉呢,就是不敏感的对吧,而这个设置二的话呢,就是你创建的时候怎么写的,那就是不放啊有这么个区别啊,大家了解一下就行。OK,那么关于我们这儿所谓的这个敏感还不敏感啊,温度下呢,那就是都不敏感了,在咱们这个live下呢,其实有些敏感有些不敏感。啊,具体是什么样子,这块咱们说一下,这个呢,大家要记一下,针对于数据库名这个表名表的别名和变量名是严格区分大小写的,那你要是写的不对的话呢,不注意大小写,那确实呢是查不到的,那来举例子,比如说呢,我们在这个,呃,另一个在这个平台下,那首先呢,比如说我们去use一下,咱有DB test1,咱们之间创建的对吧?好,那这是我们选中了做个执行,那这时呢,相当于我们就选中了这样的一个数据库,但是如果你要说use一下de啊D大写的一个B,然后T1,那很显然这个字母呢,大小写你看我们没有注意啊,这个数据库名呢,它是严格区分大家写的,此时呢,你再选中执行,他说呢就找不到这个数据库了。
03:21
对吧,啊有这样的问题,好,那我们在这个数据库下呢,比如我们去select。Select星from,咱们下边呢,是不是有一个这个表来,我们选中了做个执行,你看此时呢,这个数据呢,就查出来了,那如果说呢,我们去select形from一下呢,我大写了一个一。那这样写的在咱们window下的话,这样写肯定是没问题的,能查到,但是在我们此时的话呢,他就会报说你这个表呢是找不到的,那这就是我们以这个数据库名和这个表明呢,来来给大家呢举的例子啊,是严格区分大家写的这块,你要小心一点,就是我们这里边儿写的变量名可不是指的这个这个列名啊,指的是我们这个变量啊,定义的变量是不区分大小写的。
04:04
啊,上篇呢,我们不都讲过变量这个事儿嘛,对吧?好,那么第二点的话呢,说关键字函数名在词库当中呢,是不区分大小写的,那那就相当于我们这里边呢,Select呀,From啊,你大写小写都行,在咱们这个要里边呢,自动给咱们转换成大写了,咱们换个场景,比如我们在这儿。在这对吧,咱们去use一下这个DB test1好,然后呢,此时你看select,我这是不是写成个小写了,From一下,那emp我把这个from咱们写成个大写吧。那EP这个呢,要注意是不是这个你得写成小写的,那回车一下是不是就能查出来啊,那select呢,我用的是小写,From用的是大写,那很显然呢,关键字是不区分大写的。啊,包括呢,我们比如说在select,那我们来一个这个count星是吧,诶from一下这个P,看有几条数据啊也能查出来,那这个count的话呢,我们比它把它呢改成是这个大写的。
05:00
那这样写是吧,那也没问题,那说明呢,关键字和函数名呢,就不区分大小写了,那另外呢,就是关于这个列名或叫字段名啊,列的别名在所有的情况下呢,也是忽略大家写的啊,这个还有必要去演示吗?那就比如说我们刚才这里边儿涉及到这个ID啊,大写小写其实就无所谓了,对吧,那比如说。你看拉啊这个。哎,Select就是虽然说咱们这个关键字不经大小写,但是大家你写的时候你也别太过分啊,比如说啊不不经用写呢,是不是就这样了啊,这些个select你不觉得很诡异吗。对吧,你要么你就都小写,要么你就都大写啊好一会我们说呢建议啊,一会说建议行这呢我就先写成小写select ID,然后呢,大写的ID对吧?诶from em1ok,回车一下你会发现呢,是不是都能够查出来啊,所以说呢,我们这个列这个名或叫字段名啊,它也是不区分,哎,大家好写的。好,大家记住它啊,记住它,也就是说针对我们这个数据库名表,名表的别名变量名,就相当于我们定义的这些这个结构啊,它是区分哪个写的,其他呢就都不区分了。
06:10
记一下行这个呢就说完了,然后的话呢,我们说一下这个Linux,既然你是区分大小写的是敏感的说,我们能不能把它改成不敏感的呢,也就是说呢,我们把这个零是吧,想给它改成一行不行啊,诶可以操作的,那怎么操作呀,那我们就在这个MY.cf这个配置文件当中,在这个MYD这样的一个标签下呢,加入这样的一个声明。那就可以了。啊,然后再重启一下这个呃,数据库对吧?啊,因为呢,我们只要修改配置文件都需要去重启一下才会生效啊,但这里边儿你要注意看我下边写的这个参数呢,你要想设置呢,只适用于5.7。如果呢,我们想在八这个场景下呢,去设置会有问题,比如我们设置好以后呢,你再重启这个时候呢,诶这块呢,会禁止我们重新启动MYSQL服务啊为什么呢,在重启的时候呢,它这块呢,就会默认的再恢复成我们本身的那个零值了。
07:02
如果你就是想改,那怎么办呀?哎,这块呢,得多一个操作,就是我们需要呢,把这个WAR2LIB MySQL目录下的这个数据呢全删掉,那这块就涉及到我们删的这个到底是什么,那实际上呢,咱们删的就是数据库文件。啊,就是数据库的文件,相当于呢,我们现有的你这个数据库文件呢,它是不是就是针对的你是相当于是区分大小写的是吧,你要是想改的话呢,你把这个数据呢,先删掉,你再重新再去做一个设置,这样才行。这个大家了解一下就可以了。啊了解就行,就是咱们通常的话呢,就不要去做这样的修改。啊,通常不要去修改。行,这是一个啊呃,再一个的话呢,就是如果说大家你要去做这个修改的话呢,也得需要去做一个注意啊,我看我这个注意写哪了。嗯,写这儿了是吧,就是如果呢,你要真要去做个修改,在这个5.7当中,比如说你要做修改的话呢,需要注意一下,就是在重启数据库实例之前,需要将原来的数据库和表都转化成小写,否则呢就找不到数据库名了。
08:04
哎,这什么意思啊?能理解吗?你看啊,如果说我们在5.7当中啊,这下边儿这咱们说的8.0对吧,你要在5.7当中呢,我们做这样的一个设置以后呢,一重启数据库服务器说是不是就妥了呢,也还不行,比如说我们在这个数据库当中,咱们呢,叫emp起的这样个名,作为我们的表名,对吧?那么它在底层存储的时候呢,就是用的你这个大写了。但是你这块呢,你改成一之后呢,咱们在查找的时候呢,上面不是说了都是会转化成是不是这个小写去做这个查找啊,那转换成小写去底层查找的时候,你这是大写的E,那不就找不到了吗?所以说你要是想改成忽略大写的,接着呢,先把你原来的啊,创建的数据库和表,包括这些变量啊等等的先都改成小写以后你再去改成一。才行,OK,行,那说了这么多啊,再说个结论,结论就是大家建议呢,你就不要改了。啊,就不要改了,你看MYSQ在8.0当中呢,是不是他都会这样的做一个限制,那其实就在暗示我们说你就给他用默认的这个零啊就挺好的啊,大家也是了解一下能改,但是呢,就不要改了,行,那么第二个问题呢,我们要给大家说的就是,既然呢,我们算是呃有区分大小写的场景,那么我们在平时开发当中,大家写色的话呢,呃,应该有什么样的建议呢?呃,这里边写的就是建议。
09:22
建议呢,我们写的这个关键字和函数名啊呃,用大写,然后数据库名表名表的别名,字段名字段的别名,因为他们是区分它要写的啊,那你要是写大写小写写写小写写的不一致的话呢,他就真的查不到了,所以推荐我们呢,全部都写成小写。这样的话呢,你再去查找一个库或者呃,这个这个选择一个库,查找一个表是吧,这个时候呢,你就知道啊,你当初都是用小写定义的,你就不会因为这个大小写的没写对啊,导致呢找不到了。啊,这个呢都是小写,然后这个so呢,诶正确的是与分号呢来做一个结尾比较规范啊这个还好啊嗯,这里边就提到说为什么我们这块呢都建议大写呢,主要原因呢,是因为我们这些结构呢推荐用小写了,然后呢,我们在写关键字和函数名的时候呢,用大写,其着呢跟它做一个区分,对吧?啊一看大写你就知道哦,这呢应该是关键字或者呢是函数名。
10:13
啊,一看是小写的啊,那就是我们现在这些结构啊,只是为了做一个区分而已。行,那么关于这个大小企业规范呢,咱们就说到这儿啊,整个来讲呢,其实不难啊,大家做一个了解就可以了啊,知道怎么回事。行,那么接着的话呢,咱们看一看这个七,这个七的话呢,叫做circle mode的一个合理设置。啊circle mode咱们在上片当中啊,其实没有展开呢,去说这样的一个这个这个变量啊,那咱们在这块呢,来给大家呢去说一下。好,那么这个SQL Mo呢,是干什么用的,看这它呢,会影响咱们MYSQL支持的SQL的语法,以及呢,它执行的数据验证的检查。啊,说的感觉云里雾里的是吧?啊接着看,通过设置这个circle mode呀,呃,可以完成不同严格程度的数据校验,那有效的保证数据的一个准确性。
11:05
大家看完之后呢,八成还是不太了解对吧?呃,咱们先往下走啊,啊一会儿有这个例子说MYSQ服务器呢,可以在不同的SQ模式下呢,这个呃运行并且呢,针对于不同的客户端以及不同的方式呢,呃去应用这些模式啊,取决于S目的具体的值,好那这个色目呢,到底影响的是什么呢?呃,首先呢,我们这样呢,做做区分这个S目呢,我们在设置的时候呢,它分成一种呢叫做宽松模式,一种呢叫做严格模式,它其实影响的就是我们编写的这个SQ语法,这个格式呢,校验的时候呢,它的一个严格度,你是比较宽松啊还是比较严格呀。对吧,哎,就是这个意思。这里边儿提到了,在5.6当中,那默认的值呢,是空是吧?呃,那这时候呢,相当于是没有收模式,我们就可以理解成呢,是一种宽松模式,那在5.7当中呢,加入了这个叫strict啊tables,那你看这个strict就是严格的模式了。那当然我们这个木的话呢,其实它有多个值啊,我们看这个7.5就知道了,它有多个值。
12:05
啊,其中我们说的这个stricts只是其中的一个,我们在设置这个这个circle mode的时候,其实里边是可以选择,就说白就多选,你可以选择多个的啊这是没问题的,好,那首先呢,我们先范范呢,对于这个所谓的宽松模式和严格模式呢,做一个说明。什么叫宽松模式啊,就是咱们在写这个SQ的时候呢,它会非常的呃宽容是吧,比如说我们创建一个表的时候呢,这个表中这个字段呢,叫做name,这个字段呢,它的类型呢是差类型,长度呢为十。哎,它的这个长度为十,好,那就意味着当我们去往这个字段中去添加数据的话呢,是不是你不能超出这个长度十这个范围啊,那沿IG呢,就是比如说我们现在添加这个数据呢,那一到零,这其实就十个了,但是我们后面加了ABC。按说的话呢,已经超出了我们这个差规范的这个长度了,我们要是隐色的话呢,它其实是会报错的。
13:00
啊,它其实会报错的,对吧,但是如果呢,你要是用的是宽松模式呢,你会发现呢,你测完以后呢,就没有报错,那我们去查询的时候,你发现呢,此时放进来的数据呢,就是一到零,那ABC呢,相当于没有了。啊,那这呢,其实就是我们所谓的这个叫宽松模式,那如果在严格模式下呢,在添加的时候呢,它就会报错,说你这个添加这个数据的长度超出了我们本身的这个范围了。这是他们二的这个区别,好,那我们在实际开发场景当中,我们要不要用这个宽松模式啊来说也有对应的场景,那就是这个,那我们设置成这个宽松模式以后,呃,涉及到数据库在迁移的时候,比如说我们从这个数据库把数据呢,迁移到这个数据库当中,那如果呢,有一些这个。数据要是严格执行的话呢,可能会在迁移的过程当中就报错了,我们可以在这里边儿呢,去设置它宽松一点啊,就是这个数据呢,在这个迁移的过程当中,它就没有报错啊,这就是我们使用的一个场景,OK,那么绝大部分的情况下呢,咱们都是要用这个严格模式的。
14:01
啊,因为你想想我们上面添加这个数据呢,进去之后呢,发现其实并不准确啊,其实或者换句话说呢,它是错误的,对吧,那我们在正常开发当中,生产环境当中,咱们通常呢,都是要用这个模式的。那由于生产环境中我们用的是严格模式,进而开发和测试环境啊,咱们就也要用这个严格模式。你不能在这块呢,用宽度模式一测试没问题,一到生长环境当中挂掉了,那你何必呀啊,所以从一开始的时候呢,我们就一致啊,都是用这个严格模式就完了。呃,开发当中啊,这样的一个情况说明说呢,我们卖测过这个数据库啊,呃,总是想把这个关于数据的所有的操作啊,都给它包揽下来啊,都把它包揽下来,包括我们上面提到的关于外建的这个情况是吧,包括check约束的这个情况,实际上呢,我们在这个应用层啊,在我们这个代码层面呢,也是可以做校验的。啊,也是可以做校验的,那那也建议呢,说我们有一些这个具体的操作步骤啊,没有必要非得在数据库层面做这个校验,我们可以放到这个,呃,应用层我们去做这个校验就可以啊,也就是这样一个解释啊。
15:06
这个大家真正做过开发的应该懂这个事儿。下面的话呢,提到我们如果改成这个严格模式呢,也有可能会存在一些问题,那就说白了,你毕竟严格嘛,那严格的话呢,就可能会出些事儿,对吧,比如说我们这个司空目录里边呢,包含了一个叫no zero date。啊,言外之意呢,就是我们在给这个date类型那个呃,变量呢,在赋值的时候呢,是不允许赋这样的值的,而我们在没给一个没有给这个具体的这个类型的字段,这不日期类型的吗?Time step上面我们讲过了,对吧?当我们在给这个字段复制的时候呢,如果没有声明这个no或者default的时候,它会默认的给我们复个这个值,但是你现在又要求不能够是接入的,他就报错了。啊,就相对比较严格嘛,那严格的话呢,肯定就是限制呢会更多一些啊就这个道理行,那首先的话呢,大家先知道什么叫宽松模式,什么叫严格模式,然后下边这块呢,我也有这个举例啊,那说到这举例我就不看这了,咱就直接呢自己来,呃这个举个例子对吧。
16:02
那举个例子之前啊,咱们先来看一看咱们默认的这个circle mode是什么样子的啊,这块呢,你看涉及到它是个变量了,我们可以呢,是g global的方式呢去查看,那也可以呢,去查看当前绘画层的对吧?那我们比如说就用这个呃,Session吧啊CTRLC一下啊,我这呢,就直接在咱们的这个呃,SL里边去执行了啊,走起啊。嗯,加个分号吧,严格一点好,选中以后呢,我们做个执行好,大家会发现呢,你看这个值呢,是不是相对来说还是挺多的呀。啊挺多的,这呢就是咱们默认的一个值啊,相当于默认的话呢,这就是比较严格的,那关于我们这里边儿的说明,每一个字段是什么意思,大家呢,可以参照我这的7.5啊关注一下就行啊其实呢,大家也没有必要呢去看这么细了啊,你就知道呢,默认情况下它就是很严格,包括你看有这个no zero date。啊,对吧,啊,就这里边每一个字段呢,其实它都有对应的一些限制啊,就是要求我们在写测过的时候呢,你不能乱来。
17:00
那我们查看以后的话呢,下一步我们嗯,就来做一个操作吧。比如说啊,我这里边儿提前写好了几行代码啊,把这个呢,CTRLCL一下咱们粘过来。我呢创建一个表啊,有ID name age是不是,嗯,Dept这样的几个字段,添加了几条记录,好这块咱们就在这个,呃,DB test1这里边,咱们去创建这个表,然后呢,添加几条记录啊,走起。可以了是吧,好可以以后的话呢,我们现在有这样一个需求,说查询各个部门中年龄最大的这个人。年龄最大的一个人啊,这个呢,咱们在上面讲这个子查询的时候呢,其实都做过对吧?子查询或者你用这个,嗯,多半查询也可以啊,也可以行,然后这里边的话呢,你看它是这样做的啊,诶name dept max from这个表啊,这个呢,我们比如换行吧,然后go一下,咱们在讲上面的时候提到过,说一旦呢,我们查询这个语句当中,除了这个主函数之外呢,剩下的这个非组函数的字段是不是都得放到go by当中啊,现在我们只放了一个,是不是显然这块运行就报错了。
18:07
这个错误信息了。那这块呢,这是说你这个呃,Group by这块原因造成的,说这里边影响了,呃原因呢,是因为我们incomt,就是你不合适,因为里边涉及到我们有一个mode叫only for group啊因为呢,我们有这样的一个circle mood的一个属性的限制呢,你这块呢,它就报错了。啊,这个大家应该能理解是吧,好,那下边的话呢,我们可以就去设置一下咱们的这个,哎,Circle mode,哎,Mode好,设置变量的话呢,我们都叫这个set对吧,本身那个变量已经有了,我们直接呢叫S,然后我就简单一点啊,这块我没有写是session还是这个global,那其实默认的话呢,是不是就我们的session啊,加上的话呢,就这样写好这块其实啥也没有啊,走起。那设置完以后,此时的咱们这个四空木头呀,它就变了啊,我们再去做一个select,你看啥玩意儿没有。那这个时候都没有了,相当于就没有我们刚才看到那个,呃,就是那样的一个的限制了,那大家再去选择我们这个select来走起。
19:07
那你会发现他是不是数据就查出来了。没问题是吧,那查出来呢,只不过这个结果呢,他可能就不太靠谱。啊,虽然说没有报错,但是不一定对啊,这这就具体就不分析了啊,首先那语法上它就不对是吧?好,那这呢,就是我们说的这个事儿啊,我再给大家演示一下,比如我们这块呢,我去insert into到咱们这个嗯,Table。这里边针对于ID好看,还有其他几个字段。针对于ID,针对于name啊,针对age,好,我们针对这三个字段呢,咱们去做赋值,我这来个六,这呢来一个比如叫Tom吧。逗号age这块呢,咱们是一个int类型对吧,那我偏偏呢给你来一个AAA。很显然的话呢,我们AA去复制给这个int呢,是不太靠谱的,你要这块你写一个12呢,它有个隐式转换对吧,但是你写AA的话呢,肯定是转换不成我们这个int类型,那正常来讲的话呢,就会报错,但是呢,哎,现在不是不正常嘛,是吧,走起。
20:05
大家发现呢,是不是就没有报错,光有个警告是吧,没有报错,那我们这时候你再去做一个查询吧。Select from my。啊,这个table它是吧,好选中走起。啊,大家你看这时候我们这个Tom呢,你看是不是就进来了。啊,只不过呢,在A这个位置呢,它写的是零,但是呢,也没有报错吗?这个原因就是由于我们设置的是一个宽松模式。啊,设置circle mode为这个宽松模式了,所以导致的话呢,我们这块呢,就诶没有这个给我们报错啊这样原因。好,这个呢,大家就清楚了是吧。呃,那这块关于我们设置这个,嗯,Circle mode的话呢,咱们回过来再说一下,刚才呢,我是直接通过set啊,Session circle mode的方式,你也可以用global啊,区别呢就是这个是只对当前会话有效,这个呢是针对于当前整个这个呃,MYSQL数据库这个实例是有效的啊,一旦你要重启一下MYSQL服务了,它就失效了是吧。
21:06
那这是一种修改方式,临时的方式,永久的方式的话呢,大家就在这个卖点CF咱们配置文件当中啊,MYSQL地下去加上这个circleq mode。啊,像我们说呢,这个事儿,它影响的就是我们这个勾了是吧?哎,你把这个这个就是我们这里边你看是有多个这个限制的啊约束的你可以都给它加上啊这个呢,是一种永久的设置方式,设置完以后呢,记得要重启MYSQL。啊,那这里边儿就遇到个实际生产场景。大家呢,应该都懂啊,你比如说我们现在呢,在实际生产场景当中,咱们的MYSQ数据库服务器呢,已经跑起来了,在这种场景下呢,如果我们还想永久去设置啊,因为咱知道临时设置的话呢,一旦数据库服务器重启以后呢,你这些设置是不是就都没有了。啊,那我们就想永久设置,但是永久设置的话呢,我们加到这个买点CF文件当中以后,这个服务器呢,一定要重启,但是你一重启的话呢,是不是影响我们生产环境当中使用了,那就意味着用户呢,在这一刻访问的时候呢,这不就访问不到了。
22:02
那该怎么办呀?用临时的啊,一重启不靠谱了,用应有的呢又得重启,一重启的话呢,又影响当前用户的一个响应,那怎么办呀?哎,我们就可以采用临时设置。和这个永久设置呢,结合的方式。那我们就可以呢,先通过临时设置方式保证呢,当前我们这些设置呢,起效果啊,只要你这个数据库服务器没有重启,那就始终有效果,同时的话呢,我们在配置文件当中也给它加上,一旦你重启了,重启以后呢,它就失效了,但是我们这个买点CF配置文件当中也做了同样的一份的配置,那由于你重启以后呢,是不是它就从这里边去读,现在也能够起作用啊。啊,那么后续呢,其他的一些设置呢,都是这样来做的啊,就是临时设置加上永久设置,不管你是不是数据库服务器重启了啊,都会生效啊,这是我们说的这个点。行,那这块呢,大家也可以给他改回去啊,你看到我我刚才不是给他,嗯,咱们回过来一下,我改成这块呢,是一个他了,咱再给人家改回去吧,或者我我要不改的话呢,当前这个会话结束以后,其实自动的也就给我回去了,是吧?啊,我这块set一下这个session circle mode啊,等于把这个粘过来挺长的啊。
23:17
嗯,好的,这么着一下吧。行,那这个时候呢,我们把它选中呢,再做一个这个执行,那这就可以了,那执行完以后呢,大家你可以再试一下,比如我们这块呢,再去添加一个直角七,那这AAA你看靠谱不走起。哎,大家你看是不是这时候呢就不对了,说这个A呢,就没办法添加进去了,这个呢,其实咱们所谓的是一个正常的情况应该这样对吧,也就是呢,默认情况下呢,咱们就应该用这个严格模式啊,而事实上呢,默认也确实是严格模式,大家呢,就不用去改了啊,关于我们这个色科目的呢,你知道是怎么回事,大家也是做一个了解就OK啊,具体这些参数的值呢,我就不一个个去过了。啊,大家有兴趣的话呢,你下来自己看一看就行行,那这样的话呢,咱们关于这个第一章啊,在Linux环境下呢,这个呃,MYS库的一个安装啊,以及基本的这几个点呢,咱们就说到这儿。
我来说两句