
数据库
文章平均质量分 69
chenbinqq
这个作者很懒,什么都没留下…
展开
-
MySQL、Oracle中group by的用法区别
表结果:表数据:MySQL中group by的使用1.select中包含的是group by的列SELECT sex FROM student group by sex;2.select中可以包含非group by的列SELECT sex,age FROM student group by sex;3.group by包含多个列SELECT * FROM student group by sex,age;Oracle中group by的使用数原创 2020-07-14 15:37:10 · 1218 阅读 · 3 评论 -
SQL语句中删除表数据drop、truncate和delete的用法
SQL语句中----删除表数据drop、truncate和delete的用法一、SQL中的语法1、drop table表名称eg: drop table dbo.Sys_Test2、truncate table表名称eg: truncate table dbo.Sys_Test...转载 2020-04-03 15:25:10 · 1374 阅读 · 0 评论 -
图解:实战EXPLAIN
前言在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQ...转载 2019-10-30 16:37:17 · 293 阅读 · 0 评论 -
mysql中 for update 使用
解释:for update是在数据库中上锁用的,可以为数据库中的行上一个排它锁。当一个事务的操作未完成时候,其他事务可以读取但是不能写入或更新。例子:比如一张表三个字段 , id(商品id), name(商品名字) , count(数量)当商品抢购时候会显示剩余商品件数,如果并发量大的时候,商品自减的值可能不准确。所以当我们在一个事务中对count字段进行修改的时候,其他事务应该只...转载 2019-10-24 13:05:01 · 1661 阅读 · 0 评论 -
binlog介绍
1、什么是binlogbinlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。默认情况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(比如,cat,vi等)查看,而使用mysqlbinlog解析查看。2.binlog的作用当有数据写入到数据库时,还...转载 2019-10-24 12:55:36 · 4405 阅读 · 0 评论 -
关于数据库引擎MyIsam和InnoDB的区别和适用场景
区别1.默认引擎在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM。从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。2.锁的粒度MyISAM仅支持表锁。每次操作锁住整张表。这种处理方式一方面加锁的开销比较小,且不会出现死锁,但另一方面并发性能较差。InnoDB支持行锁。每次操作锁住一行数据,一方面行级锁在每次获取锁和释放锁的操作需要消耗比表锁...转载 2019-10-22 13:01:42 · 550 阅读 · 0 评论 -
数据库事务隔离级别
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。 √: 可能出现×: 不会出现脏读 不可重复读 幻读 Read uncommitted √ √ √ Rea...转载 2019-10-20 16:53:12 · 3607 阅读 · 0 评论 -
SQL优化方案
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。MySQL查询过程如下图。1 优化的哲学注:优化有风险,涉足需谨慎a 优化可能带来的问题? 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统; 优化手段本来就有很大的风险,只不过你没能力...转载 2019-10-16 10:21:26 · 265 阅读 · 0 评论 -
MySQL EXPLAIN 命令: 查看查询执行计划
MySQL 的 EXPLAIN 命令可以查看SELECT语句的执行的计划,是 MySQL 查询优化的必备工具。通过执行计划可以了解查询方式、索引使用情况、需要扫描的数据量以及是否需要临时表或排序操作等信息。我们需要分析执行计划对查询进行有的放矢的优化。需要注意:EXPLAIN不考虑触发器、存储过程或用户自定义函数对查询的影响 EXPLAIN不考虑缓存 EXPLAIN只能分析执行...转载 2019-10-15 22:54:33 · 556 阅读 · 0 评论 -
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
1.问题描述:### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 170,369 mi原创 2017-08-30 17:56:41 · 40752 阅读 · 2 评论 -
MySQL相关的函数
1. if(条件表达式,条件为true时的值,条件为false时的值)原创 2017-09-05 18:57:11 · 681 阅读 · 0 评论 -
MySQL中的表连接(外连接、内连接、交叉连接、自连接)
表TestA表TestBSQL的表连接分为:外连接、内连接、交叉连接外连接外连接分为左外连接、右外连接、全外连接1.左外连接以左侧的表为基表,显示基表的所有行、列,外表如果条件不匹配则外表中所有字段显示为nullselect * from TestA a left join TestB b on a.id=b.id;2.右外连接以右侧的表为基表,显示基表的所有行、列,外表如果条件不匹配则外表中所有...原创 2018-07-01 10:46:23 · 5230 阅读 · 1 评论 -
MySQL中不相关子查询和相关子查询
嵌套在其它查询中的查询称之为子查询或内部查询。包含子查询的查询称之为主查询或外部查询student表course表score表不相关子查询内部查询的执行独立于外部查询,内部查询仅执行一次,执行完毕后将结果作为外部查询的条件使用select * from score as a where a.cou_id=1 and a.score>(select avg(b.score) from scor...原创 2018-07-01 16:41:45 · 10545 阅读 · 0 评论 -
MyBatis的一级缓存实现详解 及使用注意事项
0.写在前面MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上。MyBatis提供了一级缓存、二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能。本文的目的则是向读者详细介绍MyBatis的一级缓存,深入源码,解析MyBatis一级缓存的实现原理,并且针对一级缓存的特点提出了在实际使用过程中应该注意的事项。读完本...转载 2019-08-09 10:44:20 · 237 阅读 · 0 评论 -
乐观锁和悲观锁及使用场景
悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则...转载 2019-08-13 22:16:43 · 2370 阅读 · 0 评论 -
数据库分库分表思路
一. 数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存...转载 2019-08-13 00:11:49 · 248 阅读 · 0 评论 -
oracle数据类型
有道是,磨刀不误砍柴工。多了解一些底层的东西,对于Oracle开发、维护大有裨益。个人总结了一些Oracle数据类型集解,相信读者阅读了本文以后,Oracle数据库开发起来会事半功倍!在Oracle数据库中,每个关系表都由许多列组成。给每一列指派特定的数据类型来定义将在这个列中存储得数据类型。1、CHAR最多可以以固定长度的格式存储2000个字符或字节。默认指定为以字符形式转载 2014-04-08 21:43:24 · 586 阅读 · 0 评论 -
MySQL开启federated引擎实现数据库表映射
1.查看federated引擎是否开启点击进入Navicat并点击键盘上的F6,出现命令行界面 ,输入指令:show engines;2.开启federated引擎Windows系统 : 在my.ini中加入federatedLinux系统:需要编译时加入选项,再在my.ini中加入federated4.建立映射表在服务器A上有MySQL原创 2017-07-20 13:02:17 · 10611 阅读 · 3 评论 -
InnoDB还是MyISAM 再谈MySQL存储引擎的选择
两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用。我作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,但是从我目前运维的数据库平台要达到需求:99.9%的稳定性,方便的扩展性和高可用性来说的话,MyISAM绝对是我的首选。原因如下:1、首先我目前平台上承载的大部分项目...转载 2017-01-02 15:06:41 · 368 阅读 · 0 评论 -
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'XXX' 无效
原因是sa用户为系统用户,它虽然能够登陆数据库,但是数据库里边的权限都是dbo的,所以,我们现在为这个数据库重新建立一个用户.转载 2014-06-26 15:28:39 · 3929 阅读 · 0 评论 -
Oracle中系统权限和对象权限
权限的种类:系统权限 和 对象权限 1、系统权限 所谓系统权限,就是oracle里已经写死的权限,这些权限,我们是不能自己去扩展的,比如select any table, create any table等,这里的权限已经在oracle里全部规定好了,我们可以通过查看system_privilege_map这个数据字典表来查看所以的oracle系统内置的权限 select转载 2014-04-13 21:37:50 · 1138 阅读 · 0 评论 -
Oracle中的存储过程
create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2)as v_name varchar2(20);begin v_name := '张三丰'; p_para3 := v_name; dbms_ou转载 2014-04-10 20:46:40 · 507 阅读 · 0 评论 -
Oracle中的视图、触发器、函数、包
1.视图原创 2014-04-10 22:13:25 · 1103 阅读 · 0 评论 -
Oracle 数据库基础(一)
数据库原创 2014-04-07 19:34:29 · 730 阅读 · 0 评论 -
gbk_chinese_ci与gbk_bin的区别
gb2312_chinese_CI : 只支持简体中文gb2312_BIN :而gb2312_bin可以说是gb2312_chinese_ci的一个子集,而且gb2312_BIN是二进制存储.区分大小写数据库编码格式就意义不一样了gbk_chinese_CI 支持简体中文和繁体gbk_bin 解释同gb2312_BIN 对应gbk_chinese_CImysql字符集和整理转载 2013-12-05 19:41:57 · 7554 阅读 · 0 评论 -
Enter the full pathname for java.exe
oracle安装目录里的jdk文件夹里的java.exe.不同的oracle版本路径不太一样 oracle11g: E:\app\Administrator\product\11.1.0\db_1\jdk\bin\java.exe 。根据你具体安装的盘符选择,此例子安装在E盘中了。转载 2013-11-18 22:31:42 · 15520 阅读 · 0 评论 -
ORA-01843: not a valid month 错误的解决方案
服务器上的 Oracle 10g 使用中文字符集,所以按照如下的日期格式插入时,会提示你 ORA-01843 的错误。SQL> Insert into BOOKSHELF_CHECKOUTvalues ('DORAH TALBOT','MY LEDGER','15-FEB-02','03-MAR-02'); ORA-01843: not a va转载 2013-10-22 21:20:14 · 13832 阅读 · 0 评论 -
C3P0数据库连接池【JAVA】-oracle数据库为例
java项目中数据库的连接池选用了C3P0,个人感觉还是挺好用的,目前没有发现什么问题,主要是配置上的结合,今天总结一下如何使用及通用配置解析。转载 2014-06-28 10:22:27 · 749 阅读 · 0 评论 -
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
1.原创 2014-07-12 14:27:31 · 1142 阅读 · 0 评论 -
MySQL中DATETIME、DATE和TIMESTAMP类型的区别
一、TIMESTAMP显示格式:YYYY-MM-DD HH:MM:SS时间范围:[ '1970-01-01 00:00:00'到'2037-12-31 23:59:59']TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录和修改现有记录的时候都对这个数据列刷新。TIMESTA转载 2016-01-18 10:16:32 · 528 阅读 · 0 评论 -
mysql中的unsigned
unsigned 既为非负数,用此类型可以增加数据长度!unsigned 属性只针对整型,而binary属性只用于char 和varchar。类型说明tinyint非常小的整数smallint较小整数mediumint中等大小整数转载 2016-09-06 10:56:53 · 897 阅读 · 0 评论 -
MySQL索引使用方法和性能优化
关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR转载 2016-09-06 16:16:24 · 422 阅读 · 0 评论 -
mysql的数据类型int、bigint、smallint 和 tinyint取值范围
使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,64转载 2016-02-26 20:56:28 · 747 阅读 · 0 评论 -
MySQL 存储过程 常用语法
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这转载 2016-01-25 18:30:05 · 592 阅读 · 0 评论 -
MySQL索引使用方法和性能优化
关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR转载 2016-01-25 17:55:53 · 429 阅读 · 0 评论 -
SQL中char、varchar、nvarchar的区别
char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。转载 2014-12-28 20:53:45 · 687 阅读 · 0 评论 -
varchar与nvarchar的区别
Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示转载 2014-09-22 09:58:14 · 962 阅读 · 0 评论 -
Oracle内置函数总结
SQL中的单记录函数: 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- ----转载 2013-10-21 17:01:11 · 662 阅读 · 0 评论