函数 is now 说明指明表达式是否不包含任何有效数据,若未 now, 则返回 true, 否则返回 false。 应用场景需要判断是否存在有效的数据时,这个函数经常用于判断文本框是否存在值。比如查询数据时,当录入条件为空时,检索所有数据,不为空则案条件检索 语法格式参数一、必须表示要检测是否为 no 的表达式,一个或多个任意表达式 is no。 函数用于检测表达式是否不包含任何有效数据,若是 no, 只返回 true, 否则返回 false。 通过视力,我们看看函数是如何判断是否为 note。 在窗体的按钮单击事件中编写代码,先定义一个任意数据类型的变量,然后让文本框的值等于函数的返回结果。输入函数 isno, 参数就是刚才定义的变量,这是一个没有格式化的 variant 型函数,编写完毕,切换到 xs 这边,在窗体视图中点击按钮,文本框中返回 force, 表示表达式中不含 note 值。假如这里给变量负值设置为空白字符串,即只需要加一对双引号,再回到 access 中查看结果,同样返回 false 结果, 这里证明空字符串和 no 是不同的。最后我们把变量复制为 no, 就是等于检测 no 值是否为 no, 最后返回的结果是 true, 证明复值的 nao 值是 nao。 关于 access 函数检查函数是否 nao 的演示就到这里,下面看看注意事项。 注意事项一,若参数为 no, 则函数返回 true, 即表达式不包含有效数据。二、如果参数由多个变量组成,则表达式的任何组成变量中的 no 都会使整个表达式返回 true。 三、 注意 no 与 empty 不同,后者指出变量未经初始化,且与零长度自浮转也不同。
粉丝2405获赞1.2万

函数 n z 说明当值为 no 时,使用函数返回零、零长度、自符串或另一个指定值。 应用场景在查询或者搜索数据时,经常要处理数据的 no 值问题,因为若为 no, 返回的经常是报错函数能转为零或其他值。 语法格式,参数一必须表示要判断是否闹值的变量。参数二,可选表示若为闹时的返回的值。 n z 函数将尿值转换为零、零长度自服串或另一个指定值。 通过视力,我们看看函数对 no 和非 no 是如何处理的。在窗体按钮的单击事件中编写代码,先定义一个变量,用来指定值是否为 no, 然后为这个变量复值。假如等于一时非闹值,使文本框的值等于函数的返回结果。函数 n z 有两个参数,分别表示不为闹时的值和为闹时的值。假如为闹时返回零, 函数编写完毕,回到 access 中,在窗体式图中点击按钮,文本框中返回一,表示非 note 时返回当前值。假如变量等于 note 值, 我们再返回看看结果。点击按钮,文本框中返回零,是我们预设的当为 note 值时的结果。关于 xs 函数 n z 替换 note 值的演示就到这里。 注意事项一,函数适用于可能包含 no 值的表达式 及强制表达式,计算结果为非闹值。二,如果在查询表达式中使用函数而不设置参数二,那么在包含空值的字段中,结果将是零长度字符串三,通常可以使用函数作为 if 函数的替代方法。

xs 查询是对数据表的数据重新组合,前面我们讲过两个表之间的计算问题,通过连接相同的字段,然后字段相减的。 当查询运行结果时,发现字段中有些值是无法计算,这是因为出口表中的一个字段值没有填写数量,是个空值呢。哦,想解决这个问题,就必须要是一个数字才能直接计算。 再次打开之前的查询设计,重新进行编辑,可以在 sql 仕途中编辑,也可以在设计仕途中编辑,都是一样的。这里我们用 的一个函数叫 nz, 用来处理纳偶值的意思是当为空值时,负值为零,却换到数据表示图,我们看到此时空值变成零,但是还不能计算结果, 是因为相减的还是以前的值。我们给予经过修改的自断心的名字,然后再减去这个重命名的值,可以切换到设计仕途。能看到其实和 sql 仕途是一一对应的, 只不过是 sql 试图用 s 设计,试图直接用冒号表示, 其实查询结果就可以完成空值换行,为零进行算数计算。当然零可以改成其他值,这里的意思是若为空时,就 等于多少作为默认值,所以当然当改成一时也能返回结果。后面我们还要对这种跨表的查询的其他问题进行讲解。关于 xs 查询中对于 no 的处理方法就讲到这里。

