
数据库
白云如幻
坚持,终将收获更好的自己。一位来自97年的程序员;在一个偶然的机会下接触到程序员这个职业,沉醉其中,喜欢安安静静的写代码,在代码的世界里奔跑。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
inout参数模式存储过程和删除查看存储过程和MySQL总结
①myslq最基础的常识②查③增、改、删④数据库和数据表的管理⑤约束⑥事务控制⑦存储过程⑧变量和函数⑨索引⑩视图。原创 2025-04-01 12:09:49 · 272 阅读 · 0 评论 -
MySQL存储过程的介绍和无参数存储过程演示
存储过程:类似java中的方法存储过程:预先编辑好SQL语句的集合,这个集合完成了某项具体的功能集合,我需要这个功能的时候,只要调用这个过程就好了!原创 2025-02-23 18:21:01 · 365 阅读 · 0 评论 -
MySQL设置回滚点
【代码】MySQL设置回滚点。原创 2025-02-23 18:19:20 · 265 阅读 · 0 评论 -
MySQL事务并发问题
①脏读: 当t2正在更新某个字段但还没有提交数据库执行时,t1在这个时刻正好读取这个字段的数据,然后t2在发生错误,然后回滚数据,导致t1读取到数据就是t2更新时的临时数据,而且最终没有更新成功的无效数据!一个事务与其他事务隔离的程度称为隔离级别:数据库规定了事务隔离级别,不同隔离级别对应不同的干扰程度,级别越高,数据一致性越好,但并发性越弱!②不可重复读:t1读取一个字段是数值,然后t2更新了这个字段,之后t1在读取同一个字段,值发生了变化!//这时候你看到查到的数据是C,但是前一个事务并没有提交。原创 2025-02-23 18:18:10 · 406 阅读 · 0 评论 -
MySQL的事务处理演示
注意:默认MySQL是开启自动提交事务的,用show variables like 'autocommit';命令可以查看到. 所以开启显示事务前,要关掉它,用set autocommit=0;①隐视事务:事务没有明显的开始和结束的标记.这时候像insert语句,update语句和delete语句,每一条SQL语句就默认是一个事务.②显示事务:说白了,这个事务模式,就要我们中程序中手动的用命令来开启事务,和结束事务,并让事务里的多条SQL语句去执行.回滚事务,恢复数据库执行前的状态!原创 2025-02-20 16:36:02 · 270 阅读 · 0 评论 -
MySQL事务介绍
②一致性(Consistency):事务必须让数据的数据状态变化到另一个一致性的状态,比如:刚刚的例子中A和B的余额总和是2000,转账后,A和B的余额总和不能变.前后具有一致性.④持久性(Durability):一个事务被提交,并成功执行,那么它对数据的修改就是永久性的.接下来的其他操作或出现的故障,不能影响到它执行的结果!③隔离性(Isolation):一个事务的执行,不受其他事务的干扰,相互应该是隔离的,但是实际上是很难做到的,要通过隔离级别做选择!①√②×:A的钱减少了,B的钱没增加!原创 2025-02-16 23:50:01 · 251 阅读 · 0 评论 -
MySQL标识列
自增长列必须和键(一般是主键)搭配一个表中有且只能有一个自增长列自增长列的类型只能是数值型,一般情况用int自增长列可以设置步长(set auto_increment_increment=3;),也可以手动插入一个数值改变起始值。原创 2025-02-16 09:34:34 · 214 阅读 · 0 评论 -
MySQL修改表时添加和删除约束
【代码】MySQL修改表时添加和删除约束。原创 2025-02-16 09:29:35 · 162 阅读 · 0 评论 -
MySQL创建表时添加约束
【constraint 约束名字】 约束类型(字段名称) 【额外的东西,如外键】原创 2024-12-15 11:51:00 · 226 阅读 · 0 评论 -
MySQL常见的约束
限制,限制我们表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败,插入不进去的!比如:学生信息表中,学号就会约束不可重复!原创 2024-12-15 11:47:46 · 206 阅读 · 0 评论 -
MySQL数据类型
MySQL数据库中的常用数据类型①整型②小数类型①短的文本:char varchar②长的文本:text blob(二进制)原创 2024-12-13 22:08:53 · 421 阅读 · 0 评论 -
MySQL数据表的管理
①修改publishDate为publish_date。案例:中books里创建一张表book用来保存书的信息。②修改publish_date的时间时间类型。首先看看可以修改表的那些东西?④只复制部分字段,且不要数据。案例:创建书的作者信息表。③只复制表结构和部分数据。(注意后面要跟上类型)③给作者表添加工资字段。④删除作者表工资字段。②复制表的结构和数据。原创 2024-12-13 21:58:00 · 471 阅读 · 0 评论 -
MySQL数据表记录删操作
删除操作:作用删除表里的记录行(都是整行整行的删除的。原创 2024-12-12 20:38:43 · 360 阅读 · 0 评论 -
MySQL数据表记录改操作
修改语句:作用修改记录里的部分值。原创 2024-12-12 20:34:23 · 246 阅读 · 0 评论 -
MySQL数据表记录增操作
①insert记录值时候要保持插入的记录值的类型和表结构设计的类型一致,除了数字类型外,字符串型varchar和日期类型datetime等都应该用单引号包裹起来。③表名后的字段列表的顺序必须和values后面的值列表没有严格是顺序限制但必须前后一一对应(内容上一致,还有数量上一致,数据类型一致)④表名后面的字段列可以连带括号都可以省略,省略后意味着后面的values值列表必须和表结构中所有字段一一对应.(不建议这样用)②表结构设计中规定不可为空的字段必须插入记录值,可以为null的列在插入的时候可以不写。原创 2024-12-10 21:37:32 · 484 阅读 · 0 评论 -
MySQL之union联合查询
关键字union,作用就是将多条查询语句的结果合并成一个结果集;查询部门编号大于100或名字中含有a字符的员工信息。原创 2024-12-08 21:34:07 · 381 阅读 · 0 评论 -
MySQL分页查询
比如:size=10那么, page 和 size 记录范围 和 起始记录索引值 limit。limit offset(开始记录索引,是从0开始的),size(要取出的条数);通用的分页查询写法(page:页数,size:每页显示的记录条数)记住每页的起始记录索引值:(page-1)*size。where ....等等前面学过的所有写法。数据记录条数过多的时候,需要分页来显示。3页: 21_30条 20,10。2页:11-20条 10,10。1页: 1-10条 0,10。select 查询字段。原创 2024-12-08 21:30:54 · 403 阅读 · 0 评论 -
MySQL之exists后面的子查询
注意:能用exists的绝对能用前面讲过的in来实现,所以exists很少使用。exists的作用是:判断子查询有没有结果的存在。exists后面(相关子查询)案例:查询有员工的部门名。原创 2024-12-06 19:09:09 · 405 阅读 · 0 评论 -
MySQL之select和from后面的子查询
select 后面(很少用的,可以用前面讲的方法实现)案例:查询每个部门的平均工资等级。原创 2024-12-06 19:05:55 · 426 阅读 · 0 评论 -
MySQL子查询之where后的列子查询和行子查询
首先来看一下多行操作符in/not in:等于列表中的任意一个可以替换 a=10 or a=20 or a=30;any/some:和子查询返回的某一个值比较可以替换 a > min(10,20,30);all:和子查询返回的所有值比较可以替换 a > max(10,20,30);原创 2024-12-05 23:20:05 · 407 阅读 · 0 评论 -
MySQL子查询介绍和where后的标量子查询
出现在其他语句中的select语句,被包裹的select语句就是子查询或内查询包裹子查询的外部的查询语句:称主查询语句。原创 2024-11-23 14:52:19 · 551 阅读 · 0 评论 -
SQL99版全外连接和交叉连接和总结
全外连接MySQL不支持交叉连接就两个记录做笛卡尔积!没什么好说的,基本也没用过!原创 2024-11-23 14:47:55 · 463 阅读 · 0 评论 -
SQL99版外连接
看这样的场景,在ta和tb两表中查询没有对应年龄数据的学生姓名和年龄。所以外连接主要就是解决这种情况,一边有数据对应的另一张表中没有数据!外连接:当从表没有记录的时候,会保留主表的记录,对应从表null。在ta和tb两表中查询没有对应年龄数据的学生姓名和年龄。内连接:当从表没有记录的时候,主、从表的记录都丢掉!结果没有,所以前面的查询是解决不了这种问题!外表中没有对应的数据,结果记录上填充null。外表有对应数据,结果记录上显示对应数据。原创 2024-11-22 15:11:06 · 546 阅读 · 0 评论 -
SQL99版链接查询语法
查询同一个工资级别的员工的个数大于20的员工个数,并且按照工资级别降序排序。#剩下连接类型的SQL语法就不是前面同一个发布版本了。外连接: //红色的连接查询类型92版SQL。右外连接 right 【outer】交叉连接 cross 【outer】内连接:inner (还可以省略)左外连接 left 【outer】全外连接 full 【outer】查询员工的名和其对应的直属领导。自连接 //92SQL。原创 2024-11-22 15:01:27 · 613 阅读 · 0 评论 -
MySQL连接查询之自连接
相当于等值连接,只不过是自己连接自己,不像等值连接是两个不同的表之间的。查询员工名和他的上司的名字。原创 2024-11-22 14:53:15 · 212 阅读 · 0 评论 -
MySQL连接查询之非等值连接
创建一张job_grades工资级别表。等值连接中的等号改成非等号情况。原创 2024-11-20 13:20:49 · 242 阅读 · 0 评论 -
MySQL连接查询之等值连接
建一个新库包含两张表实验:ta:id,age字段,tb:id,name,ta_id。原创 2024-11-11 15:41:14 · 267 阅读 · 0 评论 -
MySQL分组查询
分组查询:group by关键字实现分组,group by放在where条件语句之后,order by放置中group by的后面,一会儿还会学到的having关键字,总体的循序先后为:原创 2024-11-07 15:13:14 · 576 阅读 · 0 评论 -
MySQL的分组函数
分组函数和前面讲的函数不同在于,前面的对内容本身的处理,而分组函数的主要功能是统计。分组函数还可以和一个关键字和用:distinct。分组函数的共同特点:会忽略null。原创 2024-11-07 14:47:10 · 372 阅读 · 0 评论 -
MySQL的其他函数
案例:员工表中, 部门号是30,显示的工资是1.1倍,部门号是40,显示的工资是1.2倍,其他显示原工资。案例:查询入职日期是1992-4-3的员工信息。//查看当前使用的数据库。//查看mysql版本。原创 2024-11-06 21:11:02 · 454 阅读 · 0 评论 -
MySQL常见函数的讲解
函数:将某些功能封装到一起,对外提供到一个接口(函数名),通过函数调用的方式可以重复的执行函数里的功能,从而提高我们的代码的复用性。7.lpad('目标字符串',10,'填充字符');5.instr('源字符串','子字符串':作用返回子字符串子源字符串里的起始索引。6.trim(' 有空格的字符串 '):作用是去掉字符串前后的空格,中间空格去不掉。9.replace('目标字符串','被替换子串','用于替换的新串')替换。2.concat(str1,str2,...):连接字符串。原创 2024-11-06 21:03:37 · 220 阅读 · 0 评论 -
MySQL排序查询
案例实现多字段排序,查询员工信息,首先用工资高低排序,工资一样的在按员工id大到小排序。查询部门编号大于等于90的员工信息,按照入职时间的先后排序。案例加上条件oreder by语句是放在条件语句后面的,案例实现按表达式排序,按年薪的高低显示员工信息。案例:查询所有员工信息,要求工资从大到小排列。案例使用函数来排序,按姓名的长度显示员工信息。原创 2024-11-06 20:58:32 · 264 阅读 · 0 评论 -
MySQL模糊查询
案例:查询员工名中包含了"a"字符的所有员工的信息案例:查询第三个字符为n或第五个字符为l的员工信息案例:查询员工信息表中员工名第二个字符是"_"的员工信息案例:查询员工工资中10000到20000之间到员工信息注意:使用between and1.可以简洁sql语句2.并且包含临界值3.连个临界值不能调换位置,小的在左边,大的值在右边。原创 2024-11-05 15:51:15 · 314 阅读 · 0 评论 -
MySQL在基础查询基础上升级到条件查询
案例:工资在10000到20000之间到员工名,工资和奖金。原创 2024-11-03 15:32:17 · 333 阅读 · 0 评论 -
MySQL有关基础查询的知识点
查询salary,并起别名为 out put,别名里有特殊符号空格,这时要加单引号。好处:一个容易理解,语义化,另一个在后面的多表查询时候区分不同表里的同名字段。符号: 不是单引号,是着重号!用于区别关键字和字段名的,可以省略。用as关键字,如select 100%98 as 余数结果。as关键字可以换成空格。原创 2024-11-03 15:15:59 · 388 阅读 · 0 评论 -
MySQL的语法规范
1、mysql的命令不区分大小写,但建议关键字大写,表名、列名小写;3、每条命令根据需要,可以进行缩进和换行,建议关键字在一行。单行注释2: -- 文字文字 (主要 -- 后有空格)多行注释: /* 文字文字 */单行注释:#文字文字。原创 2024-11-01 11:53:58 · 210 阅读 · 0 评论 -
MySQL的常用命令
可以看到,client,connection和result的编码已经设置为gbk了,但server,database,system的编码还是utf-8!这就是说,虽然数据是使用utf-8编码存储的,但是客户端以及返回的结果集是gbk的,而此时cmd窗口的编码正好是gbk,因此该结果集能正确显示了。修改表的默认字符集:ALTER TABLE 表名称 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;查看非所在库的表信息,用from关键字指定目标库。原创 2024-11-01 11:52:22 · 676 阅读 · 0 评论 -
MySQL服务端的登陆和退出
cmd的dos命令端(必须是管理员的):mysql -h localhost -P 3306 -u root -p。-p:密码(这里可以写,也可回车后再写,写了密码,密码和-p不能有空格,前面的可以有空格)ySql自带的客户端登陆和退出(exit,ctrl+c);本机的话,也可以简写:mysql -u root -p。原创 2024-10-30 16:34:49 · 148 阅读 · 0 评论 -
【Mybatis】全局配置文件typeAliases和typeHandlers标签
无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。类型别名是为 Java 类型设置一个短的名字。JSR 310为Java提供了一个新的、改进的日期和时间API,以代替目前复杂的难以使用的日期和时间功能。Mybatis已经为一些常见的 Java 类型内建的相应的类型别名。它们都是大小写不敏感的,Year year = Year.now();原创 2024-05-17 17:34:50 · 516 阅读 · 0 评论 -
【Mybatis】全局配置文件properties和settings标签
指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这对于有 Map.keySet() 依赖或 null 值初始化的时候是有用的。注意:这个配置了解一下就可以了,因为显然,在项目中是要和spring整合的,数据源是要交个spring管理的,所有肯定不会用这个配置的!不同的驱动在这方面会有不同的表现, 具体可参考相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果。这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。原创 2024-05-17 17:28:51 · 1300 阅读 · 0 评论