
MySQL
文章平均质量分 60
麦田
生命本来就是一束耀眼的花火...
展开
-
Oracle和Mysql分别生成sequence序列
有时候在往数据库中插入数据的时候,如果ID值是32位的UUID,而自己随便写个字符又不合适,这时就要用到函数来产生一个序列值Oracle:select sys_guid() from dual;Mysql:SELECT REPLACE(UUID(),'-','') FROM DUAL;因为mysql的UUID()生成的序列中间有'-'需要进行替换一下。原创 2014-04-22 21:44:51 · 3522 阅读 · 0 评论 -
MYSQL实现Oracle的Start with…Connect By递归树查询
因项目迁移,使用的数据库也需要从Oracle迁移到MySQL 其中有个功能使用到了Oracle的Start with…Connect By递归树查询,而MySQL中没有此函数,但可以通过自定义函数的方式来解决这个问题创建表create table treeList( id varchar(10), -- 节点ID name varchar(10), -- 节点名称 p原创 2017-12-08 17:58:43 · 7166 阅读 · 1 评论 -
MySQL 共享锁与排他锁
共享锁(Share Lock)共享锁又称读锁,是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁), 直到已释放所有共享锁。 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。用法SELECT ... LOCK IN SHARE MODE;在查询语句后面增加LOCK原创 2017-06-14 13:53:26 · 1245 阅读 · 0 评论 -
MySQL 乐观锁与悲观锁
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernat原创 2017-06-14 13:45:19 · 995 阅读 · 0 评论 -
MySQL Limit 分页优化
在系统中需要进行分页的时候,我们通常会使用Limit加上偏移量的方法实现,问题来了,在偏移量非常大的时候,例如可能是limit 10000,10这样的查询,这时MySQL需要查询10010条记录然后只返回最后的10条,前面10000条记录都被抛弃,造成效率低下。优化此类分页查询的一个最简单的办法就是尽可能地使用索引覆盖查询,而不是查询所有的列,然后根据需要做一个关联操作再返回所需的列,对于偏移原创 2017-06-14 13:43:34 · 1862 阅读 · 0 评论 -
Every derived table must have its own alias
如下SQL语句:SELECT * FROM ( SELECT ID,URL FROM alone_action WHERE STATE = '1' ) 在Oracle中可以执行,但在MySQL下无法通过,错误如下:查询:SELECT * FROM ( SELECT ID,URL FROM alone_action WHERE STATE = '1' ) LIMIT 0, 1原创 2017-02-03 18:00:47 · 1969 阅读 · 0 评论 -
MySQL GROUP_CONCAT(expr)函数的使用
此函数返回一个字符串结果,其中包含来自组的连接的非NULL值。 如果没有非NULL值,则返回NULL。 完整的语法如下:GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,co原创 2017-02-13 18:01:34 · 1407 阅读 · 0 评论 -
MySQL存储引擎
MySQL存储引擎在创建表时可以指定表的类型,也就是表的存储引擎。表的存储引擎决定了数据如何存储及如何访问,还有事务如何存储。表的存储引擎在很大程度上影响着处理SQL语句所需的存储空间和速度。不同的存储引擎所具有的特点也有所不同,有些存储引擎在处理很多复杂的SELECT语句时非常适合,而另一些则在实现快速更新时比较适合。MySQL运行为每个表定义存储引擎,如果默认,则会选择默认的存储引擎。在Wind原创 2017-02-18 22:34:20 · 1497 阅读 · 0 评论 -
MySQL远程连接:Host 'x' is not allowed to connect to this MySQL server
远程连接MySQL时发现如下错误:java.sql.SQLException: null, message from server: "Host '192.168.30.23' is not allowed to connect to this MySQL server"解决方法:进入MySQL的bin目录,执行如下命令:mysql -u root -prootmysq原创 2016-05-18 18:00:21 · 3262 阅读 · 0 评论 -
MySQL按照汉字拼音字母排序
如果MySQL编码格式为GBK字符集,可直接在查询语句后面添加order by name asc; --进行升序排序如果是utf8字符集,需要在排序的时候对字段进行转码,order by convert(name using gbk) asc;附:查看MySQL编码方式SHOW VARIABLES LIKE 'character%';原创 2015-06-15 21:51:50 · 2828 阅读 · 0 评论 -
Oracle与MySQL字符串拼接
一、MySQL在java中我们通常用加号"+"来实现字符串的拼接,MySQL中也可以使用"+"来实现,比如:先加入测试数据CREATE TABLE test( id INT, name VARCHAR(10), score FLOAT );INSERT INTO test VALUES(1,'zhang',98);INSERT INTO test VAL原创 2014-12-10 22:06:02 · 6273 阅读 · 1 评论 -
MySQL TIMESTAMP(时间戳)详解
在创建表时如果表中有一个字段类型为TIMESTAMP,则该字段默认的生成语句为:CREATE TABLE `test` ( `id` int(11) DEFAULT NULL, `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT CH原创 2014-09-18 21:52:34 · 6572 阅读 · 0 评论 -
mysql备份与恢复
备份进入到mysql安装目录,bin下如我的是:C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin进入cmd ,切入到bin目录C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin>mysqldump -uroot -proot -h192.168.100.183 ehome>d:原创 2013-09-24 17:57:41 · 2002 阅读 · 0 评论 -
遇到一个MySQL小问题 Data truncation: Out of range value for column 'huid' at row 1
在数据库某表中字段 “huid” 为 int 类型程序代码中设置的”huid”值为1518753768709 ,超出了该字段所承载的范围,故报错。解决方法为 int 类型修改为bigint类型附表:显示了每个整数类型所需的存储空间和范围 类型 最小值 最大值 TINYINT -128 127 SMALLINT -32768 3276原创 2018-02-10 23:23:33 · 34702 阅读 · 0 评论