哈喽,大家好,在昨天的那个,嗯,视频当中呢,我们给大家讲了那个,呃,检查约束,今天我们来讲默认约束。默认约束是什么呢?我们来讲一下啊,默认约束, 默认约束就是给指定的列一个默认值,当你不手动去修改这个值的时候, 他会自动填充 设定的默认字,它的关键字是什么呢? defort, dfot, 他的观念就是 dfort。 那么这个时候我们来看一下怎么样去设定选择这个,我们的这个,嗯,学生表, 然后呢我们给这个,嗯,这个叫什么呢?嗯,选中这一列性别,下面我们给他 默认,这有一个常规,常规这有个默认纸的设置或默认纸或绑定,我们绑了一个,给他设计个什么呢?难,默认纸是难,然后呢?我们保存一下, 看这 s 保存一下。这个时候我们来干嘛呢?我们来打开这个编辑,这个数据编辑前二百行刷新过来,重新打开,然后呢我们给他一个, 哇,小波九号,看,这个我没写喽,直接跳,直接跳到年龄这个来喽。 然后呢? 地址, 哎,等一会啊,咱没写好。二零二一年九月一号,然后这个时候我们去划痕, 你看他自动在这个位置,我们刚刚这个位置是没有去填写的,是没有去填写的时候,他默认给了我们一个,给我们填充了一个蓝这样的一个那个,嗯,值进去, 这个就是我们的一个默认值,默认值主要用在什么地方呢?嗯,当然我们的这个在数据库里面单独的在数,嗯,从数据库来讲的话就是, 嗯,你去,别说你有一些呃劣质,他是固定的,就是,呃,他的改动性很小,那这个时候呢,你就可以去选择用这个默认值,那么嗯,当然我们这个数据库,数据库经常是跟我们的系统结合在一块的,用通我们的这个应用程序去操作我们这个数据库。 所以说这些功能呢,我们基本上就是会在嗯,程序端,应用程序端去对这些数据先做一些过滤,过滤掉之后才能往我们这个啊数据库里面填写。当然如果你是纯数据库端的开发的话, 那么你就需要去设定这些约束来规范你的数据,这个就是我们的,嗯,默认约束是不是很简单啦?

不允许为空值的列名,这个复选框就要取消了,取消了啊,大家看,哎,这里我们可以,如果表已经关闭过以后呀,从这边就能找到这张表。找到表以后呢,设计表, 对表进行设计啊,设计表在已知条件里面,这个出生年月,出生日期是可以为空的,那这就画上钩,画上钩啊,画上钩,那要是不允许为空呢,就不能为钩了,我这里也给大家简单的演示一下,演示一下啊, 我们右击把它关闭,关闭,关闭过以后,我们看一下同学们刚刚已经建的第一张表,斯顿的表,我们展开数据库,展开表,这里就出来了一个词的动态,再展开的话,这里有列,我们目前的指间 两列,同学们自己建自己建啊,要对他进行修改,修改他的结构。我们在表的名称上右击选择设计。大家看出来了,出来了啊,如果画钩了,就是允许为空, 按照题目给的要求,哪里允许为空,哪里不允许为空啊?为空,这个根据需求啊,根据需求, 这是第二个时训了,那这里就比较简单了啊,就是说设计允许为空的子弹,允许为空的子弹就是对我们表结构啊,进一步进行完善,完善啊,完善 这点书要提醒一下,数据过重的列,允许为空,则输入数据行的时候呀,该项可以不输入,就是我在键盘输入数据的时 就可以不输入了。重要的不可或者或缺的信息就不应该允许为空,比如说学号,那学号如果为空的话,后面我就没有办法把它设置为主见了啊,主见了。

