
database
文章平均质量分 61
jzq1999
这个作者很懒,什么都没留下…
展开
-
MySql的事务隔离级别
前言数据库都是有事务的,事务的不同级别,对应数据操作的不同级别安全性。本文以MySql为例介绍一下数据库的事务隔离级别。 事务定义事务是将数据从一种状态改变到另一种状态。事务隔离级别是事务看别的事务修改的数据的可见程度。 事务的可见性脏读:一事务对数据进行了增删改,但未提交,另一事务可以读取到未提交的数据。如果第一个事务这时候回滚了,那么第二个事务就读到了脏数据...原创 2016-10-26 00:56:15 · 131 阅读 · 0 评论 -
Oracle的escape函数
Oracle的escape函数,顾名思义,是转义函数,用于将特殊字符转义成普通字符,比如将通配符%转义成%字符,_转义成下划线‘_’,可用在过滤通配符的SQL查询中。 如: select * from table where code like '%condition%' 上面的SQL, 如果查询时输入%,将会查询出全部结果,而不是查询出带有%符号的结果,这时如何处理...2012-07-01 15:32:05 · 753 阅读 · 0 评论 -
oracle触发器一例
此处的触发器需求为跨库操作,当A库的user_course_study_info表发生变化时,反映到lengine库的user_course_study_info表也做同样的变化。 使用上文的dblink来连接另一个数据库B; 这个触发器的条件为,当A库的表中进行insert、updata、delete时,如果course_number对应的course_typ...原创 2012-02-08 15:44:13 · 86 阅读 · 0 评论 -
oracle的dblink
数据库跨库操作数据时,可以使用dblink,建dblink时需要知道要连接的数据库的ip地址、服务名称、用户名、密码,格式:create public database link dblink_test01connect to lengine identified by "123456"USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(P...原创 2012-02-07 14:30:56 · 130 阅读 · 0 评论 -
复杂的左连接查询
一。查询A表的所有字段,还要查询和A表关联的B表的C字段的个数,条件是A.Fnum=B.Cnum在上例中,学习人数和完成人数之前的字段都是A表的字段,学习人数和完成人数需要关联查询B表。 select FCOURSEWARE_NAME,fid ,fcourseware_type ,ftime_long ,flanguages ,fowner ,fcontributor ,fon_lin...原创 2012-05-23 21:13:01 · 201 阅读 · 0 评论 -
Oracle创建表空间
bookmarkcreate tablespace courseware datafile '/oracle/u01/oracle/oradata/orcl/courseware.dbf' size 800M autoextend on next 50M maxsize unlimited;原创 2012-05-08 20:44:13 · 79 阅读 · 0 评论 -
case when用法
在sql中判断非A即B类似的表达式时,可以用“case-when”句式来判断。When judge expression as not A is B,语法: CASE WHEN condition THEN result[WHEN ...][ELSE result]END CASE 子句可以用于任何表达式可以有效存在的地方。condition是一个返回bool...原创 2010-11-04 18:27:54 · 155 阅读 · 0 评论 -
SQL UNION 和 UNION ALL 操作符
SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT c...原创 2010-11-04 16:29:23 · 1351 阅读 · 0 评论 -
oracle中to_char和to_date的用法
to_char()把其他类型转化成字符类型,to_date()把字符串转化成日期类型。to_char:按'yyyy-mm-dd'格式显示当前系统时间:select to_char(sysdate,'yyyy-mm-dd') today from dual;24小时制需要用HH24:select to_char(sysdate,'yyyy-mm-dd HH24:mi:ss') t...原创 2010-11-03 09:22:29 · 129 阅读 · 0 评论 -
MySQL表级锁,行级锁和页级锁
表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。MySQL 5.1支持对MyISAM和MEMORY表进行表级锁定,对BDB表进行页级锁定,对InnoDB表进行行级...原创 2010-09-08 20:55:52 · 150 阅读 · 0 评论 -
oracle行转列sql
建成绩表gradeinfo和学生表student,成绩表中存有学生表的id: create table GRADEINFO( SID VARCHAR2(2), SUBJECT VARCHAR2(20), GRADE VARCHAR2(20)) create table STUDENT( ID VARCHAR2(2), ...原创 2012-07-03 12:28:46 · 176 阅读 · 0 评论 -
MySql 数据类型的取值范围
数据引自:http://dev.mysql.com/doc/refman/5.1/zh/column-types.html1. 数值类型(取值范围) 类型字节最小值最大值 (带符号的/无符号的)(带符号的/无符号的)TINYINT1-128...原创 2013-04-25 19:06:22 · 322 阅读 · 0 评论 -
Mysql 分表策略
数据量大了需要考虑使用分表来减轻单表压力,提升查询性能。当然也有其他举措,比如读写分离、cluster等,此文重点讲分表的做法。 分表有几种做法?1. 分表的原理:把常用字段如ID或NAME取hash值,根据hash值放在不同的表中。当然也有求余的方法,这个可以多种方法来实现。这个方法使用于论坛,发贴表,数据量大时,可采用此策略。比如1亿条记录,建256张表,每个表has...原创 2015-04-22 00:41:39 · 121 阅读 · 0 评论 -
Mac设置Mysql开机启动
Mac和linux略有不同,有的功能封闭起来了。Mac实现自启动,可以用Launchctl功能来实现,Launchctl实际上是写*.plist文件,和linux中的Crontab功能一样。然后将创建的文件放在/Library/LaunchDaemons文件夹。1. 创建plist文件sudo touch /Library/LaunchDaemons/com.mysql.plist...原创 2015-04-20 17:28:24 · 373 阅读 · 0 评论 -
ERROR 2002 (HY000): Can’t connect to local MySQL
安装mac版的mysql后,启动mysql 报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)解决方法:参考文档:http://dev.mysql.com/doc/mysql-macosx-excerpt/5.0/en/...原创 2015-04-20 11:02:04 · 192 阅读 · 0 评论 -
Mac安装MySql
1. 首先下载mysql,官网 http://www.mysql.com/downloads/ 下载社区版(“MySQL Community Server”)mysql。2. 设置环境变量sudo vi ~/.bash_profile 在.bash_profile里添加export PATH=$PATH:/usr/local/mysql/bin/ 使修改生效source...原创 2015-03-13 12:55:28 · 115 阅读 · 0 评论 -
MySql全国省市数据
在项目中经常会用到全国的省市数据,特地找了一份备份于此。附件为 MySql的全国省市数据原创 2015-02-13 12:39:13 · 206 阅读 · 0 评论 -
MySql中的time_out错误
MySql版本:5.5部署的一个Web服务,日志报错:The last packet successfully received from the server was 246,418,715 milliseconds ago. The last packet sent successfully to the server was 246,418,715 milliseconds a...原创 2014-07-18 20:54:15 · 154 阅读 · 0 评论 -
MySql监控工具Mytop的安装过程
mytop是一个类似Linux下的 top命令风格的MySQL监控工具,可以监控当前的连接用户和正在执行的命令。1. 安装TermReadKey 下载地址:http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz 安装: tar xzvf TermReadKeycd ...原创 2014-07-10 19:10:19 · 203 阅读 · 0 评论 -
MySql 索引优化
索引的类型1. 普通索引:最基本的索引,没有任何限制。2. 主键索引(Key):特殊的唯一索引,不允许有空值。3. 唯一索引(Unique):索引列的值必须唯一,允许有空值。如果是组合索引,则该组合的值必须唯一。4. 组合索引(Compose):多个列组合的索引。比如cityId、address、name三列建了组合索引,则相当于建立了三组索引:cityId、address、n...原创 2014-06-25 20:22:38 · 78 阅读 · 0 评论 -
MySql 常用函数
1. replace(column,'old','new') 把column列中旧的数据替换成新的数据update product set description=replace(description,'kindeditor','') 2. LEFT(column, num) 查询column中Num个字节的字符串,用来查询子字符串SELECT LEFT(NAME,2) ...原创 2013-07-22 11:05:38 · 72 阅读 · 0 评论 -
数据库的事务管理
概述不管你直接采用JDBC进行数据库事务操作,还是使用基于Spring或EJB的声明式事务功能进行事务管理,它们最终都是使用底层数据库的事务管理功能完成最终任务的。数据库事务拥有许多语义概念,它们是你进行事务编程和事务管理的基础,只有掌握好数据库事务的基础知识,才能深刻理解数据库事务,进而开发出正确合理的应用。文将对应用开发中所涉及的数据库事务知识进行概括性的讲解,相信这些知识会给你的数...原创 2010-09-07 13:13:34 · 269 阅读 · 0 评论 -
oracle 分区
摘要:在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用。 在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十到几百GB,有的甚至可以到TB级。虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型...原创 2010-07-30 22:39:15 · 87 阅读 · 0 评论 -
sys_guid 点滴用法
sys_guid (), 8i 后提供的方法。 Oracle8i引入了SYS_GUID这个概念,它同Oracle管理员所使用的传统的序列(sequence)相比具有诸多优势。一个序列生成器只是简单地创建从给定的起点开始的一系列整数值,而且它被用在选择陈述式的时候自动地递增该系列。 序列生成器所生成的数字只能保证在单个实例里是唯一的,这就不适合将它用作并行或者远程环境里的主关键字,因为...2009-04-28 15:51:49 · 447 阅读 · 0 评论 -
Oracle:sequence用法
[size=medium] 在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方。1、Create Sequence(注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限)CREATE SEQUENCE emp_sequenceINCREMENT BY 1 —— 每...原创 2009-04-28 10:24:40 · 127 阅读 · 0 评论 -
Oracle中dual用法
[size=medium]在oracle数据库中的dual是一个虚表,例如:select sysdate from dual会返回:2009-4-28 9:27:56请看csdn网友的解释:[url]http://topic.youkuaiyun.com/t/20040428/00/3015340.html[/url]虚表(dual)是oracle提供的最小的工作表,它仅包含一行一列。对于...2009-04-28 10:07:35 · 154 阅读 · 0 评论 -
MySql常用命令
0. 远程连接数据库mysql -u devtest -h 10.248.0.51 -P 3308 -p 1. 使用show 语句找出在服务器上当前存在什么数据库: mysql> show databases; 2. 创建数据库sql语句: mysql> create database dbname default charset=utf8; ...原创 2009-11-06 11:59:50 · 116 阅读 · 0 评论 -
Statement对象解析
在JDBC中,Statement对象执行SQL语句的查询或更新,该对象的方法很多,典型的方法有: 1. addBatch()将sql语句加入到一个批次即一个列表里,应该是类似于List的一个集合里,在后面会进行批次操作。 2. executeBatch()将List的命令提交执行,即批处理,当数据量大时,使用批处理可...2009-11-06 11:26:42 · 100 阅读 · 0 评论 -
ibatis 用法
近日使用ibatis,把日常用法记录下来,以备以后用的时候能够再捡起来。ibatis的核心类是SqlMapClient。 1. 直接使用sql语句,用法为: SqlMapClientImpl.update(String id); 这个可以在不需要接收外界传入参数时的更新语句时使...2009-10-22 15:22:07 · 267 阅读 · 0 评论 -
Oracle数据的导出--工具篇
在oracle数据库的使用过程中,常常会需要进行数据库的导入,导出,今天因为需要部署两个环境,就找了些oracle导入导出的资料来看,并问了下朋友,最后,使用PL/SQL数据库工具执行了导出数据,在PL/SQL的界面中选择 Tools->import table然后选择存放文件的地址,执行 export 就可以啦。还有一种方法是: 选择左侧 MyObjects 下所要导出的表...2008-11-07 10:48:10 · 100 阅读 · 0 评论 -
操作Oracle时间
今天的任务还是没有完成,这两天总是忍不住去玩开心网,以致于耽误了一些工作进度,现在我的任务是在原来查询的基础上增加新的条件,还有一个按日期的查询,数据库是Oracle9i,服务器用resin,调试程序时后台总是报错,后来用to_date函数把时间转换了一下,还是报错,真郁闷~_~,再用断点测了下,是提交的时间在HQL中未加" ' "符号,哎,真是一点小小的错误耽误半天功夫。 ...原创 2008-11-05 20:26:13 · 91 阅读 · 0 评论 -
Oracle 常用函数
lower函数: 此函数将全部的大写字母都可以变为小写字母 SELECT lower('ABCDE') FROM dual ; • dual表为一个虚拟表,以后介绍upper函数:将输入的字符串变为大写字母 SELECT upper('abcd') FROM dual ;例如:之前查询的时候区分大小写,所以此处如果输入的是小写字母,就可以通过uppe...2008-10-31 16:59:00 · 98 阅读 · 0 评论 -
Oracle 数据类型
[size=medium]转自:http://dev.youkuaiyun.com/article/38/38823.shtm数据类型 参数 描述 char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节) varchar2(n) n=1 to 4000字节 可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及A...原创 2009-04-28 16:14:56 · 82 阅读 · 0 评论 -
tomcat6 数据源配置
tomcat6的数据源配置,如果不使用SSH框架的话,数据源需要自己来配置,配置方式有两种,一是在server.xml中: <GlobalNamingResource>标签中增加数据源的配置: <Resource auth="Container" name="jdbc/italk" ...2009-11-11 14:29:31 · 142 阅读 · 0 评论 -
深入浅出SQL之左连接、右连接和全连接
inner joins內连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。 为更好的理解这个概念,我们介绍两个表作演示。苏格兰议会中的政党表(party)和议员表(msp)。party(Code,Name,Leader)Code: 政党代码Name: 政党名称Leader: 政党领袖msp(Name,Party,Constituen...原创 2010-07-16 20:34:44 · 79 阅读 · 0 评论 -
oracle中rownum的用法
[size=medium]rownum 返回查询的结果的列数,是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列 (强调:先要有结果集)。简单的说 rownum 是对符合条件结果的序列号。它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值。ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2...原创 2009-08-03 11:51:49 · 276 阅读 · 0 评论 -
oracle 中主键约束的操作
在oracle中有一些表之间有关联关系,所以用到了一些约束(constraint),有约束的表,在删除数据或修改数据时,会提示违反完事约束条件:Error: ora-02292: integrity constraint <constraint name> violated - child record found Cause: You tried to Delete ...2009-07-31 10:53:16 · 144 阅读 · 0 评论 -
Oracle的内存管理
oracle数据库实例启动时,需要分配共享内存,启动后台进程。oracle数据库使用的内存主要涉及到:PGA和SGA。一、 PGAProgram Global Area,顾名思义是程序全局区,是服务器进程(Server Process)使用的一块包含数据和控制信息的内存区域,PGA是非共享的内存,在服务器进程启动或创建时分配,并为Server Process排他访问。进程的创建有两...2009-12-16 15:53:50 · 140 阅读 · 0 评论 -
PreparedState 原理
数据库有一个艰巨的任务。他们接受来自许多客户端的并发SQL查询和尽可能有效地处理对数据的查询。处理语句是一个昂贵的数据库操作,但现在写的这样一种方式使这一开销降到最低。然而,如果我们要利用这些优势,这些优化需要从应用程序开发得到援助。本文介绍如何正确使用PreparedStatements可以大大帮助数据库执行这些优化。 数据库如何执行一个语句? 显然,不要指望在这...2009-12-13 13:01:56 · 177 阅读 · 0 评论 -
MySql 优化
数据库的操作向来是应用的瓶颈,关注数据库的优化不仅是DBA的事情,程序员也应关注。 1. 使用查询缓存使用查询缓存可减少查询次数,但注意查询时不能直接在sql中使用MySql的函数如now(),curdate()。// 查询缓存不开启$r = mysql_query("SELECT username FROM user WHERE signup_date >= CUR...原创 2008-12-31 15:39:12 · 119 阅读 · 0 评论