- 博客(37)
- 收藏
- 关注
原创 MySQL快速入门篇---数据库约束
数据库约束是指对数据库中的数据所施加的规则或条件,用于确保数据的准确性和可靠性。每一种的作用都各不相同。定义表时某列不允许为NULL时,可以添加非空约束。比如创建一个员工表,员工名为NULL时,这条记录是不完整的:查询结果如下所示:此时我们就需要约束员工姓名的列不能为NULL:此时我们再插入先前的数据:运行后我们发现它报错了:此时我们再插入正常值,发现可以成功插入:然后我们查看表结构发现结构如下所示:此时Null列id为YES,name为NO,这表示更改员工表,在员工表中新增年龄列插
2025-05-03 18:17:28
519
原创 MySQL快速入门篇---增删改查(下)
使用GROUP BY对结果进行分组处理之后,对分组的结果进行过滤时,不能使用 WHERE 子句,而要使用 HAVING 子句。• 以原值的基础上做变更时,不能使用math-=10这样的语法。将李星云的语文成绩变更为80,数学成绩变更为80。将总成绩倒数前三的3位同学的数学成绩减去10分。显示平均成绩低于1500的角色和它的平均工资。发现已经没有李茂贞的信息,删除成功。将李星云的语文成绩更改为88分。这里的示例我们依然用exam表。统计exam表中有多少记录。统计所有学生数学成绩总分。删除李茂贞的考试成绩。
2025-04-27 21:39:25
545
原创 MySQL快速入门篇---增删改查(上)
增删改查操作,又称为CURD,是对数据库中的记录进行基本的增删改查操作。• Create(创建)• Retrieve(读取)• Update(更新)• Delete(删除)
2025-04-27 09:25:22
757
原创 MySQL快速入门篇---表的操作
创建一个学生表,其中包含学号,年龄,性别,并指定字符集为utf8mb4,排序规则为utf8mb4_0900_ai_ci,存储引擎为MyISAM。• RENAME [TO|AS] new_tbl_name:重命名当前的表。• RENAME COLUMN:重命名表中现有的列。• tbl_name:要修改的表名。• MODIFY:修改表中现有的列。TEMPORARY:表示临时表。tbl_name:将要删除的表名。• DROP:删除表中现有的列。• ADD:向表中添加列。(2)修改某列的长度。
2025-04-21 08:46:39
525
原创 MySQL中CHAR与VARCHAR的区别
M 表示以字符为单位的最⼤列⻓度,取值范围0 ~ 65,535 (在所有列中共享),有效长度取决于实际字符数和使用的字符集,并且用额外的⼀或两个字节记录实际使 用的字节数,当实际字节数不超过255个字节用⼀个字节记录长度,超过255个字节时,使⽤两个 字节记录长度,获取列的值时不会从尾部删除空格,插⼊数据时会删除超出长度的空格。允许定义 CHAR(0),此时列的值只能为NULL或空字符串,主要的目的是为了旧系兼容,比如类中必须有这个属性,但不使用这个属性的值,也就是说值并没有意义,但列⼜不能没有。
2025-04-21 08:46:27
320
原创 每日一题---移动零
我们可以用一个right指针来扫描整个数组,然后用一个left指针来记录非零序列的最后一个位置,这样的话,在遍历期间我们可以将数组分为两个部分,第一个部分是[0,left],这一区间全为非零元素,第二个部分是[left+1,right],这一部分全是0,第三个部分是[right+1,nums.length-1],这一部分是还未扫描到的区间。2.用循环遍历数组,当right指向的数组不为0时,left++,交换left和right指向的元素,然后right++
2025-04-18 18:52:10
176
原创 MySQL快速入门篇---库的操作
2.示例创建一个名为student的数据库:接下来我们继续创建一个名为student的数据库,如果数据库不存在则创建:在这里我们可以看到报了一个警告:1 warning (0.00 sec),那么我们如何查看这个警告呢?
2025-04-18 18:51:30
586
原创 每日一题---买卖股票的最好时机(一)、(二)
因为本题只能买入和卖出一次,所以我们首先可以先定义两个变量max(用来记录利润最大值),min(用来记录当天之前的最低价格)并将第一天的价格赋值给min,然后遍历数组,每进行一次for循环,比较max和当天价格减去min的最大值,将较大的赋值给max,接下来比较min与当天价格的最小值,并赋值给min。这种策略有时能够显著提高算法的效率,因为它减少了计算的复杂度,但同时也意味着贪心算法只能应用于那些通过局部最优解可以确保全局最优解的问题。总而言之,如果价格上升,res加上差值,否则直接跳过。
2025-04-02 23:22:44
396
原创 每日一题---牛客---最长回文子串
3、在for循环内部定义两个变量left和right,定义left=i-1,right=i+1,用以向两边扩展,再定义一个while循环,在left和right不超限的情况下,如果对应值相等,left--,right++。4、再定义一个while循环,定义left=i,right=i+1,重复上述步骤3(假设回文子串长度为偶数)其实很简单,就是从一个字符串的中间向两边扩展,这就是解决这道题的中心扩展算法。2、设置一个for循环从0开始,将i的值当成回文子串的中心。关于这道题,我们可以使用中心扩展算法。
2025-03-29 14:38:31
364
原创 每日一题---游游的水果大礼包
目录一、题目链接:游游的水果大礼包二、解题思路 三、代码实现 本题采用枚举的思路,因为题目要求大礼包的最大价值,所以我们可以将每种可能的结果一一枚举出来 ,其基本思路如下图:不过有一点需要注意,那就是最终结果的范围问题,不能取int,要取long,否则用例不能全部通过 。这就是本篇文章的全部内容,感谢大家的支持,我们一同加油!!!
2025-03-29 14:04:45
247
原创 每日一题---牛客---数组中的最长连续子序列
根据题目,我们可以知道所谓的最长连续序列,它并不要求位置连续,只要值连续即可,由此,我们可以先将整个无序数组排序,以方便我们接下来的操作。然后我们将每次里面循环结束的计数器的值与我们用来记录最大值的变量比较,若大于,则更新变量的值,最后返回变量的值即可。(1)后一位的数-前一位的数=1---->计数器加1,用来遍历的变量加1。(3)其他情况---->跳出里面的循环。
2025-03-26 15:16:06
318
原创 每日一题---牛客---两个数组的交集
由示例1和示例2可知,对于nums1和nums2中的公共元素,若有多个相同元素,只返回一次,所以此类问题我们可以考虑用哈希表来解决。此时有两种方式:(1)使用HashMap(2)用一个boolean类型的数组来模拟哈希表。本文采取的方式为用一个boolean类型的数组来模拟哈希表。首先定义一个boolean类型的数组,大小我们取1010。然后将第一个数组中的元素放入我们模拟的哈希表中,再用for循环来看数组一是否包含数组二中的各个元素即可。
2025-03-26 15:15:40
329
原创 Java数据结构---队列
双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。注意:Queue是个接口,在实例化时必须实例化LinkedList的对象,因为LinkedList实现了Queue接口。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。队列与之前的栈不同,它的特点是先入先出。其实队列就像是我们日常生活中的排队买东西,排到前面的先离开,排到后面的后离开。在Java中,Queue是个接口,底层是通过链表实现的。
2025-02-28 22:26:34
359
原创 Java数据结构---栈
栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。其特点是数据元素先进后出(先入栈的元素后出栈)。
2025-02-21 22:54:10
491
原创 Java数据结构---链表
一、链表的概念和结构1、概念链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。2、结构链表分为多个节点,每个节点可以由下图表示:其中,value为这个节点所存储的数据的值,next为下一个节点的地址。以5个节点的链表为例,它们的数据值分别为12,23,34,45,56:其中,第五个节点由于没有后继节点,所以next域存储的是空指针null。二、链表的分类链表的结构多种多样,按以下情况分类:1. 单向或者双向2. 带头或者不带头。
2025-02-17 17:15:21
574
原创 Java数据结构---顺序表
一、线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。二、顺序表2.1、顺序表的定义顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。
2024-10-21 11:19:17
991
原创 IDEA中注释与取消注释
选中你想要注释的代码块,然后Ctrl+Shift+/进行注释,再次Ctrl+Shift+/取消注释。选中你想要注释的代码行,然后Ctrl+/进行注释,再次Ctrl+/取消注释。
2024-09-06 12:07:26
1860
原创 C语言指针详解(3)
首先,我们再深入理解一下二维数组就可以知道:二维数组可以看成是每个元素是一维数组的数组,那么二维数组的首元素就是第一行,是一个一维数组。所以,根据数组名是数组⾸元素的地址这个规则,二维数组的数组名表示的就是第一行的地址,是一维数组的地址。由此,我们可以看出,函数确实是存在地址的,并且函数名就是函数的地址,也可以使用&函数名来获取函数的地址。这就是函数指针数组的定义。它存放的是数组的地址,是一种能够指向数组的指针变量。把函数的地址存到⼀个数组中,那这个数组就叫函数指针数组,那么函数指针数组该如何定义呢?
2024-09-06 11:45:18
924
原创 C语言指针详解(2)
通过标题一的学习,我们知道了数组名的本质是数组首元素的地址,而数组传参本质上也是传递的数组首元素的地址 ,既然数组传参本质上是传递的数组首元素的地址,而既然是地址,那么就可以用指针变量来接收。既然arr可以赋值给pa,那么arr和pa应该是等价的,我们可以用arr[i]访问数组中的元素,那么我们是否也可以用pa[i]访问数组中的元素呢。在上述代码中,我们用&arr[0]的方式取得了数组的首元素的地址,但其实数组名本身就是数组的首元素的地址。这⾥的数组名表示整个数组,取出的是整个数组的地址。
2024-08-27 17:49:29
1007
1
原创 C语言指针详解(1)
一、什么是指针1.1、定义指针在C语言中也叫内存地址。那么什么是内存地址呢?以生活中的房间号为例,正因为生活中的这些房间号,我们才能快速找到要找的房间。而内存地址就相当于这些房间号,有了这些内存地址,CPU就能快速找到一个内存空间。
2024-08-26 10:06:31
1049
原创 Java中的接口
在现实生活中,存在很多的接口:笔记本上的USB口,电源插座等。而在Java中,接口可以看成多个类的共同规范,是一种引用数据类型。
2024-08-24 22:18:26
474
原创 java中的多态
多态是指同一个行为具有不同表现形式或形态的能力。例如:猫和狗都会吃饭,但猫是吃猫粮,狗是吃狗粮,这就是同一个行为,但具有不同的表现形式。
2024-07-30 18:44:33
560
原创 java中的继承
1、继承的概念继承是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。继承主要可以用来实现共性的抽取和代码的复用。
2024-07-26 15:50:45
976
1
原创 java中的类和对象
一、类 类是用来对一个对象进行描述的,主要用来描述该对象具有哪些属性和功能。1.1、类的定义注意:类名每个英文单词首字母最好大写注意事项:1. 一般一个文件当中只定义一个类2. main方法所在的类一般要使用public修饰3. public修饰的类必须要和文件名相同4. 不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改。(1、找到src下的Dog类,右键点击。2、找到重构并点击。3、找到第一个重命名,修改名称)1.2、类的实例化。
2024-07-19 20:11:32
1238
1
原创 java数组详解
一、数组的基本概念1、数组的定义数组可以看成是相同类型元素的一个集合,在内存中是一段连续的空间。这就类似于商场里的储物柜。2、一维数组2.1、一维数组的创建及初始化2.1.1、一维数组的创建1.array代表数组名,可任取。2. N代表一维数组中所存储元素的个数2.1.2、一维数组的初始化数组的初始化主要分为动态初始化以及静态初始化。动态初始化是指在创建数组时直接指定数组元素个数。静态初始化是指在创建数组时不直接指定数组元素个数,而是直接罗列具体的元素内容。
2024-07-14 22:40:13
2130
1
原创 Java中的运算符详解
计算机的最基本的用途之一就是执行数学运算。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * / %)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。一、算术运算符算术运算符分三类:基本四则运算符、增量运算符、自增/自减运算符。1、基本四则运算符(+ - * / %)注意:1. int / int 结果还是int类型,而且会向下取整2.做除法和取模时,右操作数不能为0。
2024-07-11 23:00:47
2313
原创 Java中的数据类型和变量
Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。因此,Java是众多语言中的值得学习的一个不错的选择。而想要掌握Java,熟知它的数据类型和变量就变得必不可缺。
2024-07-09 13:17:53
2115
原创 用C语言实现扫雷游戏
一、游戏介绍相信大家应该都玩过扫雷游戏吧,没玩过也没有关系,我先来给大家介绍一下扫雷游戏的玩法:1、胜利条件:这个游戏的目标就是在给定大小的棋盘上找出所有没有地雷的格子(期间不能踩雷,踩雷则输)后胜利。2、游戏细节:1.每点击一个格子,周围都会出现一些数字,这些数字代表周围8个格子中地雷的数量。2.棋盘上的一些格子中有地雷,翻开后会有图标,而其他格子被翻开后是空白的。图中所给的是9*9的棋盘,而我们现在要实现的也是这样一个9*9棋盘的扫雷游戏。
2024-07-08 12:15:38
953
原创 用C语言实现三子棋游戏
一、三子棋介绍三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了,但是三子棋很多时候会出现和棋的情况。
2024-07-06 15:40:07
730
原创 C语言数组
一、数组的概念数组是⼀组相同类型元素的集合。从这一点我们可以看出,数组元素个数为1个或多个,并且这些元素的数据类型都相同。二、一维数组的创建和初始化1、一维数组的创建一维数组的创建形式如下:其中,type为数组中存放数据的类型 ,例如int ,float ,double ,char等。arr_name为数组的名字,可以任取有意义的名字。[ ]里的常量指定了数组的大小,也就是数组元素的多少。例如,我们想要存储班上40个人每个人的英语成绩,可以创建以下数组:2、初始化。
2024-07-06 08:00:00
430
原创 c语言中的算术操作符
二、“*” 操作符在c语言中,为了方便计算,提供了一系列操作符,其中就有算术操作符,算术运算符包括“+”、“-”、“*”、“/”、“%”这五种操作符。(注意:操作符又被叫做运算符,相当于一个人的不同称呼,意思都相同),这些操作符都是双目操作符。一、"+","-"操作符就像数学中的“+”和“-”,c语言中的“+”、“-”用来完成加法和减法。“+”、“-”都有两个(位于操作符两端的就是它们的操作数),这种操作符也叫。运行代码如下:二、“*” 操作符“*”操作符用来完成乘法。三、“/”操作符。
2024-06-01 22:30:11
370
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人