哈喽,大家好,我们上次课呢讲到了这个,我们故意转换这个数据类型,有文本类型呢,转换成数据类型以后,我们看到我们这里的枝呢就出现了 are, 那我们如何处理这种问题呢?我们推荐的方法是使用呢, 那么这个值呢,可以把我们这里看到的这种 na 的空值啊,或者其他的一些没有意义值呢,转换为一个可以处理的值,那我们来做一下,我们首先呢选中这一列,然后找到转换这里,这和一二代表呢,把一替换成二这种替换操作,那我们选择他, 选择他以后呢他就让我们替换值,首先呢我们看我们的数据,我们呢每一个数据后面都有一个人字,所以呢我们想转换为数字,就先把我们这个数字和文本混合的这种值呢, 先给他换成纯数字,所以我们把后面这个文字呢先去掉,那我们就说说这个人,然后替换为呢,替换为空,代表我们不加任何我们要替换的之我们确定,确定以后呢我们来看,我们现在就 把我们有数字和文本的值呢替换成数字,我们再点一下转换为整数,哎,这时候呢有数字的就对了,但是刚才显示 na 的那个值呢,也就是说刚才那个文本 na 仍然显示为 l, 那这种问题呢,我们还需要再做一遍替换,我们先把它还原回去, 把它改回我们的文本,改回文本以后呢,我们再替换这个 na, 我们还选这个替换,这时呢我们要查找 na, 把它替换成呢,那替换为这个呢直呢直接它是代表一种空 中指,而并不是一个文本,我们点确定,我们来看,我们现在输入的这个呢,已经靠右对齐了。然后我们再做数据类型的转换,我们可以点击他转换,或者点击上一个讲的检测数据类型。 这样呢,我们就把我们这个空值和我们有数字的这个值呢,都转换为,我们可以,嗯,都转换为现在看到的这个数字的数据类型。 那这样做的意义在什么呢?在我们后续处理我们数据的时候呢,它的结果是不一样的。我们举例来说啊,我们现在把它转换为这个数字,我们来看第一个表呢,它仍然是文本, 那我们点击主页关闭并应用,我们回到我们现在的可视化的这个页面里,我们先把筛选器关上,我们找到我们现在的自断,那我们第一个呢?第一个表呢?这 这个数量他应该是文本类型的,我们选择他,他自动帮助我们生成了一个可视化的对象,这里我们还可以给他切换不同的对象,比如换成柱状图,我们把这数量呢搁在搁在外着 看看,我们就有一个柱状图,但是这里呢我们外轴的数量呢是技术。我们来看这里我们可选的选项呢,只有技术和技术,非重复技术这两种选项,因为呢他这个自断现在是文本。 那我们再来看下一张表,这个现在这个看到的数量呢,它前面有个 cn 标志,代表它是数字,然后我们把它同样扣到外轴来看,这里呢我们再选择下面这个数量,它就有很多关于数数字去处理的方式,比如说求平均值,求和 从最大值,那如果是文本的话呢?我们就天然的呢?不具备处理这种数字的方式了,那这就是我们分享给大家的处理数据类型的它的意义,谢谢。

