
数据库
ouyn8
码农
展开
-
sql语句中decode()函数的嵌套(oracle)
一个值根据某个规则以另一种形式展现可用decode()方法,decode(columnname,值1,翻译值1,值2,翻译值2,……缺省值)举例:表Test_user:1、单个decode的使用对所有用户类型为1的用户进行启用,用户类型不为1的,已被激活的启用,未被激活的禁用:update test_user t set t.is_available=dec原创 2015-04-15 14:42:26 · 8984 阅读 · 0 评论 -
sql语句中escape的作用
escape 是sql中的关键字,定义转义字符。如下:SELECT * FROM student t where t.name like '%/%' escape '/';执行结果为:SELECT * FROM student t where t.name like '%%' escape '/';执行结果为:由此可见,escape '/' 是指原创 2015-03-27 13:06:01 · 25122 阅读 · 0 评论 -
数据库语句中的(+)引发的知识点
(+)表示外连接。(+)在等号左边的为右连接,在等号右边的为左连接。如where z.zid(+) = t.zid,使用的是右连接。左连接:以等号左边表的属性为参考,右边表即使没有与左边表相对应的值也会被查出来。右连接:以等号右边表的属性为参考,左边表即使没有与右边表相对应的值也会被查出来。比如有表Student,Course,ScoreStudent表:Cours原创 2015-03-27 11:02:45 · 1610 阅读 · 0 评论 -
Redis 内存数据库
第一次从数据库加载后,会把数据缓存到redis,所以在redis启动后直接修改数据库是没用的。应该清除redis缓存。1、在redis安装包打开redis-cli.exe。2、输入命令redis帮助文档地址http://redisdoc.com/原创 2015-09-28 15:09:01 · 401 阅读 · 0 评论 -
数据库锁
锁有两种分类方法。(1) 从数据库系统的角度来看锁分为以下三种类型: •独占锁(Exclusive Lock)独占锁锁定的资源只允许进行锁定操作的程序使用,其它任何对它的操作均不会被接受。执行数据更新命令,即INSERT、 UPDATE 或DELETE 命令时,SQL Server 会自动使用独占锁。但当对象上有其它锁存在时,无法对其加独占锁。独占锁一直到事务结束才能被释放。转载 2016-01-29 16:48:14 · 293 阅读 · 0 评论 -
group by和distinct的取舍
group by使用 HASH GROUP BY distinct 使用HASH UNIQUEHASH UNIQUE和HASH GROUP BY并没有多少差异。使用distinct:使用group by:最终选择了distinct,只因为它只有一个单词原创 2016-02-22 13:50:31 · 393 阅读 · 0 评论 -
redis乐观锁
在需要频繁读取和修改redis缓存的情况下,为避免高并发下put进脏数据,可采用redis乐观锁监控key对应的value。一旦value被别的事务所更改,那当前事务就会失效,再put就会失败。redis乐观锁在单台服务上是可行的,但在redis集群上使用乐观锁可能会很不稳定。redis中用watch监视key,如果key在提交前被修改,则提交不成功。如下:原创 2016-03-10 14:45:32 · 798 阅读 · 0 评论 -
论Select 语句中加for update行锁
以mysql做实践。在Select语句中加for update是给相应的行增加共享锁。Select出来的数据别的事务只能读取,不能修改、删除。1、在mysql中执行以下存储过程,存储过程中建了事务。DROP PROCEDURE if exists test_lock;DELIMITER ;;CREATE PROCEDURE test_lock()BEGINS原创 2016-01-29 17:06:10 · 4945 阅读 · 0 评论