
MySQL从入门到精通
MySQL是开源的,所以你不需要支付额外的费用。MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Java、PHP等MySQL对PHP有很好的支持,PHP是目前最流行的Web开发语言。所以学习MySQL,势在必行!
life is wonderful
pay for life, pay for yourself
展开
-
Mysql 更新时间(加上或者减去一段时间)
Mysql时间加减函数为date_add()、date_sub()定义和用法DATE_ADD() 函数向日期添加指定的时间间隔。DATE_SUB() 函数向日期减少指定的时间间隔。语法DATE_ADD(date,INTERVAL expr type)DATE_SUB(date,INTERVAL expr type)date 参数是合法的日期表达式。expr参数是您希望添加的时...转载 2018-12-24 18:55:39 · 2786 阅读 · 1 评论 -
MySQL错误代码大全
原文链接:https://www.cnblogs.com/skillCoding/archive/2011/09/07/2169932.html可以直接参考原文,原文会持续更新,自己只是为了记录,这几天查了好多,还是蛮好的!本章列出了当你用任何主机语言调用MySQL时可能出现的错误。首先列出了服务器错误消息。其次列出了客户端程序消息。B.1. 服务器错误代码和消息服务器错误信息来自下述源文件:·转载 2018-01-10 10:42:35 · 1333 阅读 · 0 评论 -
Union和Union All的区别
假设我们有一个表Student,包括以下字段与数据: [c-sharp] view plain copy drop table student; create table student ( id int primary key, name nvarchar2(50) not null, score number not null ); insert into student转载 2017-09-06 17:25:02 · 988 阅读 · 0 评论 -
SQL语句优化技巧
1、应尽量避免在 where 子句中使用!=或2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这转载 2017-09-05 23:05:22 · 1172 阅读 · 0 评论 -
mysql乐观锁总结和实践
上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍: 乐转载 2017-09-05 18:06:26 · 842 阅读 · 0 评论 -
mysql悲观锁总结和实践
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证转载 2017-09-05 18:05:23 · 706 阅读 · 0 评论 -
Mycat从入门到放弃
1.非分片字段查询Mycat中的路由结果是通过分片字段和分片方法来确定的。例如下图中的一个Mycat分库方案:根据 tt_waybill 表的 id 字段来进行分片分片方法为 id 值取 3 的模,根据模值确定在DB1,DB2,DB3中的某个分片如果查询条件中有 id 字段的情况还好,查询将会落到某个具体的分片。例如:MySQL>select * from tt_waybill where id转载 2017-08-24 22:33:50 · 1210 阅读 · 0 评论 -
教你如何阅读Oracle数据库官方文档
来源:Ask Oracle社区/栏目:基础教程/时间:2014-01-20/阅读:324次 《 Ask Oracle官方原创 》 Oracle 官方文档 数量庞大,而且往往没有侧重点,让oracle新手看起来很费力。但是,仍有很多Oracle使用者认为任何oracle学习资料都比不上Oracle官方文档的权威和扼要,且兼具基础与全面。这种差异可能与个人的阅读方法有很大关系,转载 2017-07-04 21:36:03 · 2058 阅读 · 1 评论 -
【Redis学习】:redis补充——redis使用场景、redis.conf配置文件和启动多个redis实例
redis使用场景redis核心配置文件redis.conf配置详解redis支持很多的参数,但是都有默认值启动多个redis方法1启动时指定端口可在一台服务器启动多个redis进程,多个redis实例。方法2:复制redis目录,然后修改redis.conf配置文件中的端口,推荐使用原创 2017-05-29 23:52:38 · 1886 阅读 · 0 评论 -
【Redis学习】:redis持久化
redis持久化redis的高性能是由于其将所有数据都存储在了内存中,为了使redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化、redis支持两种方式的持久化,一种时RDB方式,一种时AOF方式,可以单独使用其中或者二者结合使用。1、RDB持久化(默认支持,无需配置)该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。原创 2017-05-29 23:47:35 · 1438 阅读 · 0 评论 -
【Redis学习】:redis特性——多数据库、服务器命令、消息订阅与发布和事务
redis特性多数据库一个redis实例可以包含多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就好比一个mysql数据库中创建了多个数据库,客户端连接时指定连接哪个数据库。一个redis实例最多可以提供16个数据库,下标从0到15,客户端默认连接第0号数据库,也可以通过select选择连接哪个数据库。将newkey移植到1号库move原创 2017-05-29 23:34:17 · 1439 阅读 · 0 评论 -
【Redis学习】:Java操作redis数据库
Jedis学习redis不仅仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如Java、C、C#、C++、PHP、Node.js、Go等。Java操作redis单实例连接连接超时如果运行上面代码式,抛出异常必须设置Linux防火墙vim /etc/sysconfig/iptablesservice i原创 2017-05-29 23:25:15 · 1783 阅读 · 0 评论 -
【Redis学习】:sortedset数据类型详解
sortedset数据结构sortedset和set类型极为类似,它们都是字符串的集合,都不允许重复的成员出现在一个set集合中。它们之间的主要差别是sortedset中的每一个成员都会有一个分数(score)与之关联,redis正是通过分数来为集合指那个的成员进行从大到小的排序。然而需要额外指出的是尽管sortedset中的成员必须是唯一的,但是分数却是可以重复的。在sorted原创 2017-05-29 23:16:37 · 5503 阅读 · 0 评论 -
【Redis学习】:set数据类型详解
set数据结构常用命令添加/删除元素sadd key values[value1 value2 ...]向set中添加数据,如果该key的值已有不会重复添加。srem key members[member1 member2 ...]删除set中指定的成员获得集合中的元素smembers原创 2017-05-29 22:58:44 · 1262 阅读 · 0 评论 -
【Redis学习】:list数据类型详解
list数据结构在redis中,list数据结构是按照插入顺序的字符串链表,和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库删除,list中可以包含最大元素数是4294967295.从元素插入和删除的效率来看,如果原创 2017-05-29 22:09:27 · 5032 阅读 · 0 评论 -
【Redis学习】:hash数据类型详解
hash数据结构redis中的hash类型可以看成是具有string key和string value的map容器,所以该类型非常适合用于存储对象的信息,如username,password和age等,如果hash中包含很少的字段,那么该类型的数据也将仅占用很少 的磁盘空间,每一个hash可以存储4294967295个键值对。常用命令赋值hset k原创 2017-05-29 20:31:12 · 2062 阅读 · 0 评论 -
【Redis学习】:string数据类型详解
什么是NoSQLNoSQL,即Not Only SQL,意为不仅仅是SQL,是一项全新的数据库理念,泛指非关系型的数据库、为什么需要NoSQL1、对数据库高并发读写的需求2、对海量数据的高效率存储和访问的需求3、对数据库的高扩展性和高可用性的需求NoSQL数据库分类1、键值存储数据库2、列存储数据库原创 2017-05-29 20:26:31 · 1156 阅读 · 0 评论 -
【Redis学习】:Linux环境下的Redis安装与配置
安装环境redis是C语言开发的,安装redis需要先将官网上下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc。这个最好使用yum安装,因为依赖关系比较多,自己不好找到下载。可以连网下载,也可以挂载光盘进行下载。yum install gcc-c++如果提示是否下载,输入y如果提示是否安装,输入y原创 2017-05-29 11:44:29 · 2565 阅读 · 0 评论 -
SQL 多条件查询
网上有不少人提出过类似的问题:“看到有人写了WHERE 1=1这样的SQL,到底是什么意思?”。其实使用这种用法的开发人员一般都是在使用动态组装的SQL。让我们想像如下的场景:用户要求提供一个灵活的查询界面来根据各种复杂的条件来查询员工信息,界面如下图:界面中列出了四个查询条件,包括按工号查询、按姓名查询、按年龄查询以及按工资查询,每个查询条件前都有一个复选框,如果复选框被选中转载 2017-04-16 17:57:47 · 23669 阅读 · 1 评论 -
【Redis学习】:Redis数据类型
Redis 数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的原创 2017-01-12 22:32:05 · 1299 阅读 · 0 评论 -
【Redis学习】:Windows环境下的Redis安装与配置
Redis简介 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因原创 2017-01-12 22:24:30 · 38681 阅读 · 11 评论 -
NoSQL类型介绍及适用场景
应用程序规模的变大网络应用程序的规模日渐变大,我们需要储存更多的数据、服务更多的用户以及需求更多的计算能力。为了应对这种情形,我们需要不停的扩展。扩展分为两类:一种是纵向扩展,即购买更好的机器,更多的磁盘、更多的内存等等;另一种是横向扩展,即购买更多的机器组成集群。在巨大的规模下,纵向扩展发挥的作用并不是很大。首先单机器性能提升需要巨额的开销并且有着性能的上限,在Google和Facebo转载 2017-01-12 19:15:48 · 1445 阅读 · 0 评论 -
【Redis学习】:NoSQL概述
NoSQL简介 NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用原创 2017-01-12 17:40:35 · 1522 阅读 · 0 评论 -
谈谈数据库的ACID
谈谈数据库的ACID 帅宏军一.事务 定义转载 2016-12-16 22:05:41 · 1057 阅读 · 0 评论 -
MySQL学习21:初始存储过程
一存储过程简介 在学习存储过程之前我们先来看看MySQL数据库中的命令执行流程: (1)存储过程 存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。 (2)存储过程的优点 1)增强SQL语句的功能和灵活性。 2)实现较快的执行速度。 3)减少网络流量。原创 2016-06-08 22:26:49 · 8557 阅读 · 0 评论 -
MySQL学习20:运算符与函数之自定义函数
一自定义函数简介 (1)自定义函数定义 用户自定义函数(user-defined function,UDF)是一种对MySQL数据库扩展的途径,其用法与内置函数相同。 (2)自定义函数的两个必要条件 1)参数:可以有零个或多个。 2)返回值:只能有一个返回值。 使用自定义函数的注意事项原创 2016-06-05 22:23:35 · 8269 阅读 · 0 评论 -
MySQL学习19:运算符与函数之信息函数、聚合函数、加密函数
信息函数 常用的信息函数有: (1)查看数据库连接ID和当前数据库 SELECT CONNECTION_ID(); SELECT DATABASE(); (2)查看最后输入记录的ID号 ALTER TABLE test ADD id SMALLINT UNSIGNED KEYAUTO_INCREME原创 2016-06-05 20:41:15 · 7117 阅读 · 0 评论 -
MySQL学习18:运算符与函数之数值运算符和函数、比较运算符和函数、日期时 间函数
数值运算符和函数 常见的数值函数下面几个: (1)数值运算符 MySQL数据库常见的数值运算符有:+、-、*、、、%等等。这里我们就不再一一列举,只是来看两个例子: SELECT 3+4; SELECT 3%4; (2)进一取整和舍一取整 SELECT CEIL(3.原创 2016-06-05 16:57:29 · 7750 阅读 · 0 评论 -
MySQL学习17:运算符与函数之字符函数
MySQL字符函数 MySQL数据库中常用的字符函数有下面几个: (1)字符连接 首先创建一个名字为imooc的数据库,然后再使用CONCAT()字符连接函数进行查询: CREATE DATABASE imooc; SELECT CONCAT('imooc','MySQL'); SELECT CON原创 2016-06-05 16:06:08 · 7211 阅读 · 0 评论 -
MySQL学习16:多表连接
一连接概述 (1)连接 MySQL数据库在SELECT语句,多表更新以及多表删除中都支持JOIN操作。多表连接的语法结构为: table_reference {[INNER | CROSS] JOIN} | {LEFT|RIGHT} [OUTER] JOIN} table_reference ON condtional_expr;原创 2016-05-29 22:22:16 · 6408 阅读 · 1 评论 -
MySQL学习15:子查询(二)
二子查询 3由[NOT] IN/EXISTS引发的子查询 使用[NOT] IN引发的子查询的语法结构:operand comparsion_operator [NOT] IN (subquery)。其中,=ANY运算符与IN等价;!=ALL或 例子: 1)查询所有商品中价格等于超级本价格(任意一个)的商品原创 2016-05-29 17:35:24 · 6192 阅读 · 2 评论 -
MySQL学习15:子查询(一)
一数据准备 (1)创建数据库 CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET gbk; (2)创建数据表 CREATE TABLE IF NOT EXISTS tdb_goods( goods_id SMALLINT UNSIGNED PRIMARY KEY原创 2016-05-29 13:03:26 · 9008 阅读 · 3 评论 -
MySQL学习14:操作数据表中的记录(二)
四查询记录 MySQL数据库中对于数据表中的记录最常用的就是记录的查询,操作数据表中的记录大都是记录的查询。查找记录的语法结构为: SELECT select_expr [,select_expr ...] [ FROM table_refereneces [WHERE where原创 2016-05-15 17:05:41 · 10391 阅读 · 0 评论 -
MySQL学习13:操作数据表中的记录(一)
操作MySQL数据库中的数据表的记录包括:记录的插入、记录的修改、记录的删除和记录的查询。简单来说、就是数据表中的记录的增删改查。 一插入记录 MySQL数据库中的数据表的记录的插入包括三种形式,在前面我们操作数据表的时候就已经使用过记录的插入。那只是我们最常使用的一种方式而已,接下来我们来看看记录的三种插入方式: (1)INSERT命令原创 2016-05-14 18:42:45 · 7617 阅读 · 1 评论 -
MySQL学习12:修改数据表(二)
我们接着上一篇的添加约束的操作讲述。 三添加约束 (3)添加外键约束 ALTER TABLE table_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] [index_type] (index_col_name,...) references_definition;原创 2016-05-11 16:16:00 · 6386 阅读 · 3 评论 -
MySQL学习11:修改数据表(一)
修改数据表包括添加列、删除列、添加约束、删除约束,修改列定义和修改数据表名称,后面的两个我们使用时一定要谨慎,尽量不使用。 下面就来一个一个单独介绍怎么修改数据表: 一添加数据表中的列 (1)添加单列 MySQL数据库的数据表中添加单列的语法格式为: ALTER TABLE table_name ADD [原创 2016-05-11 14:30:50 · 6499 阅读 · 0 评论 -
MySQL学习10:外键约束下的更新操作
上一篇只是讲述了外键约束的要求,并没有讲述外键约束的参照操作。这一次我来看看外键约束下的更新操作。 一外键约束的参照操作 我们进行外键约束的创建以后,在更新表的时候,子表是否也进行相应的更新。这是我们创建外键约束最大的好处。有以下几种: 1)CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行。 2)SET NULL:原创 2016-05-10 15:32:16 · 13728 阅读 · 4 评论 -
MySQL学习9:详解MySQL中的外键约束
本篇主要讲解MySQL中的外键约束。 一约束概述 创建约束的目的就是保证数据的完整性和一致性。约束根据约束针对的字段的数目的多少划分为表级约束和列级约束。 如果约束按照功能来划分的话刻印划分为:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、UNIQUE KEY(唯一约束)、DEFAULT(默认约束)和FOREIGN原创 2016-05-09 15:55:34 · 2995 阅读 · 0 评论 -
MySQL学习8:操作数据表(二)
接着上一篇博客,这一次我们初步了解一些MySQL数据库中的约束。 六自动编号 AUTO_INCREMENT 自动编号的字段,必须与主键组合使用。默认情况下,起始值为1,每次的增量为1。 例子: CREATE TABLE tb3( id SMALLINT UNSIGNED AUTO_INCREM原创 2016-05-09 14:02:58 · 2003 阅读 · 1 评论 -
MySQL学习7:操作数据表(一)
数据表 数据表(或称为表)是数据库最重要的组成部分之一,是其它对象的基础。 先来解决上一篇博客末尾说到的进入数据库验证的问题: 验证当前数据库是哪一个的MySQL命令为: SELECT DATABASE(); 例子: SHOW DATABASES; USE t1; SEL原创 2016-05-08 15:46:01 · 2157 阅读 · 0 评论