![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 95
数据库相关技术栈总结
指尖改变生活
将来的你一定感谢现在拼搏的自己
展开
-
乐观锁与悲观锁详解
一、并发控制当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在 DBMS 中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离性、一致性和数据库的统一性。实现并发控转载 2021-04-17 23:38:32 · 907 阅读 · 0 评论 -
mybatis中![CDATA[]]标签的作用
mybatis中<![CDATA[]]>的作用在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。<![CDATA[ ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。如果文本包含了很...转载 2019-11-25 17:33:00 · 3111 阅读 · 0 评论 -
linux/xshell 下执行sql脚本
首要步骤(一般可省略):开启mysql服务(默认是开机时就自动运行了):控制面板–>管理工具–>服务,在里面找到名称为mysql的项,双击就可看它的服务状态是启动还是停止,把它设为启动连接mysql:在命令行下输入 mysql -h localhost -u root -p回车,然后输入密码即可;或直接运行mysql自带的连接工具,然后输入密码即可.1.编写sql脚本,假设内...转载 2019-11-14 09:43:04 · 1695 阅读 · 0 评论 -
mysql数据库的水平拆分与垂直拆分
**mysql数据库的水平拆分与垂直拆分**近端时间在面试,发现很多面试官或者面试都把数据的水平拆分合垂直拆分给搞混了,今天特意写了一篇博客来说说水平拆分和垂直拆分希望对程序猿们有所帮助。数据库水平与垂直拆分:垂直(纵向)拆分:是指按功能模块拆分,比如分为订单库、商品库、用户库…这种方式多个数据库之间的表结构不同。水平(横向)拆分:将同一个表的数据进行分块保存到不同的数据库中,这些数据...转载 2019-10-21 17:44:36 · 143 阅读 · 0 评论 -
MySQL索引详解
MySQL索引详解索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL );我们随机向里...转载 2019-10-21 17:06:43 · 162 阅读 · 0 评论 -
MySQL索引
**MySQL索引**MySQL索引可以用来快速地寻找某些具有特定值的记录,所有 MySQL.索引都以B-树形式保存。如果 MySQL没有索引,执行 select时会从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。如果表中数据有上亿条数据,查询一条数据花费的时间会非常长,索引类似于电子书的目录与页码的对应关系,可加快数据的查找。如果在需搜索条件的列上创建了索引, MySQL无...转载 2019-10-21 16:10:55 · 88 阅读 · 0 评论 -
SQL CREATE INDEX (mysql 创建索引)语句
**SQL CREATE INDEX (mysql 创建索引)语句**1.创建普通索引SQL CREATE INDEX 语法在表上创建一个简单的索引。允许使用重复的值:CREATE INDEX index_nameON table_name (column_name)注释:“column_name” 规定需要索引的列。2.创建唯一索引SQL CREATE UNIQUE INDE...原创 2020-09-11 18:36:33 · 5112 阅读 · 0 评论 -
Navicat 创建oracle表空间(数据库)、新建用户、授权
1.利用数据库管理员账号:SYSTEM,再配合数据库管理口令,连接Oracle数据库。登录界面:2.创建表空间文件进入如下界面进入如下界面弹出如下界面,输入表空间名称最终结果:2 .新建用户弹出如下界面:3.授权下面我们直接使用navicat测试一下我们刚才新建的表空间能不能连接成功...转载 2019-11-24 12:20:58 · 1746 阅读 · 0 评论 -
用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error
说一下我解决这个问题的办法下载oci.dll文件(instantclient-basic-win-x64|x86) 连接如下,如果不行,那就去官网下载最新的再试试https://pan.baidu.com/s/1hwxQf7_FsnH78vYoLRDdGg 提取码:shtg然后在Navicat中配置一下,选择工具-选项 在OCI library中找到刚刚下载的文件夹中的...转载 2019-11-23 22:29:58 · 308 阅读 · 0 评论 -
忘记oracle用户名和密码的解决方案
若oracle服务器没打开,先打开服务;打开cmd,输入services.msc启动实例和监听打开cmd,输入sqlplus /nolog,回车---->进入sqlplus;输入conn /as sysdba以超级管理员的方式连接数据库;(超级管理员拥有的权限太大,不推荐使用)selectusername,account_status from dba_users(通过此语句查看...转载 2019-11-23 22:26:39 · 987 阅读 · 0 评论 -
数据库分库分表策略的具体实现方案
转载:https://www.cnblogs.com/twoheads/p/9641265.html一、MySQL扩展具体的实现方式随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。关于数据库的扩展主要包括:业务拆分、主从复制,数据库分库与分表。这篇文章主要讲述数据库分库与分表(1)业务拆分在 大型网站应用之海量数据和高并发解决方案总结一二 一篇文章中也具体讲述了为什么要对业务进行拆分。业务起步初始,为了加快应用上线和快速迭代,很多应用都采用集中转载 2020-12-11 07:11:53 · 195 阅读 · 0 评论 -
获取组织机构树
一、数据表设计在这里我需要说明一下,在看一些开源项目的时候,先不要直接去一头栽到代码里去,那样通常会是雾里探花,研究一番,就把自己搞成了丈二和尚了,所以我一般是会先去看数据表,从业务入手,下一步就去看POM文件 。我在数据库里面建立了dept(部门表),为了测试方便,我在这里只建了五个字段 。org_id (部门id) org_name (部门名称) parent_id (父id)sort(排序) create_date(创建时间)二、由于此业务简单,所以我们就不看pom文件了,也无非就是s转载 2020-10-13 17:30:41 · 625 阅读 · 0 评论 -
oracle 修改表字段属性
在实际开发工程中,我们会发现同一的一个操作对于mysql很简单,但oracle就会出现各种问题。比如类似于修改表字段的长度和非空属性。oracle需要这样操作:以 T_USER 表为例,修改name的非空属性--1、创建 T_USER 的备份 T_USER_BACK create table T_USER_BACK as select * from T_USER;--2、删除原表 T_USER 的数据 delete from T_USER;--3、修改表结构 AL原创 2020-09-23 09:56:32 · 1884 阅读 · 0 评论 -
Mysql数据统计sql(二) date_add与date_sub函数使用详解
mysql 中 DATE_ADD(date,INTERVAL expr type) 和 DATE_SUB(date,INTERVAL expr type)这些函数执行日期运算。 date 是一个 DATETIME 或DATE值,用来指定起始时间。 expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 Expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-’开头。 type 为关键词,它指示了表达式被解释的方式。关键词INTERVA及 type 分类符均不区分大小写。mysql中内转载 2020-09-15 18:48:11 · 838 阅读 · 0 评论 -
mysql存储过程详解
一、定义存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。二、存储过程的特点1、能完成较复杂的判断和运算2、可编程行强,灵活3、SQL编程的代码可重复使用4、执行的速度相对快一些5、减少网络之间的数据传输,节省开销三、创建一个简单的存储过程1、创建存储过程的简单语法create转载 2020-09-13 11:43:34 · 1022 阅读 · 0 评论 -
MySQL视图详解
1、视图概述视图是由数据库中的一个表或多个表查询出的结果集,是一种虚拟存在的表,方便用户对数据的操作。1.1 视图的概念视图是一个虚拟表,是从数据库中一个或多个表中查询的结果集,同真实表一样,视图包含一系列带有名称的列和行数据。但是,数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。1.2 视图的作用对其中所转载 2020-09-06 10:31:47 · 272 阅读 · 0 评论 -
linux环境下mysql导出数据库表数据
cmd环境下导出:root:MySQL数据库用户名-p: 后跟MySQL数据库用户名密码mydatabses: 数据库名-h: 后跟远程数据库地址加 -d为导出表结构不加为导出数据MySQL 只导出数据库的所有数据结构:导出本地的数据库表结构:mysqldump -uroot -p123456 -d mydatabases > mysql.sql导出远程机器(或服务器)的表结构: mysqldump -uroot -p123456 -h192.168.0.1 -d mysqldata原创 2020-07-24 11:09:26 · 662 阅读 · 0 评论 -
mysql 获取数据库表所有字段,GROUP_CONCAT()拼接字段缺失问题解决
mysql 获取数据库表所有字段,并用GROUP_CONCAT()拼接一、查询数据库表所有表字段(字段过多展示拼接不全)SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNSWHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name';二、问题解决1.方法一windows下在my.ini加上group_concat_max原创 2020-07-17 17:52:35 · 937 阅读 · 0 评论 -
mysql数据迁移常用sql
一、获取old表所有字段SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNSWHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name'二、将old表数据批量插入new表INSERT INTO newdatabase_name.table_name(步骤一获取的所有字段)SELECT 步骤一获取的所有字段FROM原创 2020-07-17 13:41:20 · 109 阅读 · 0 评论 -
mysql 清空数据库所有表最简单的方法
mysql 清空数据库所有表最简单的方法drop database if exists dadabase_name;create database dadabase_name;原创 2020-07-15 11:08:53 · 311 阅读 · 0 评论