自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zxiaofan.com

Life is all about choices!生命不息,学习不止。By : zxiaofan.com

原创 史上最全Java集合关系图

说是史上最全,或许有点吸引眼球的嫌疑了,但我在网上确实也没有找到更全的,这图也是我对照Java源码挨个分析,画出了较为常见的关系图,及其重要特性。 图中部分集合的使用事例可以参见我的github(点击访问),部分集合的源码分析可以参见我的CSDN的其他文章。如果需要下图的vsdx原图,请点击此处下...

2016-01-24 22:46:51 25971 4

原创 11. 集合运算

select查询结果是一个包含一或多条数据的结果集,类似数学里的集合,可进行交(intersect)、并(union)、差(minus)运算。 被操作的结果集需满足: 两结果集所含数据列的数量相等。两结果集所含数据列的类型必须一一对应。 # 集合运算-练习 # 必须保证作集...

2016-01-23 15:44:14 1700 0

原创 10. 子查询

子查询就是在查询语句中嵌套另一个查询,子查询支持多层嵌套。 子查询出现位置: form语句后当成数据表(实质是一个临时视图,so这种方法也被称为内视图);where条件后作为过滤条件的值。 Note: 子查询要用括号括起来;把子查询作为数据表时(出现在from后),可为...

2016-01-23 15:43:36 1652 0

原创 9. 多表连接查询

多表查询可理解为一个嵌套循环遍历。 多表连接查询有两种规范,较早的SQL92规范支持: 等值连接:连接条件要求两列值相等非等值连接广义笛卡尔积:没有任何连接条件(n*m条记录)外连接 【MySQL 不支持 92规范的外连接】         外连接就是在外连接符所在的表中增加一个”万...

2016-01-23 15:42:58 1720 0

原创 8. 分组和组函数

组函数即《数据库函数》中提到的多行函数。每组记录作为整体计算,并返回一个结果,而不是每条记录返回一个结果。 常用的5个组函数:(以下expr均可以是变量、常量、数据列,无特别说明则数据类型可为任意类型) AVG([DISTINCT|all] expr):计算多行expr的平均值...

2016-01-23 15:42:06 1585 0

原创 7. 数据库函数

每个数据库都会在标准的SQL基础上扩展一些函数。函数一般会有一或多个输入(即参数),最终只返回一个值作为返回值。         SQL中的函数是独立的程序单元。调用时无需使用任何类、对象作为调用者。 多行函数(也称 聚集函数、分组函数)         对多行输入整体计算,...

2016-01-23 15:41:20 1503 0

原创 6.单表查询

1、语法格式         select语句的功能就是查询数据,在SQL语句中功能最丰富,可单表查询、多表连接查询、子查询。 SELECT  NAME, grade FROM student WHERE grade >80; 数据源student可以是表、视图等;...

2016-01-23 15:40:38 1599 0

原创 5.DML语句

