数据库
文章平均质量分 76
_iLeGeND
生命不息 奋斗不止
展开
-
数据库中的索引
索引 可以利用索引快速访问数据库表中的特定信息。索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的转载 2016-06-02 20:28:21 · 286 阅读 · 0 评论 -
Oracle触发器用法
本文实例讲述了Oracle触发器用法。分享给大家供大家参考,具体如下:一、触发器简介触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某转载 2016-11-26 00:38:13 · 587 阅读 · 0 评论 -
oracle中游标详细用法
游标的概念: 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。 游标有两种类型:显式游标和隐式游标。在前述程序中用到的SELECT...INTO...查转载 2016-11-26 00:56:27 · 299 阅读 · 0 评论 -
数据库性能优化之冗余字段的作用
在设计数据库时,某一字段属于一个表,但它又同时出现在另一个或多个表,且完全等同于它在其本来所属表的意义表示,那么这个字段就是一个冗余字段。——以上是我自己给出的定义冗余字段的存在到底是好还是坏呢?这是一个不好说的问题。可能在有人看来,这是一个很蹩脚的数据库设计。因为在数据库设计领域,有一个被大家奉为圭臬的数据库设计范式,这个范式理论上要求数据库设计逻辑清晰、关系明确,比如,”用户昵转载 2016-12-09 23:33:58 · 326 阅读 · 0 评论 -
数据库中冗余字段的作用
按照第三范式的要求,是不应该存在冗余字段的,但现在我改变了看法,认为冗余字段非常有必要。例如:在订单表中,‘客户名称’字段就是冗余字段,加了这个字段,就需要在客户信息表修改(客户名称改变)的时候,多做一个更新订单表中‘客户名称’字段的动作。这样做的理由是:1、订单表的查询速度会提高、一些相关的程序代码实现也简单些,省得老是关联id去找名称,特别在数据量大或者关联表很多的时候会很转载 2016-12-09 23:40:30 · 3426 阅读 · 0 评论 -
MySQL数据库引擎详解
作为Java程序员,MySQL数据库大家平时应该都没少使用吧,对MySQL数据库的引擎应该也有所了解,这篇文章就让我详细的说说MySQL数据库的Innodb和MyIASM两种引擎以及其索引结构。也来巩固一下自己对这块知识的掌握。Innodb引擎Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔离转载 2017-01-02 20:47:06 · 230 阅读 · 0 评论 -
【整理】MySQL引擎
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL++ API自己做一个引擎。下面介绍几种数据库引擎: ISAM:ISAM是一个定义明确且历经时间考验的数转载 2017-01-02 20:48:27 · 262 阅读 · 1 评论 -
mysql中日期类型DATETIME和TIMESTAMP的区别
在实际应用的很多场景中,mysql的这两种日期类型都能够满足我们的需要,存储精度都为秒,但在某些情况下,会展现出他们各自的优劣。下面就来总结一下两种日期类型的区别。1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysq转载 2017-11-26 22:01:56 · 153 阅读 · 0 评论 -
MySQL存储引擎--MyISAM与InnoDB区别
MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。 以下是一些转载 2017-11-26 22:15:13 · 267 阅读 · 0 评论 -
REDIS字符串-二进制安全的含义 一、sds vs c字符串
在 C 语言中,字符串可以用一个 \0 结尾的 char 数组来表示。比如说, hello world 在 C 语言中就可以表示为 "hello world\0" 。这种简单的字符串表示,在大多数情况下都能满足要求,但是,它并不能高效地支持长度计算和追加(append)这两种操作:每次计算字符串长度(strlen(s))的复杂度为 O(N)。对字符串进行 N 次追加,必转载 2018-02-05 22:14:58 · 1053 阅读 · 0 评论 -
Lucene和Solr 学习目录
几个概念先行说明一下:Lucene: 是一个索引与搜索类库,而不是完整的程序。Solr:是一个高性能,采用Java5开发,基于Lucene的一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。Nutch:是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。Hadoop: 实现了一个分布式文件系统(Had转载 2016-12-30 00:21:30 · 319 阅读 · 0 评论 -
MySQL查询语句的45道练习
一、设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。 表1-1数据库的表结构表(一)Student (学生表) 属性名数据类型可否为空含 义Sno...转载 2018-05-31 16:17:30 · 202 阅读 · 0 评论 -
MySQL的四种事务隔离级别
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 ...转载 2018-07-30 23:31:04 · 144 阅读 · 0 评论 -
浅析MySQL中exists与in的使用 (写的非常好)
转自http://sunxiaqw.blog.163.com/blog/static/990654382013430105130443/ exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条 件语句不能返回记录行...转载 2018-08-22 20:13:10 · 170 阅读 · 0 评论 -
浅谈 exists 和 in 的执行原理及使用场景
exists的执行原理: 对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么因为对内表的查询使用的索引(内表效率高,故可用大表),而外表有多大都需要遍历,不可避免(尽量用小表),故内表大的使用exists,可加快效率;in的执行原理 是把外表和内表做hash连接,先查询内表,再把内表结果与外表匹配,对外表使用索引(外表效率高,可用大表),而内表多大都需要查询...转载 2018-08-22 20:21:25 · 371 阅读 · 0 评论 -
关于数据库Varchar字段类型长度设计问题
关于数据库Varchar字段类型长度设计问题 现代数据库一般都支持CHAR与VARCHAR字符型字段类型,CHAR是用来保存定长字符,存储空间的大小为字段定义的长度,与实际字符长度无关,当输入的字符小于定义长度时最后会补上空格。VARCHAR是用来保留变长字符,在数据库中存储空间的大小是实际的字符长度,不会像CHAR一样补上空格,这样占用的空间更少。 从转载 2016-12-03 23:59:22 · 3189 阅读 · 0 评论 -
字典数据
在稍大一些的项目中,我们总是需要管理各种各样的类型类型数据(如商品类型、游戏类型。。。)。对于这些类型的管理类似,如果为每一种类型都建立一张表去维护(而在项目中,正常出现50种类型),那工作量是可想而之大,并且我们不得不去了解每一个类型表的名字,以去关联它。 因此,我们需要一种数据模型以完成对多种多样类型管理的需求。字典表dictionary转载 2016-11-15 23:54:37 · 446 阅读 · 0 评论 -
完整java开发中JDBC连接数据库代码和步骤
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例如: try{ //加载M转载 2016-06-02 20:29:58 · 306 阅读 · 0 评论 -
数据库索引工作原理
数据库索引工作原理问:随着数据库的增大,既然索引的作用那么重要,有谁能抛开具体的数据库来解释一下索引的工作原理?答:(我自己来回答这个问题,:o-))为什么需要索引数据在磁盘上是以块的形式存储的。为确保对磁盘操作的原子性,访问数据的时候会一并访问所有数据块。磁盘上的这些数据块与链表类似,即它们都包含一个数据段和一个指针,指针指向下一个节点(数据块)的转载 2016-06-03 11:09:40 · 386 阅读 · 0 评论 -
深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接作者:本篇文章是对SQL中的四种连接-左外连接、右外连接、内连接、全连接进行了详细的分析介绍,需要的朋友参考下1、内联接(典型的联接运算,使用像 = 或 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。转载 2016-06-05 09:38:47 · 343 阅读 · 0 评论 -
数据库设计原则
1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。 这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,转载 2016-06-14 18:47:14 · 237 阅读 · 0 评论 -
SQL表连接查询(inner join、full join、left join、right join)
SQL表连接查询(inner join、full join、left join、right join)SQL表连接查询(inner join、full join、left join、right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表。 表的数据有:转载 2016-06-14 18:57:45 · 310 阅读 · 0 评论 -
MySQL命令行导出数据库
MySQL命令行导出数据库MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录)2,导出数据库:mysqldump -u 用户名 -p 数据转载 2016-06-19 16:18:23 · 252 阅读 · 0 评论 -
MySQL导出导入数据命令
MySQL导出导入数据命令 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc转载 2016-06-19 16:19:30 · 302 阅读 · 0 评论 -
MySQL数据库对GROUP BY子句的功能扩展(1)
标准SQL语法中,对SELECT语句执行GROUP BY操作的话,SELECT选择的列必须出现在GROUP BY子句中,也就是说先要明确根据什么分组,然后才能选择分没分组。不过MySQL数据库不完全是这样,只要MySQL数据库不是运行在ANSI模式下(什么是运行模式,简单讲就是指支持的SQL语法,运行模式是在启动mysql服务时以--sql-mode设置,默认应为空,ANSI是一套通行的标准SQL转载 2016-09-16 23:05:57 · 397 阅读 · 0 评论 -
MySQL数据库对GROUP BY子句的功能扩展(2)
前面谈了MySQL中处理GROUP BY子句时隐藏列的一些特点,今天继续探讨这一话题,引申谈一谈别名在GROUP BY子句中的应用。我们在SELECT执行查询时经常会应用到别名,主要是对查询列名的重定义,在ANSI标准SQL规则中,对于定义的别名引用还是比较多的,不过MySQL数据库对于别名的引用也有一些增加,最显著的一点,就是允许在GROUP BY/ORDER BY子句中引用定义的别名。转载 2016-09-16 23:09:50 · 312 阅读 · 0 评论 -
SELECT语法详解
SELECT语法详解 转载▼ SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]转载 2016-09-16 23:42:27 · 1425 阅读 · 0 评论 -
谈谈数据库连接池的原理
谈谈数据库连接池的原理 帅宏军 这次我们转载 2016-09-18 18:12:52 · 313 阅读 · 0 评论 -
数据库连接池最小连接数和最大连接数:
数据库连接池最小连接数和最大连接数:最小连接数是连接池一直保持的数据连接。如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费掉。最大连接数是连接池能申请的最大连接数。如果数据连接请求超过此数,后面的数据连接请求将被加入到等待队列中,这会影响之后的数据库操作。如果最小连接数与最大连接数相差太大,那么,最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立转载 2016-09-18 18:14:08 · 19694 阅读 · 2 评论 -
Jedis连接池的使用
Jedis连接池的使用所需jar:jedis-2.1.0.jar和commons-pool-1.5.4.jarJedis操作步骤如下:1->获取Jedis实例需要从JedisPool中获取;2->用完Jedis实例需要返还给JedisPool;3->如果Jedis在使用过程中出错,则也需要还给JedisPool;代码如下:package com.ljq.ut转载 2016-10-21 17:39:34 · 213 阅读 · 0 评论 -
向数据库插入中文时出现乱码
分类:MySQL(8) 版权声明:本文为博主原创文章,未经博主允许不得转载。在做web开发时(本人用JSP做开发,数据库用的MySQL,其他开发方式可能稍有不同,但原理是一样的),向数据库中插入中文时出现乱码现象。这个现象跟很多环节有关系,但最根本的是要选择一种支持中文的编码,且各个地方的编码都要保持一致。这些地方主要包括数据库的编码,JSP页面代码请求转载 2016-10-24 16:50:39 · 465 阅读 · 0 评论 -
查看和修改MySQL数据库的事物隔离级别
查看MySQL的事物隔离级别mysql> show variables like '%isolation%';+---------------+-----------------+| Variable_name | Value |+---------------+-----------------+| tx_isolation | REPEATABL...转载 2018-08-20 18:54:57 · 2035 阅读 · 0 评论