![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 52
上士闻道~勤而行之
这个作者很懒,什么都没留下…
展开
-
使用docker安装mysql8
docker 安装mysql8原创 2023-02-14 10:00:59 · 592 阅读 · 0 评论 -
mysql中autocommit,start transaction和begin/commit的异同
mysql中autocommit,start transaction和begin/commit的异同原创 2022-10-22 22:00:01 · 565 阅读 · 0 评论 -
MySQL 事务的原子性和一致性有什么区别?隔离级别又是什么?
MySQL 事务的原子性和一致性原创 2022-10-21 22:41:21 · 107 阅读 · 0 评论 -
mysql查询当前日期的前12个月的统计
selectfrom()aleft join。原创 2022-10-12 14:16:59 · 765 阅读 · 0 评论 -
select......for update会锁表还是锁行
select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁。使用主键id为条件去查询,然后开启另一个事务去更新数据,更新被阻塞,加锁了,锁定要查询的id为1的行数据。如果是普通字段(没有索引/主键),那么select ..... for update就会进行锁表。另一个事务我去更新另外一条数据,如果我更新成功了,就是锁行,失败了就是锁表。那么它加的是行锁还是表锁,这就要看是不是用了索引/主键。图二为第二个事务,去更新数据,被阻塞了。转载 2022-09-19 09:50:52 · 94 阅读 · 0 评论 -
mysql 联合索引使用规则
从一道有趣的题目开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)以下选项哪些字段使用了该索引:A where c1=x and c2=x and c4>x and c3=xB where c1=x and c2=x and c4=x order by c3C where c1=x and c4= x group by c3,c2D where c1=? and c5=? order by c2,c3E where c1=? and c2=? and c5=? order原创 2021-03-12 23:24:38 · 243 阅读 · 0 评论 -
Mybatis插入语句useGeneratedKeys="true"的用法
<!-- 插入新的问题件 --> <!-- useGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中 --> <insert id="insert" parameterType="jw.base.entity.WrongRecApply" useGeneratedKeys="true" ke转载 2018-08-15 15:03:47 · 300 阅读 · 0 评论 -
sql语句对数据库表进行加锁和解锁
锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。 我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象。即如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。这些问题包括:丢失更新、脏读、不可重复读和幻觉读:1.当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知...原创 2018-06-29 22:56:21 · 15943 阅读 · 1 评论 -
mysql中查看一个字段属于那个表
SELECTTABLE_SCHEMA,TABLE_NAMEFROMinformation_schema.`COLUMNS`WHERECOLUMN_NAME='字段名'打印出来的是数据库名 表名原创 2018-04-08 21:05:52 · 414 阅读 · 0 评论 -
DDL和DML的含义
DDL表示Data Definition Language数据定义语言,主要包括CREATE,ALTER,DROP;隐性提交的,不能rollback。DML表示Data Manipulation Language数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE;可以手动控制事务的开启、提交和回滚的。...原创 2018-04-07 09:03:32 · 3911 阅读 · 0 评论 -
oracle和mysql区别
1,Oracle没有offet,limit。oracle要分页的话,要换成rownum。2,oracle建表时,没有auto_increment,要自己添加序列实现一个字段自增,插入时把序列的值插入进去。3,oracle有一个dual表。select 1 这个在mysql不会报错的,oracle下会。select 1 from dual这样的话,oracle就不会报错了。4,对空值的判断,name...原创 2018-04-07 09:08:01 · 738 阅读 · 0 评论 -
JDBC访问数据库的基本步骤
A.载入JDBC驱动程序String driver = "oracle.jdbc.driver.OracleDriver";B.定义连接URLString url = "jdbc:oracle:thin:@127.0.0.1:1521:DB_NAME";C.建立连接String username= "zhouchuandong";String password = "xiaodong728";C...原创 2018-04-06 12:02:27 · 7304 阅读 · 0 评论 -
varchar/nvarchar 和 char/nchar区别
1.带var前缀的表示实际存储空间是可变长的,如varchar/nvarchar;相反则是存储空间是定长的(长度是固定的)。如varchar(10)/nvarchar(10)的实际存储空间为<=10,而char(10)/nchar(10)的实际存库空间为10,因为当输入长度不够10时,数据库会以英文空格形式在字段后面填充。2.n表示为Unicode字符,即所有字符都占两个字节,nchar,n...原创 2018-04-06 12:02:39 · 994 阅读 · 0 评论 -
mybatis中"#"和"$"的区别
1.#在预编译的时候会以“?”代替所传的字符串,而$在预编译时直接把字符串传给字段;2.#可以避免sql注入的发生;而$有可能会产生sql注入,给系统带来不安全得发生。原创 2018-04-05 21:09:00 · 87 阅读 · 0 评论 -
DROP,DELETE,TRUNCATE区别
1.DROP删除整个表; DELETE删除表中数据和可以删除视图(view); TRUNCATE只删除表数据。2.TRUNCATE表后,表和索引占用的空间会恢复到初始大小;DELETE操作不会减少表或索引占用的空间;DROP语句将表占用的空间全部释放掉。3.DELETE为DML操作,有数据库事物控制,可回滚;事物提交后delete操作生效;DROP和TRUNCATE为DDL操作,无事物控制...原创 2018-04-05 20:12:59 · 547 阅读 · 0 评论 -
sql优化方法(避免引起全表查询的方法有哪些)
1.尽量避免在 where 子句中使用!=或<>操作符2.优先考虑在 where 及 order by 涉及的列上建立索引3.尽量避免在 where 子句中对字段进行 null 值判断 select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t wher...原创 2018-04-05 19:51:34 · 4285 阅读 · 2 评论 -
linux连接mysql命令
一些主要的命令:连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL 找到mysql的安装目录,一般可以直接键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 2...原创 2019-05-07 16:46:14 · 6915 阅读 · 0 评论 -
唯一索引与主键索引的比较
感谢博主:https://www.cnblogs.com/ymj0906/p/4240856.html唯一索引唯一索引不允许两行具有相同的索引值。如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在 employee 表中的职员姓氏(lname) 列上创建了唯一索引,则所有职员不能同姓。主...转载 2019-02-20 23:02:51 · 3198 阅读 · 0 评论 -
解决like中无法匹配下划线的问题
转载自:收藏了很久了忘记了如果想检索出字段中包含下划线“_”的内容,该如何书写SQL语句呢?之所以问这个问题,是因为在Oracle中下划线在like中有着特殊的含义,它表示匹配任意一个字符。因此在查询包含下划线内容的时候需要“特殊关照”一下。既然被问到了这个问题,简单记录一下两种规避的方法,供参考。1.创建实验表,并初始化三条数据sec@ora10g> create table t (x v...转载 2018-05-15 11:23:19 · 2025 阅读 · 0 评论 -
Mysql添加,修改,删除列
MySQL 添加列,修改列,删除列ALTER TABLE:添加,修改,删除表的列,约束等表的定义。查看列:desc 表名;修改表名:alter table t_book rename to bbb;添加列:alter table 表名 add column 列名 varchar(30);删除列:alter table 表名 drop column 列名;修改列名MySQL: alter table...原创 2018-05-02 17:17:29 · 122 阅读 · 0 评论 -
druid 参数配置详解
1初始化连接在druid连接数据库的配置文件中,读写datasource的bean中 要有init-method="init". 配置,否则在启动连接池时不会执行初始化操作。 示例:<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-met...转载 2019-10-09 16:30:37 · 4992 阅读 · 1 评论 -
Powerdesigner通过sql脚本导入表结构
File->Reverse Engineer->Database ,选择数据库类型单击“确定”以后出现以下截图:导入sql脚本,然后单击“确定”,成功导入后powerdesign中会生成一张PhysicalDiagram文件,里面包含你导入的所有表结构;其他数据库的导入方式同理。...原创 2018-07-02 15:25:57 · 6841 阅读 · 1 评论 -
数据库事物的四大特性
事物(transaction)是由一些列操作序列构成的执行单元,这些单元要么都做,要么不做,是一个不可分割的工作单元。数据库事物的四个基本性质(ACID)1.原子性(Atomicity)指的是事物中包含的所有操作要么全做,要么全不做(all or none)。2.一致性(consistency)在事物开始以前,数据库处于一致性的状态,事物结束后,数据库也必须处于一致性的状态。拿银行转账来说,一致性...原创 2018-04-07 09:07:17 · 594 阅读 · 0 评论 -
数据库的事物隔离级别
1,脏读 脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。 当一个事务正在多次修改某个数据,而在这个事务中这多次的修改都还未提交,这时一个并发的事务来访问该数据,就会造成两个事务得到的数据不一致。例如:用户A向用户B转账100元,对应SQL命令如下 update account set money=money+100 where name=’B’; (此时A通知B) ...原创 2018-04-07 09:06:49 · 110 阅读 · 0 评论 -
数据库中乐观锁与悲观锁的概念
今天早上起来,静静的看技术博客,发现了一篇好文章:锁( locking )业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “ ...原创 2018-04-13 10:04:37 · 137 阅读 · 0 评论