正在学数据库的你,对数据库当中的这个标识列和至尊列都了解吗?哈喽,大家好,我是陈轩,论文贾。那今天我们就来聊一聊数据库当中的这个标识列,然后我们可以看到现在呢,我打开了一个这个表,这表红外我还没有保存哈,先把它保存一下, 然后保存好了之后呢,我们来看一下什么是这个标识列,或者是字增列。我们在打开这个数据库的这个表的设计器的时候呢,我们选中一个列,可以看到在下面, 在他的这个下面的这个列属性里面有一个什么呢?有一个这个标识规范默认了他是一个否的一个状态,那我们打开它,点开这个小的加号,打开它, 后面有一个是标识,是否是标识,我们可以选择,当我们选择下拉列表,选择 是的时候,就代表着你的这个列, user id, 这个列它就是一个标识列了,那在标识列呢?嗯,我们也把它叫至尊列吧,然后呢它里面有两个属性, 第一个标识增量和标识种子。那么在标识列当中什么是标识增量和标识种子呢?我们来看一下第一个标识种子, 标识种子就是表示你这个数据从 多少开始,从多少开始,那标识增量,增量是什么?就是每一次针对于每一条数据 增量多少增量是指在前前一条数据的基础上去一次递增,去一次递增,就是我们这两个 这两个标识和标识增量。那好多地方呢,又把它这个标识标识列呢,又叫做至增列,那至增列,至增列,我们把它解释一下,就是自己操作,无需手动去操作,那我们现在来打开这个表看一下, 然后我们右键把它打开编辑。第一个我们可以看很清楚的,看到什么呢?第一个他的这个帽子,他是灰色的, nul 跟这个后面的颜色是不一样的,一个是灰色的,一个是黑色 色的。让我们去写写值,你看他是不能录入进去的,他提示我们这下面显示了单元格,是指读的,也就是说我们不需要去手动的去给他设置,他自己就会给咱生成。那我们写个张三, 然后再换行,你看他这个一生成了,这个一是怎么来的?一是怎么来的?一就是在我们刚刚设计的这个位置,标识种子这个地方来的,标识种子这个地方来的,然后我们来看一下,在这里,那我们再加一条, 啊啊小王,然后再往下,你看他变成二了,小李他变成三了,那这个时候你的标识种子和嗯,这个标识增量就起作用了。那如果 我想给他改一下,我想给他改一下,我把这数据里面的这某些值给他删掉,比如说我把这条值给他删掉,把三给他删掉了, 那么我们来看一下,结果哈,三三掉了。按照常理来讲,我们这个数据他是字增列吗?是吧?我们在操作下一条数据的时候啊,小花 他会变成几呢?我们正常的思维会觉得,哎,他应该是还是三吧,因为你第三条都都删掉了,所以说这条应该继续三,继续是第三条,是吧?一 它变成了四了,为什么它变成四了呢?是因为 identity, 这是 identity 的一个特性, i n t t 标识列特性是什么呢?即便是中间有删除了的数据, 也算,也算在递增里面,也算在递增值里面,也是说你这个值已经有了,他就不会再去重复创建,不会重复创建 相同的 id 值,不会重新重复创建相同的 id 值。那么刚刚的问题说明白之后呢?第三个问题来了, 这个问题是什么呢?在一个表当中可以同时存在多 个标识念吗?这个问题我们一起来验证一下,那我这个地方呢,有一个 unif 二,这个 unif 二呢?我用来区别 unif 这个 unif 二。那我现在设计表, 打开这个设计表,我们来看一下,在这里面呢,有一个 user id, 有一个 user number, 他们两个都是硬特型的,为什么我要强调他们都是硬特型的呢?因为你要做这个,嗯,标识列的,这要设置标识列的这个字段,他必须是数字类型的,只有数才可以制增吗?是吧?我们先把这个写一下, 备注,要设置 标识列的字段,必须是数字型,必须是数字型的,这样才可以做字针。那么我们来看一下,在这里哈,第一个我们给他设置成什么呢?设置成标识列, 标识规范设置成,是啊,这是第一个有了,是吧?我们按 ctrl s 这个表结构,新的表结构保存完整了,然后我们刷新一下,嗯,然后打开, 然后这个是灰色的,对吧?这个是灰色的,那么我们后面的只是可以编辑的一一一,然后呢给他改成一吧,然后呢三三选号,一是吧?他这个绘画掉了, 这个绘画掉了,是吧?那说明他这个已经我们设置的那个标识列他已经生效了,那么接下来我们要验证刚刚的问题,刚刚的问题是什么?在一个表当中可以同时存在多个标识列吗?咱们来看一下他到底是否可以存在 这个表?我们现在把第二个,第二个它这个 mon 是否哦?我们把它设置成是, 然后 ctrl 加 s 保存了,保存之后,那么我们来看这个列,来看下这个表, 设计表,这个编辑表,然后呢?诶,第一个没有被绘画掉,第二个被绘画掉了,我们来看一下第二个被绘画掉了,这就说明什么呢? 在一个表当中呀,只能存在,最多只能存在一个标识列, 标识列最多只能存在一个,你要么没有,要有只能有一个,要么没有,要有只能 有一个,有且只能有一个,要有只能有一个。我们可以把他们家的有且只能有一个,那就是这个就是我们刚刚讲的这个了,你会发现当我们给他第二个设置成这个标识面的时候,他就把第一个标识面的这个给他顶掉了,给他给他顶掉了, 那这就是我们今天要讲的内容,就是标识列,这标识列就是,嗯,很多朋友在就是在初学这块的时候是迷迷糊糊的, 这个 id 怎么他怎么不具有连续性?然后为什么就有的时候创建的时候,哎,可以有多个你,你觉得你创建了多个,但其实他已经把前面那个给点掉了,那这就是我们今天的内容,大家可以自己去试试一下。

