![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySql
mysql
wojiaowj-
这个作者很懒,什么都没留下…
展开
-
mysql中的悲观锁和乐观锁
悲观锁:事务必须排队执行,数据锁住了,不允许并发.(行级锁:在select的句子后面添加for update)乐观锁:支持并发,事务不需要排队,只不过需要一个版本号原创 2021-08-24 14:45:29 · 53 阅读 · 0 评论 -
mysql中的去除重复记录
去除重复记录:原表数据不会被修改,只是查询结果去重.去重需要使用一个关键字:distinctdistinct 只能出现在所有字段的最前方。distinct 出现在一个字段前,就是去重.distinct 出现在两个字段之前,表示两个字段联合起来去重....原创 2021-08-22 00:42:29 · 159 阅读 · 0 评论 -
mysql中的单行处理函数
单行处理函数的特点:一个输入对应一个输出.常见的单行处理函数:lower 转换小写lower(字段名);upper 转换大写upper(字段名);substr 取子串(sub(被截取的字符串,起始下标,截取的长度))起始下标从1开始,没有0trim 去空格str_to_date 将字符串转换成日期date_formate 格式化日期format 设置千分位round 四舍五入select round(123.456,1)保留1个小数.select ro原创 2021-08-22 00:35:28 · 283 阅读 · 0 评论 -
mysql中的分组函数
分组函数(多行处理函数)多行处理函数的特点:输入多行,输出一行.5个:count计数sum求和avg求平均值max最大值min最小值分组函数在使用的时候必须先进行分组,然后才能使用,如果没有进行分组,整张表就会默认为一组.分组函数自动忽略null,不需要提前对null进行处理.count(某一个字段):表示统计该字段下所有不为null的元素的总和.count(*):统计表当中的总行数(因为每一行记录不可能都为null).分组函数不能直接使用在where子句中,原创 2021-08-22 00:15:46 · 797 阅读 · 0 评论 -
数据库设计三范式
数据库设计范式:数据库表的设计依据,教你怎么进行数据库表的设计.第一范式:要求任何一张表必须有主键,每一个字段原子性不可再分.最核心,最重要的范式,所有表的设计都需要满足.第二范式:建立在第一范式的基础之上,要求所有非主键字段完全依赖主键,不要产生部分依赖.产生部分依赖的缺点:数据冗余了,导致空间浪费.口诀:多对多,三张表,关系表两个外键.第三范式:建立在第二范式的基础之上,要求所有非主键字段直接依赖主键,不要产生传递依赖.口诀:一对多,两张表,多的表加外键.一对一,外键唯一原创 2021-08-21 23:44:46 · 122 阅读 · 0 评论 -
mysql中的视图
视图(View)就是站在不同的角度去看待同一份数据.创建视图对象格式:create view 视图名as DQL语句(select);例如:删除视图对象格式:drop view 视图名;例如:只有DQL语句才能以view的形式创建.原创 2021-08-21 20:37:37 · 89 阅读 · 0 评论 -
mysql中索引的失效
1.使用了模糊查询,即使该字段上有索引,也不会走索引,原因是因为模糊匹配中以"%"开头了,尽量避免模糊查询的时候以"%"开头,这是一种优化的手段/策略.2.使用or的时候会失效,如果使用or那么需要or两边的条件字段都要有索引,才会走索引,如果其中一边有一个字段没有索引,那么另一个字段上的所有也会实现.3.使用复合索引,没有使用左侧的列查找,索引失效.两个字段,或者多个索引联合起来添加一个索引,叫做复合索引.4.在where当中索引列参加了运算,索引失效.5.在where当中索引列使用了原创 2021-08-21 20:31:18 · 65 阅读 · 0 评论 -
mysql中索引的创建和删除
在mysql中,查看一个SQL语句是否使用了索引进行检索的方式为直接在查询命令前面加一个explain例如:创建索引:格式:create index 索引名 on 表名(字段名);例如:删除索引:格式:drop index 索引名 on 表名;例如:...原创 2021-08-21 20:05:17 · 45 阅读 · 0 评论 -
mysql中的索引的概率
索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制.一个字段可以添加索引,也可以多个字段联合起来添加索引.索引相当于一本书的目录,是为了缩小扫描范围而存在的一种机制.mysql在查询方面主要就是两种方式:第一种方式:全表扫描第二种方式:根据索引检索在mysql数据库当中索引也需要排序,并且这个索引的排序和TreeSet数据结构相同,在mysql中索引是一个B-Tree数据结构.在任何数据库当中主键上都会自动添加索引对象,如果一个字段上有unique约束的话,也会自动原创 2021-08-21 19:53:46 · 73 阅读 · 0 评论 -
mysql中的约束
1.约束的作用就是为了保证表中数据的有效性,完整性.约束直接添加在列的后面,这种约束称为为列级约束.约束没有添加在列的后面,这种约束称为表级约束.2.约束的类型:2.1非空约束(not null)非空约束not null约束的字段值不能为null,not null只有列级约束,没有表级约束.使用方法:在建表的时候加在数据类型之后,例如:2.2唯一性约束(unique)唯一性约束可以为空唯一性约束unique约束的字段中的值不能重复,但可以为null,可以多个字段联合起来使原创 2021-08-20 00:39:40 · 466 阅读 · 0 评论 -
mysql中str_to_date函数和date_format函数和now函数
date和datetime的区别date是短日期,只包括年月日,默认格式为:%Y-%m-%d.datetime是长日期,包括年月日分秒,默认格式为:%Y-%m-%d %h:%i:%s.1.now()函数作用:可以获得系统当前的时间,包括时分秒,是datetime类型的.2.str_to_date函数作用:将字符串varchar类型转换为date类型格式:str_to_date('字符串日期','日期格式');%Y---年,%m---月,%d---日,%h---时,%i---分原创 2021-08-19 10:38:27 · 3683 阅读 · 0 评论 -
mysql中表的创建和常见的数据类型
1.建表属于DDL语句,DDL包括create drop alter创建表的格式:create table 表名(字段名1 数据类型,字段名2 数据类型);2.mysql中常见的数据类型varchar 可变长度的字符串,可以节省空间,可以根据实际的数据长度分配空间,例如:建表时该字段的数据类型为varchar(10),输入一个jack,占了4个长度,mysql就会分配4个长度的空间给jack,而不会将10个空间全部分配给jack,varchar节省空间,需要动态分配空间,速度慢,varc...原创 2021-08-18 23:53:18 · 3077 阅读 · 0 评论 -
mysql中关于表的删除和表中数据的删除
1.删除表(drop属于DDL语句)格式:drop table 表名2.删除表中的数据(delete属于DML语句,truncate属于DDL语句)第一种方式:delete from 表名 where 条件;如果没有条件的话,会将表中所有的数据删除.用delete删除表中的数据速度比较慢,但这些数据在硬盘上的真实存储空间不会被释放.优点:支持回滚,删错了或者后悔了可以恢复数据.缺点:删除效率比较低.第二种方式:truncate table 表名这种删除是物理删除,会把表中原创 2021-08-19 15:31:23 · 1532 阅读 · 0 评论 -
mysql中表的创建和删除
mysql中表的创建和删除的语句都属于DDL语句1.创建表格式:create table 表名(字段1 数据类型,字段2 数据类型);例如:创建一张身份信息表2.删除表格式:1.drop table 表名 如果表不存在会报错. 2.drop table if exists 表名 如果这张表存在,就删除,如果不存在也不会报错....原创 2021-08-19 00:14:09 · 296 阅读 · 0 评论 -
mysql中数据的插入,更新和删除
在mysql中,insert,update,delete都属于DML语句1.insert语句格式:insert into 表名(字段名1,字段名2) values (值1,值2);字段名和表名要一一对应,数据类型也要对应,如果没有给某一字段值的话,默认的值是NULL,也可以在建表的时候就给定自己想要的默认值.insert也可以连续插入多条语句,格式:格式:insert into 表名(字段名1,字段名2) values (值1,值2),(值1,值2),(值1,值2);表名后面的字段名如果原创 2021-08-19 10:16:52 · 202 阅读 · 0 评论 -
mysql中的事务隔离级别
事务与事务的隔离级别有4种.1.读未提交:read uncommitted(最低的隔离级别)(没有提交就读到了)事务A可以读取到事务B未提交的数据.这种隔离级别存在的问题就是:脏读现象(Dirty Read)我们称读到了脏数据.这种隔离级别一般都是理论上的,大多数的数据库隔离级别都是二档起步.2.读已提交:read committed(提交之后才能读到)事务A只能读取到事务B提交之后的数据.这种隔离解决了脏读现象.这种隔离级别存在的问题是:不可重复读取数据.不可重复读原创 2021-08-21 17:08:04 · 64 阅读 · 0 评论 -
mysql中的事务的概念和事务的特性
事务的概念:一个事务其实就是一个完整的业务逻辑,是一个最小的工作单元,不可再分,说到底,一个事务其实就是多条DML语句同时成功,或者同时失败.只有DML(insert,delete,update)语句才有事务这一说,其他语句和事务无关.InnoDB存储引擎:提供了一组用来记录事务性活动的日志文件.在事务的执行过程中,每一条DML的操作会记录到记录事务性活动的日志文件中.在事务的执行过程中,我们可以提交事务,也可以回滚事务.提交事务(commit):清空记录事务性活动的日志文件,将数据原创 2021-08-21 16:14:14 · 135 阅读 · 0 评论 -
mysql中的存储引擎
不同的存储引擎,表的存储方式不同查看该表的存储引擎的sql语句为:show create table 表名.在建表的时候可以指定存储引擎和字符编码方式.例如:在engine=后面添加自己想要的存储引擎,在charset后面添加字符编码方式.mysql默认的存储引擎是InnoDB.mysql默认的字符编码方式是utf8.查看mysql支持的存储引擎的sql语句:show engines \g,支持或不支持看mysql当前的版本;查看mysql的版本的方法:1.select.原创 2021-08-20 23:52:39 · 80 阅读 · 0 评论