00:01
来,咱们接着来吧啊。呃,我们上节课呀,在最后的时候说的是一个limit,这个limit呢,它可以完成分页查询。就是说我们数据量可能很大,分页显示的时候取第多少条到多少条,我们可以采用limit。这块呢,是非常重要的一个内容,希望各位呢,能够下去之后呢,把这个重点内容好好练习一下,那接下来咱们来看一看,就是说到此为止吧,我们的DQL语句总算是讲完了。我们在最开始的时候说说这个circle啊,它分几大类啊,五大类,DQLDMLDDLDCLTCL是吧,我们刚刚讲了一个啊,叫DQL,对,也是最复杂的一个,剩下这几个就非常简单了。我们接下来看一看什么呢?到目前为止,大家还不会见表。
01:00
你别看你用表用了这么长时间,这个表怎么建,你可能还不会。是吧,所以说我们接下来看一看创建表。那首先呢,我们这块呢,应该先说一说建表语句,建表语句的语法格式怎么写create啊,Table后边跟什么表明啊,小括号开始,小括号结束。啊。然后这个里边跟什么呢?跟上字段名后边跟什么呀,数据类型。啊,后边可能会有什么呀,约束。这个余数就先暂时不说了啊,字段名是不是,哎,字段名二。字段名三哎,省略号。
02:04
这样。建表语句的语法格式,你得先把格式记住啊,这个你不能变固定写法。Table呢,也不能变固定写法,后边表明,那您就随意了。你说你这个表里边存什么信息,你一般这个表名就是什么,那存学生信息表明这学生。存这个商品的信息,那就是product。你要存储用户信息,那就是user呗。是不是,哎,你看你这张表存什么信息。那么这张表啊,咱们呢。应该设计哪些字段,这个这块也是比较重要的一个。内容啊,就字段名,起名的时候不要起的那个名啊,千奇百怪的。建明之意。建明之意啊,就是你这个字段存的是年龄,那就叫age。
03:02
你这个字段存的是邮箱,那就是email。你这个地方存的是家庭住址,那就是address。总之呢,这个呢,应该是什么呀,建明之意的,你不要天天搞他A啊B啊C啊D的。你搞这些字段出来之后呢,别人一看不知道,你这存的到底是什么东西,不知道,所以总之呢,这个起名呢,也是很有很有技术含量的啊,很有技术含量的,那这是一个建表语句,那么建表语句当中啊,其实。哪块是比较比较难的呀,各位。就对于建表来说,你觉得哪一块是比较难的?其实就是这个数据类型。起名啥的,这个东西咱们都可以通过这个字典去查一查,你说英语不行是吧,咱们可以通过这个。有些翻译软件嘛,不是是不是,哎,咱们可以翻译一下。
04:02
关键的是我们这个字段它采用什么样的数据类型,我觉得这个呢,其实是不太好确定,这个需要你的开发经验才能确定,那我们来看一看啊,关于什么呀,诶MYSQL当中的什么字段,MYSQL当中字段的数据类型,这个数据类型啊,常见的各位啊,以下只说常见的啊。只是常见,别的呢,咱就先不说了,有限的时间呢,我们就讲重点的内容啊,比如说有一种数据类型叫int。比如说big in啊,比如说float,比如说double,比如说比如说瓦叉贝塔。日期。对,日期date blo c。
05:00
这都是数据类型。属于类型啊呃,数字有了,整数也有了,浮点数也有了,这个double去了吧,不要了啊,Double可以没问题啊,没问题,但没必要说那么多啊。M date love love。看一看啊,还有没有别的。背就行啊,背背就行,背就可以了,嗯。好,这个是什么。整数。叫做整数型吧,这是长整型。不典型定长字符串,不定长字符串或者叫可变长字符串,日期类型二进制大对象字符大对。
06:20
了解一下了解一下啊,这整数型长整型其实就是对应的这个浪类型啊,加我这个浪浮点型定长字符串可变长度,字符串日期类型二进制大对象说的是存什么呀,存储图片呀,视频呀等流媒体信息啊,字符大对象就是存储大文本啊,存储大叫大文本。比如可以存储四个G的字符串。
07:07
四个G的字符串有一本小说。我能存到上面可以瓦差不行,瓦差最多存255个。字符超255个就崩了。就较长的一个文本大字符串可以采用C。啊指是object。这个指的是。能看懂吗B。
08:02
啊,C。唠。这几个单词的一个缩写。数据类型。这个是可以直接存储日期的啊。存储日期。对应Java中哪种类型啊?java.circle date类型。啊,这个没用过吧,之前你们一直用的是这个呀。你们要知道,Java中还有这样一个date,是circle绑架的date。那这个呢,就是对应Java中的哪个类型,咱们对应上啊Java中的什么。印是吧?那这是家伙中谁啊?Float和double啊?
09:00
定长字符串,你就对加号中的谁呀呗。把差的或者string buffer或者是谁string,什么build啊,日期类型,二进制,大对象,其实说的就是对应Java中的谁啊,Object啊,至于这个object是哪个object,那不一定啊,你可以自定义类啊,Clob所对应的也是object。所以创建表呢,这块呢,咱们有关于一个表的这块呢,咱们诶有个数据类型啊,这个呃,数据类型啊,就这几个常见的,当然除了这几个之外呢,还有一些别的类型,各位啊,还有别的类型,咱们在这里呢,就不用看那么多了,没用这几个就够咱们用了。啊,够没用了。那最主要的就是我自己在建表的时候,我怎么去给定数据类型,到底我这个类型用叉呢,还是用挖叉呢?
10:03
对吧,我这个类型我应该用in还是用big int呢?这个不好定,那最主要是这块。就这几个简单类型,我觉得没什么太大问题。就是在建表的时候,不知道这个该用什么类型,我们这几个类型啊,重点我们来看看叉和把叉怎么选择。这个举个例子啊,举个例子。就说我现在有一张表啊,有张表,假如说啊是这样的这个表啊,它里边有一个字段啊,这个字段呢,叫做什么呢?Name。啊,然后呢,这是一个table,各位啊,它是个table。
11:00
这个表呢,有很多列,其中有一列叫什么呀,叫做内蒙啊,大概是这个意思就行啊内蒙。然后这个name啊,他在建表的时候呢,如果给定的这个数据类型,如果是什么呢?是差,并且括号写的是六,就代表长度是六个字符。明白,然后接下来呢,我往这个字段上啊,我插入了一个数据啊,这个数据呢叫杰克。对,杰克。杰克啊。由于数据类型采用的是定长的。并且指定是六个长度,那么这个时候在插入Jack的时候。底层会分配六个空间。来存储这个Jack。这是几个呀,四个啊。
12:03
对。也就是说你了解这意思什么意思就行啊。这个呢,不管你传过来的这个数据是几个,我上来就给你固定的分配,就这几个空间。明白吧,哎,就这几个空间。就是六个长度。你要是存的超过了六个长度,我就报错。不是给你给你裁剪啊,这么智能你裁掉是吧,不是。最多就是几个六个,你给我两个,我再给你补四个,懂吧,啊就是总之给你补够几个呀,六个定场的,那如果说这张表在建表的时候,如果数据类型给的是挖叉六妥拉你往里面放一个Rose。
13:01
A,他在底层会给你动态的分配几个空间啊,四个空间来存储。啊,很智能,它会给你分配四个空间来存储这个Rose。他挖差呢,有一个有有一个这个功能,这个功能是什么呢。它可以根据你实际存进去的这个数据长度,动态的分配空间。只要你不抄就行。你说十个长度啊,妥了,报错。不允许,因为我规定只能存最多几个呀,六个,你要存五个妥拉,我就给你分配五个格子,你要存四个,我就给你分配四个格子,你要存的存的是两个,那我就给你分配两个格子,总之我这个八叉是非常智能的,它可以根据你的实际的数据长度来动态的分配空间。好,刘先说老师,那我们以后是不是要用八差比较多一些呢?
14:01
不一定。看情况,比如说比如说您这个位置要存的是一个生日。你们上网的时候有没有见过填生日,像这种日期字段的时候,他根本不需不需要你去手动写,一般情况下都一点出来一个日历,日历上一选,选中之后呢,在这里就生成一个一九,比如说1980-幺幺-幺二。你懂我说的意思吧,好,也就是说咱们中国人现在每一个人的生日啊,基本上都是十位。对不对,有两个杠啊。一二三四五六七八九十嘛,是不是这个不用数啊,因为咱经常开发,咱知道这个长度是多少啊,年月日十分秒全部加上,再加空格是19个长度啊,这是两个非常经典的数字啊,一个是11个是19。
15:05
就有时候你就加年月日十分秒,后边是不是空格十。分。苗。123456789个空格,19个长度。明白,那像这种。固定长度的字符串,假如说生日我们不用date类型啊,用这个字符串的话,我们肯定会选哪个。比如说最简单的有一个字段叫性别字段。性别固定的男女。是吧,哎。别的我就不说了啊,嗯。来。比如说M。F。
16:00
或者一零。总之这个性别应该是不会变的,所以性别我会采用什么差。比如说再来一个字段啊,这个字段要存一个什么,存一个简介。你比如说我的简介可能有100字,你的简介可能1000简介可能1000个字。对吧,他可能是301个,他可能是400个,总之这个简介呢,它有长有短。不是定场的。这种情况呢,我们就得选择什么了,挖。理解吧,哎,注意这两个哪个效率高。肯定是叉类型的效率要超级高,为什么说叉类型的效率要高一些?因为类型不需要做运算,它不需要判断你传过来到底是多少个长度的字符串,总之我咔嚓一下,上来就给你分配六个空间,你。
17:04
愿意用就用,不愿意用拉倒他就是这就是char类型,根本底层不会做if语句判断,各位啊,这个不会做if语句判断,像挖叉的话,这么智能的一种数据类型的话,他就得做判断了,它底层会做if语句判断。明白吧,您要记住啊,咱们写的买circleq是SQL语句,SQL语句我们人能看得懂吧?所以SQL语句是不是高级语言,我之前有没有跟你说过,SQL语句也需要编译,只不过这个编译不需要我们做,谁去做呀?DBMS叫数据库管理系统去做这件事。它底层也会执行一些什么if语句啊什么之类的。进行判断的啊进行判断。所以说呢,综合来说啊,综合来说,我想说的是什么呢?你根据不同的情况选择不同的数据类型。这一点必须是这样的,不能乱来啊,你说我这个性别这一块,我采用八叉。
18:04
对吧,我出生日期这块我采用82,这都是不合理的,但凡是在数据库表当中,这个字段的值本身从头到尾,不管走到什么时候,这个字段的长度永远都是这么几位固定的。妥拉,你就用叉类型,剩下的统一用马叉。姓名是什么呀?对吧,你看这个俄国人的名字很长。是吧?一口气都上不来,就有可能这样。但中国人的名字基本上就是三个字,是有四个字的,有两个字的,狼坊上口是吧?张三李四王五六是吧,王五678。对,就是这样。嗯,有复姓啊,比如说诸葛欧阳是吧。
19:04
好,聊一下这个事啊,总之呢,就是差和八叉是怎么选择呢?哎,差适合于适合于,就这样这样说吧,在实际的开发中啊,当某个字段中的数据长度。不发声。改变的时候是定长的啊,例如这个性别呀。生日啊。等啊,都是采用什么。当一个字段的数据长度不确定啊,例如简介呀,姓名啊等,都是采用什么呀,瓦叉瓦杈啊,好,这是关于这个数据类型,各位咱们就给大家说到这,这是关于创建表的一个语句,实际上一个语句啊,关于咱们的数据类型,也就是这几个数据类型。
20:17
那其中这个blob和clob这个东西怎么怎么,假如说吧,我现在有一张表啊,这张表啊。是个电影表电影啊。电影这张表呢?有一张电影表,电影表的表名呢,随便起个叫T_movie行吧,然后这个电影应该有什么?应该有电影ID吧,电影的编号吗?
21:01
那电影除了这个之外,有没有电影的名字呀?有没有上映的时间?上映时间有吧,那有没有海报啊?这个电影应该有个海报是不是啊?海报英语单词怎么写海报?可以可以这么着吧,英语能力有限啊,来ID name play,海报,然后除了这个之外还有什么,还有这个剧情,剧情描述。是吧,就这个得了啊,故事故事情节ID123,这个最近比较火的电影,什么电影。
22:10
哦,蜘蛛侠上映时间啊,这这是次要的啊,这是次要的来这个呢,可能用int,我重点咱们说的是数据类型啊,别跑题了啊,这个是瓦叉,这个呢可能就是一个date了,但是我问你这个我能不能用叉呢?都行吧,这个海报是个图片,你得用它了。明白吧,这个故事情节有可能超过了这个,明白吧,哎。大文本吗?你海报是个图片呢,是不是?哎,我想说的是。
23:03
这个,哎,这个int差,Data差,这些都好说,都能使用insert语句插入数据啊,这insert咱们将来会讲,像这个表里边插入数据,但对不起,您这个海报用INSERT1句插不进,据注意报必须使用Java的IO流。IO还记得吗?Java中的IO file和file outp,你需要使用IO才能把这个图片放到这个表当中。因为普通的in特就搞不定啊,所以这块我想提一下,就是就是想说这一个东西,就是说这lolo他已经不是普通的一个文本啊,或者是日期之类的东西,它是一个二进制的东西,那要插入这些东西,那你普通的iner里就搞不定。你需要使用流的方式往里边写,但是这么说吧,各位这两个类型到底用的多不多,其实并不是很多,为啥呀?
24:07
我们现在的开发一般会把图片视频放到一个表里边吗?这有点太浪费了吧,数据库的资源好珍贵的。是不是,哎,你说一个电影一个电影几个G咔嚓往这一放。不合理吧,所以一般情况下是把电影放到云盘上,或者是把电影放到某一个硬盘上,把这个硬盘的路径放到数据库表里边。听懂了吗?一般现在都是这样的啊,就是这个图片,它在这个你这个电脑的这个这个这个这个。硬盘上有没有某一个路径啊,我们可以考虑把这个路径放到我们的数据库表当中啊,路径要放到数据库表里边的话,用差或者是挖差是不是就够了。
25:07
对吧,所以一般情况下,直接呢,把这个图片啊,以及声音呢,视频啊,直接存到我们的数据库表当中,这种情况还是很少见,很少见,但是。有一些团队。他可能会放。图片视频肯定百分百不会,图片可能会放进去,比如说这个图片可能就是1K。或者说不到1K是不是很小的图片。对吧,比如说我们注册的时候,每个用户是不是都有头像。哎,你知道你的QQ头像吗?哎,你那个小头像呢,可能连1KB都不到。明白吧,你这个小图片啊,就直接放到数据库表里边,这种情况存在不存在,存在直接放图片有一个好处。
26:06
什么好处?便于维护?便于维护,你想你放在硬盘上的图片,把这个图片如果换一个位置。你的数据库。是不是就废了?如果说我这个图片直接放在数库表当中,一直是跟着这个表走的。明白,哎,所以说可能还是有一定好处的啊,并不是说人家就是不行,但如果是针对于这个文件特别大的话,我们根本会不会建议说大家把这个图片啊,或者是把这个文件,或者把这个视频放到我们的一个表当中,这个就。设计就有点太low了,但如果说一个用户的一个头像啊,或者是一个一个一个小图片啊,小素材,那你可以放进去啊,问题不大,问题不大。
27:00
好了。那另外还有一件事,什么事呢?咱们都交代明白啊,表明在数据库当中,一般啊建议以谁开始T下划线或者TB下划线开始。就贱明之意嘛,一看到T下滑间开始或者TBL下滑间开始就知道,哦,它是个表,那有的老师数据库里面除了表之外,难道还有别的有视图啊索引啊,对吧?后期我们实际上数据库当中还有很多别的对象,我们后期会讲,但现在呢,我们只是涉及到一张表,各位啊,好了,咱们就来个建表语句吧。啊,咱们这个数据类型也说了啊,每个类型基本上你也碰面的,整数的长整型的带小数的,定长的可变长的日期的啊存这个什么二进制大同大对象的,存字符大对象的对吧?那再往下呢,咱们就创建一张表啊。
28:08
我们可以创建学生表啊,对不对,学生信息包括什么学号呗,性别性别班级。班级编号吧,也行啊也行,学号姓名性别,班级编号还有什么呀,生日。是不是,哎,先这么着吧,啊,先别写那么多啊,别写那么多来学号咱们采用什么类型int吧,T有可能不够。是不是?
29:01
行吧,哎哎,咱们上学的时候那个学号是固定长度的吗。你说全全国人都是都是固定上住的是吧,还是本校的是固定上家,学校不一样,学校不一样,那个学号肯定不一样是吧。按理说这个学号应该是不是现在应该是学籍里边学号应该是固定的。学籍里边有这个信息吗?应该是有吧,请问这个应该够了啊,来性别挖叉呗,性别班级编号用也行。啊,In也可以,但有的时候高,比如说高三一班,那你这就属于什么呀,差了吧。是不是外编号都行啊,都行,这块我们有页in也行啊,生日呢,生日用date。
30:08
当然也可以用什么叉都行啊,都行,来,咱们就这么唠了啊,怎么写来见面语怎么写,Create table t什么student,小括号开始,小括号结束,完好在这写什么呀?学号学号他姓名,他性别,他编号。啊,行吧,Number这块呢,用big in吧,啊假如说name呢,瓦叉255啊,最长的这个呢,就是叉呗,行吧,这class number呢就是八叉得了。好。然后呢,再往下呢,不呢,就是差十个横够了,这就是建表语句,能看明白吗?来,拿过来执行一下。
31:01
Show tables。是吧,D什么。是不是学生学号?好,这个见表。是这样的。嗯。没什么问题吧?
我来说两句