hello, 大家好,今天我们接着上一次的内容往后继续讲,那么上一次的内容当中呢?我们讲到了嗨运止住的一个基本用法,以及呢用它结合我们这个 group by 跟剧组的这个调节这些过滤,这是我们上一次讲的内容, 那么今天的这期内容我们要讲什么呢?我们要讲一个特殊的字烙,这个烙它是什么呢?数据库中的烙代表不确定, 不确定的值,也就是不知道是什么,不知道是什么,他代表不确定,不知道, 那么他和空值的区别是什么?空值,那我首先那我代表我们敢讲了是吧?那我代表不确定未知的, 那么空值,也就是我们的单一对单一号代表空,代表空,那么他还他还跟我们的这个零,比如说我们的这个数值现场数据,那么他有的时候会为零,那么这个是零,他代表的是 代表是一个数字,代表的一个是一个数字。然后我们要怎么去查询这个蜡和贝?蜡就是我们马上要讲的案例里面去讲,那么我们之前在在讲那个约束的时候,我们讲到了什么呢?唯空性约束, 空气应该学的是无唠和 lot love, 就是你这个你这个字段可为空, 是否可为空?或者是说不为空,那么可为空的意思就是说你这个这个字段,你这个字段的值 我不去填写他,那么他默认就是一个闹,那么拉着闹不为空的意思就是我不允许你给我的这个阶段的值给一个闹值,那么哪怕你给一个空都可以,但是呢不能给他一个闹, 这是我们之前讲到的一个围空性约束,我们建一个案例来 test 一下 creature table test。 然后呢我给他用三个字段,第一个 tid 硬的型的,那么硬的型的我们给他拉着,然后这个是有一个维控性, 这个字段 t id 是不可以为空的,不可以为空的。那么第二个字段, 然后呢?他是可以为空的, 可以为控,他是可以为控的,他是可以为控。那么 他可以再做了一个逗号,他可以为空,那么这个 low 他是可以省略的, low 是可以省略的,当你不写 low 或者是只写一个 low 的时候,他代表这个字段是可以为空的。我们再加一 这个字段, ticonticcount interesting 老,他是可以,他是允许为空的。然后呢? tv mark the time, 然后呢拿出来,那么这个现在呢?有这四个阶段,那我们分别来看一下, create 一下,直行 insert into, 我们往里面添加数据了,是吧? into test vanis。 第一个字段他是不允许为空的,他是不允许为空的。那么我们给他一个一。第二个字段他是可以为空的。我们给他一个啊,咱三,然后第三个字段, 第三个字段给他一个十。最后一个字段给他一个空。那么这就是我们的这个第一个正常的一个字,正常的一个字,我给你们看一下 rome past 呀,这个值一占三十。最后一个没有值,是因为我们给他,给了他一个空值,给了他一个空值,就是没有嘛,给他一个 空纸,那么第二个我们继续来往后第二个我们呢,第一个给他一个,因为是辣,辣特辣的,是用给他一个辣哦,然后呢也是 五十备注, ok, 我们来看一下这条会出现什么样的结果, 你看他就不能将蜡烛插入裂 tid, 因为这个表开始这个表当中这个 tid 呢,他是不允许为空的,不允, 不允许有闹字的,所以说失败,这个是添加失败,因为 tid 不允许为闹,所以添加失。 ok, 然后呢,我们换一个,下,下一位,我们把它放在下面,然后 二,然后第二个 t n, 他是可以为空的,他是可以为空的。然后呢我们给他一个烙纸,他是可以为空的。给他一个烙纸,那么此时 他是添加成功的。我们来看一下,你看他变成了烙,嗯嗯,这个地方大家可能会,嗯,如果那个 仔细一点,大家可以发现这个烙的背景,他跟这个这其他的背景是不一样,他有点偏黄,因为他是一个烙制是一个烙,那这样他是成功的。那么我们看一下,下面一个呢?下面一个,哦,我的这 最后一个,这个,嗯,贴炕的他也是可以为空的,贴炕的他也是可以为空的,那么我们把这个也是给他插入一个烙纸,对吧?也是可以给他插入一个烙纸。 ok, 这条也成功呀。最后一条,那么我们把最后一个同样 把什么呢?把这个备注插入蜡烛纸,让大家可以看到,第一个是硬的型的,第二个是文本类型,是我们的支付串类型,他们俩之间都给蜡烛纸,都给蜡烛纸。他怎么样?这个这个名字再加一下, 这个名字改成小白,对吧?哇哦,你试一下,你看 这个地方又出错了,因为为什么出错呢?因为这个 t 瑞 mark, 以下添加错误, 不允许,不允许为空,因为这个不允许为空,那么这样呢?我们就知道了,这个烙和我们的这个呃非烙的一个区别,就是我给给你一个空,然后我们现在来看一下, 看到没?唠唠唠,我可以给你,就是我不填写,我可以直接给你一个唠,我可以直接给你一个唠,然后呢?我还可以怎么呢?一十二特,我直接把可以为空的,我就添加几个,知道呢, 我就只添加,我就只添加 t 内和 tcom 和面合体看的这两个,这是选择性添加,大家可以看前面的内容添加的那个那个内脏哈,选择性添加,就是我可以只添加,只添加我想要添加的, 然后呢?嗯,小花,小花,然后呢?三十, 然后呢?我们来看一下,哦哦,我们然后呢?小花。像是 tcom 的啊,不应该是 tcom 的,应该是这个,这个,嗯, mark, 嗯,哈哈哈,让我们来看一下一啊 tid, tid 不允许为空,应该是 tid, 哎,真不错的哈,应该是 tid 和 t 对 mark, 比如说二十,然后呢我们给他用一下,你看一下受影响,那这个时候呢, 你会发现二十和哈哈哈这个中间也是浪子,是因为我没有给他添加,也就是说当我不给他添加的时候,他默认就是浪子, 默认就是老子,这是不确定的。一个一个纸,那么这就是我们的烙和啊,我们的这个非烙的这个一个用法,也就以及他跟我们这个空纸之间的区别。然后我们要怎么去查询呢? 查询闹得非, 之前我们在讲查询的时候呢,我们都是什么呢?我们都是直接呃呃。用符号大于等于小于等于那一个这样去查询,但是我没有讲到这个唠,因为那个唠我们不想,我想单独给他放出来讲,所以这个时候呢? long pasta where 听令 ease ease large love 查询是否为空,不为空。用 is large love 查询为空 is love is love 就是这个阶段是查询这段是否是烙纸,用 is love or is that love 进行查询,进行查询。那么为空呢?空,空呢?单纯的空呢?就是什么呢? 单纯的查询空,当然这个就因为空,他是一个直,只是他是空的,那么这个时候呢,就要用等于我们这个空,值了。嗯,没有知道我们看哪个里面有 啊空,应该是 tv mark 这个阶段, 你看这个就差评出来了,这个就是我们今天讲的内容,我们这个啊,特殊时髦的这个用法今天就到。
![[算法学习660]二叉树的LCA问题-经典DFS a. 从 lowestCommonAncestor入口调用 dfs(root, p, q)。
b. 在 dfs中,首先判断当前结点是否为空,若为空则返回 null。
c. 如果当前结点等于 p或 q中的某一个,则直接返回当前结点(表示找到了其中一个目标结点)。
d. 递归搜索左子树 dfs(root.left, p, q),结果记为 left。
e. 递归搜索右子树 dfs(root.right, p, q),结果记为 right。
f. 对左右子树的搜索结果进行判断:
f.1 如果 left和 right都不为空,说明当前 root的左、右子树各包含一个目标结点,那么 root就是最近公共祖先,返回 root。
f.2 如果 left为空,说明两个目标结点都在右子树中,返回 right。
f.3 如果 right为空,说明两个目标结点都在左子树中,返回 left。
g. 实际上,当左右都为空时,会返回 null,但这已在第一个条件 root == null或后续判断中覆盖。
#计算机 #面试 #秋招 #算法 #Java](https://p3-pc-sign.douyinpic.com/image-cut-tos-priv/6d6ae6dc9aab84e70da71895bdb905fa~tplv-dy-resize-origshort-autoq-75:330.jpeg?lk3s=138a59ce&x-expires=2105769600&x-signature=UdhhPVBoQNvJ7SKPmMB1ivZyJac%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=cover&biz_tag=pcweb_cover&l=20260926165122252F1C7CDAE642A13FF4)