DML语句用于操作数据表的数据,如:插入、修改、删除。insert into、update和delete from三个命令组成。 1、insert into INSERT INTO `grade` (`id`, `math`)VALUES('1','83�...

2016-01-23 15:39:49 378 0

原创 4.视图

计算机数据库中的视图是一个虚拟表,其内容由查询定义;不是数据表,因为它不能存储数据;只是一个或多个数据表中数据的逻辑显示。本质:一条被命名的SQL语句。 视图好处: 对机密数据提供安全保护,限制对数据的访问;简化复杂的查询;提供数据的独立性;分解复杂的查询需求,创建多个视图获取数据。将...

2016-01-23 15:39:04 423 0

原创 3.MySQL索引

索引(Index)是帮助MySQL高效获取数据的数据结构。是对数据库表中一列或多列的值进行排序的一种结构。索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。(图书目录)         索引是存放在模式(schema)中的数...

2016-01-23 15:38:03 509 0

原创 1.5 MySql建表

create table [模式名]表名 ( # 列定义 ) 例:向study数据库中插入表person CREATE TABLE IF NOT EXISTS study.person (     id INT(11)NOTNULL AUT...

2016-01-23 15:33:26 388 0

原创 2.数据库约束

约束:         在表上强制执行的数据校验规则,保证数据库里数据的完整性。当表中数据相互依赖时,保证相关数据不被删除。         也是数据库对象,也有自己的名字。         约束通常无法修改。 大部分数据库支持一下5种约束: NOT NULL:非空约束,指定某列...

2016-01-23 15:32:11 539 0

原创 1.SQL语句基础之DDL

SQL(Structured Query Language 结构化查询语言) 标准SQL语句类型 查询语句 select关键字,SQL语句中最复杂但功能最丰富 DML 数据操作语言 insert、upd...

2016-01-23 15:30:52 418 0

原创 Mysql存储引擎

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。 查看方法:show engines;     MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事...

2016-01-23 15:20:56 337 0

原创 Mysql读书笔记

最近在看《疯狂Java讲义》的数据库篇,较为系统的复习一下数据库知识,相关笔记首写与个人有道云笔记,现发于博客,希望和大家一起分享交流。本分类暂只包含MySQL的相关基础知识,后期会逐渐添加数据库优化相关知识。如发现文章有任何问题或你有任何想法,欢迎交流探讨。        注:涉及到的书中观点...

2016-01-23 15:16:54 354 0

原创 用栈来求解汉诺塔变形问题

/** * 用栈来求解汉诺塔问题:HanoiStack【3】 * * 【问题描述】:将汉诺塔游戏(小压大)规则修改,不能从左(右)侧的塔直接移到右(左)侧,而是必须经过中间塔。 * * 求当塔有N层时,打印最优移动过程和最优移动步数。如N=2,记上层塔为1,下层为2.则打印:1:le...

2016-01-09 23:54:39 1778 0

原创 由两个栈组成的队列

/** * 由两个栈组成的队列:TwoStackQueue【2】 * * 【编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)】 * * 设计思路:栈-先进后出,队列-先进先出。用两个栈把顺序反过来。 * * stackPush只管进栈,stackP...

2016-01-09 23:51:45 1679 0

原创 设计一个有getMin功能的栈

* 设计一个有getMin功能的栈:StackGetMin【1】. * * 【实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作】 * * 要求:1、pop、push、getMin操作的时间复杂度都是

2016-01-09 23:45:02 2250 0

原创 仅用递归函数和栈逆序一个栈

package stackAndQueue; import java.util.Stack; import org.junit.Test; /** * 仅用递归函数和栈逆序一个栈:ReverseStack【2】 * * 【一个栈依次压入1、2、3,将栈转置,使栈顶到栈底依次是1、2、...

2016-01-09 23:40:53 2869 0

原创 归并排序MergeSort

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。值得注意的是归并排序是一种稳定的排序方法。速度仅次于快速排序,为稳定排序算法,一般用于总体无序,但是各子项相对有序的数列。若将两个有序表合并成一个有序表,称为二路归并。...

2016-01-05 00:18:30 2008 0

原创 快排QuickSort

1、算法思想: /**      * 一趟快速排序的算法是: 1)、设置两个变量I、J,排序开始的时候I:=1,J:=N;      *      * 2)以第一个数组元素作为关键数据,赋值给X,即X:=A[1];      *      * 3)、从J开始向前搜索,即由后开始向前搜索...

2016-01-05 00:15:47 1658 0

原创 冒泡排序BubbleSort

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 1、算法思想 ...

2016-01-05 00:12:35 1744 0

原创 堆排HeapSort

堆排序是一种树形选择排序,是对直接选择排序的有效改进。 堆的构建--》堆排: 初始状态-从最后一个结点开始,使该子树成堆(最小/大的数移到根节点),不断循环>-初始堆(小/大顶)--输出堆顶元素(堆顶与堆的最后一个元素交换位置)--最后一个数移至堆顶--重新建堆--输出堆顶元...

2016-01-05 00:06:58 2093 0

原创 简单选择排序SimpleSelectSort

冒泡排序:在每一次比较的时候,如果发现相邻两数的次序不对,都会马上就把两数进行对调。 选择排序:则在比较过程中(内循环里面)并不进行对调,而是先记录下最小(大)数的下标,在一次扫描完成后再进行对调。  1、算法思想         在要排序的一组数中,选出最小(或者最大)的一个数...

2016-01-04 23:53:30 1532 0

原创 希尔排序ShellSort

希尔排序(Shell Sort)是一种插入排序算法,因D.L.Shell于1959年提出而得名。 Shell排序又称作缩小增量排序。 1、算法思想         先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行...

2016-01-04 23:47:24 1629 0

原创 直接插入排序StraightInsertSort

1、算法思想         将一个记录插入到已排序好的有序表中,从而得到一个新的记录数增1的有序表。         即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。 2、代...

2016-01-04 23:43:28 1630 0

原创 排序算法笔记说明

排序算法相关内容是个人理解并代码实现的常用的内部排序算法,目前包括如下七大算法(暂不包括基数排序):直接插入排序、希尔排序、简单选择、堆排、冒泡、快排、归并排序。 相关内容最初写在自己的云笔记上,现发表于博客,希望和大家多多交流。 在写这些内容之时,也借鉴了一些前辈的文章,每个算法都自我实现了。本...

2016-01-04 23:35:59 1607 0

原创 Error of Git

本文旨在记录使用git时遇到的各种问题及解决方案,希望大家少走弯路。 1、eclipse 上传更新的时候出现:cannot open git-receive-pack 方案1: 可以试试下面的配置 windows-->Preferences-->Team-->Git--&...

2016-01-04 09:40:35 1618 0

原创 javac不是内部或外部命令,但是java、java-version指令正常

javac不是内部或外部命令,但是java、java-version指令正常 今天遇到这个问题,云笔记博客同时Mark一下。 解决方案: CLASSPATH:.;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar;【注意前面的点】 JAV...

2016-01-03 14:21:57 11819 1

提示
确定要删除当前文章?
取消 删除