
java数据库专栏
梦断若水
努力不一定成功,放弃一定失败
展开
-
java技术--mysql中插入数据时主键重复的解决方案
1.使用MySQL设置主键时需要注意以下问题:(1)如果主键类型是int,可以直接设置主键自增(2)如果主键类型不是int,需要处理,否则将会报错:Duplicate entry '' for key 'PRIMARY'2.该报错问题是插入数据表中遇到键重复,解决方案如下:(1)IGNORE 例如:INSERT IGNORE INTO Table_name(…..) VALU...原创 2020-01-07 14:18:51 · 4096 阅读 · 0 评论 -
java技术--MySQL存储过程
1.存储过程概念(1)包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql语句(2)指的是数据库中保存的一系列SQL命令的集合,相当于是MySQL语句组成的脚本,以便外部程序调用的一种数据库对象(3)可以在存储过程中使用变量/条件判断/流程控制等,思想上很简单,就是数据库SQL语言层面的代码封装与重用 <1>类似于将一定...原创 2020-01-02 15:44:54 · 290 阅读 · 0 评论 -
java技术--MySQL事件语法关键字详解
1.MySQL从5.1开始支持event功能(1)有了这个功能之后,只需要设定好执行时间,执行事件(2)执行事件一般是要执行的sql语句或者封装好的复杂的存储过程(3)通常,事件名称的规则与存储例程的名称相同2.创建事件语法 :(1)CREATE EVENT关键字CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF ...原创 2019-12-30 11:45:07 · 500 阅读 · 1 评论 -
java技术--MySQL数据库对象详解之视图
1.视图是指从一个或多个表中取出我们需要的字段,组成一个类似于表的对象(1)视图是一个虚拟表(非真实存在) <1>本质是:根据SQL语句获取动态的数据集,并为其命名 <2>也是一条SQL语句,查询的是普通表中的数据集合,将这个数据集封装重新命名作为表使用(起了个别名) <3>实际上这个表是不存在的:下次直接使用别名,而...原创 2019-12-29 23:15:52 · 480 阅读 · 0 评论 -
java技术--MySQL事件
1.mysql事件开启(1)SELECT * FROM mysql.event;(2)SET GLOBAL event_scheduler = 1; -- 开启定时器 0:off 1:on (3)SHOW VARIABLES LIKE 'event_scheduler';-- 查看是否开启定时器 <1>如果显示OFF,则输入以下语句开启:set global event...原创 2019-12-27 18:24:54 · 345 阅读 · 0 评论 -
java技术--Mysql中的delimiter定义及作用
1.delimiter在mysql很多地方出现,比如存储过程、触发器、函数等2.delimiter定义如下:(1)就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了(2)在mysql的存储过程中,i++是不允许这样写的。需要写成i=i+1这种形式才可以3.delimiter作用如下:(1)delimiter是mysql分隔符,在mysql客户端中分隔符默认是分号...原创 2019-12-24 16:37:48 · 1075 阅读 · 0 评论 -
java技术--MySQL数据库组成对象
1.一般数据库有四部分组成(1)普通表:Table(2)视图:Views(3)存储过程:Stored Procedure(4)函数:Functions2.视图(1)视图是一个虚拟表(非真实存在) <1>本质是:根据SQL语句获取动态的数据集,并为其命名 <2>也是一条SQL语句,查询的是普通表中的数据集合,将这个数据集封装重新命名作...原创 2019-12-24 16:27:34 · 257 阅读 · 0 评论 -
java技术---MySQL脚本与命令
1.MySQL脚本的基本组成(1)学习存储过程之前,先知道MySQL脚本,因为存储过程,就是MySQL中的脚本,存放一系列sql命令的集合 <1>sql命令针对的是简单的数据库表数据的操作 <2>sql脚本可以将一个或者多个语句组合实现一些需要的复杂一点的功能 <3>执行语句是在客户端中直接执行,执行脚本则是依靠命令调用脚本执行...原创 2019-12-24 14:23:01 · 158 阅读 · 0 评论 -
java技术--MySQL性能优化之存储引擎
1.MYSQL优化主要分为以下四大方面:(1)设计数据库时:存储引擎,数据库表、字段的设计,范式与逆范式(2)MySQL自身提供的功能:索引,缓存,分区分表(3)横向扩展架构:主从复制,读写分离,负载均衡(4)SQL语句的优化(收效甚微)2.存储引擎选择:Storage engine(1)现在不存在这个问题了,Innodb不断完善,从各个方面赶超MyISAM,也是MySQL5.5以后...原创 2019-11-25 15:55:40 · 361 阅读 · 0 评论 -
java技术--mysql批量删除大量数据
1.假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条2.直接执行 DELETE FROM syslogs WHERE statusid=1 会发现删除失败,因为lock wait timeout exceed的错误3.我们通过LIMIT参数分批删除,比如每10000条进行一次删除4.我们可以利用 MySQL这...原创 2019-09-18 16:09:35 · 4317 阅读 · 0 评论 -
java技术--mysql5.7数据库双机热备、主从备份
1.双机热备特指:基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备2.双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式)(1)主-备方式:指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)(2)双主机方式:指...原创 2019-09-16 13:37:29 · 955 阅读 · 0 评论 -
java技术--MySQL常用语句总结
1.ALTER TABLE 语句:用于在已有的表中批量添加、修改或删除列(1)在表中添加列,请使用下列语法: ALTER TABLE table_name ADD column_name datatype 例如:在User表中新添加一列age(datatype:integer),并设置默认值为0 ALTER TABLE User ADD age integer default 0...原创 2019-09-04 10:56:56 · 506 阅读 · 0 评论 -
java技术--数据库之间的表迁移OR存储过程、函数导出命令操作
1.实际开发过程中,有一个很实际的问题:(1)mysql工作空间存在多个数据库(A,B,C等)(2)其中A库中有20张表数据(3)现在新建一个数据库B,需要将A库中的表导入B库2.针对这样一个需要,可以分两步进行 注意:这里使用mysql命令进行操作(1)先使用命令将A库中的数据导出 导出命令过程如下: (1)进入mysql命令窗口 <1>进入m...原创 2019-08-07 18:11:18 · 449 阅读 · 0 评论 -
java技术--表结构及索引查看命令
有时候创建一张表以及一些索引,需要查看表结构字段或者索引是否有效,可以通过一些命令实现!1.针对于表结构字段查看(2种方式) 1.1.可以使用:desc命令 语法格式:desc table_name 举例:加入有一张user表,需要查看user表字段和类型 sql命令: desc user 1.2. 可以使用 show columns命令 sq...原创 2019-06-04 17:44:58 · 1196 阅读 · 0 评论 -
java技术--数据库优化分表
前面介绍了数据优化最常用的技术—使用索引,但是当数据达到千万级别时就需要使用另外一种优化方式分表优化!!1.一般情况下,能不分就不分;2.分表有两种:水平,垂直2.1.水平分表:相当于复制多张表举例:有1000万条数据,分10个表,那么每个表只存100万条数据,这10个表字段,属性等是一样的2.2.可以使用sql语句+判断条件进行控制 举例:这里有3张表:user1,user2,us...原创 2019-06-04 14:39:10 · 504 阅读 · 0 评论 -
java技术--数据库where条件
在编写where条件时,经常看到-1,0,1这些常量出现,这里简单做一个总结1.where 1=1(1)就是为了拼接语句方便,并没有其余含义!(2)如果不加这个 1=1 ,那么在拼 sql 的时候要判断拼上去的第一个条件是不带 and 的,然而很多查询都是多条件组合查询的,并不知道哪一个条件会拼在第一个上,所以干脆把第一个条件写成 sql 认为的"true",其他所有条件都是 and拼接(...原创 2019-06-03 20:28:12 · 2829 阅读 · 0 评论 -
java技术--数据库优化索引
1.数据库优化最直接方式就是添加索引;2.对于大数据可以分库,分表3.对于索引的操作主要有:添加,删除,修改 3.1.添加索引 1.添加主键索引 ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) 2.添加唯一索引 ALTER TABLE `table_name` ADD UNIQUE (`colum...原创 2019-06-03 19:51:46 · 479 阅读 · 0 评论 -
java技术--子查询和连接查询比较
1.子查询1.1. MySQL从4.1版本开始支持子查询,使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作1.2.子查询虽然很灵活,但是执行效率并不高1.3.执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程2.连接查询(join)2.1.可以使用连接查询...原创 2019-06-05 14:28:41 · 4840 阅读 · 0 评论