自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (2)
  • 收藏
  • 关注

原创 SQL 之 触发器

触发器 triiger触发器是种特殊的存储过程,它的执行不是由程序调用,不需要要手动操作,而是由事件触发。就好像按钮的点击事件,网页的Load事件一样,触发器的事件是由对表进行增删改操作触发的,当对一个数据库进行增删改时就会激活触发器。从SQL2005开始,根据SQL语句的不同将触发器分成了两类,一类是DML触发器,一类是DLL触发器,DML触发器又分为两类。触发器的分

2016-10-10 06:49:14 636

原创 设计模式(八)适配器模式

结构型模式 之 适配器模式将一个接口转换成客户希望的另一个接口,使得接口不兼容的那些类能够一起工作。适配器模式引入了一个适配器的包装类,它所包装的对象称为适配者,即被适配的类。适配器的实现:把客户的请求转化为对适配者的相应接口的调用。当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法,整个过程对客户是透明的,即客户类并不直接访问适配者类,客户并不知道最终的实现是通过了这一

2016-10-07 15:06:04 657

原创 设计模式(七)抽象工厂模式

抽象工厂模式:kit模式,提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类。和工厂方法模式不同的是,抽象工厂模式的工厂方法创建的是一个产品族,每一个产品都位于某个产品等级结构中。同样,4个角色:(1)AbstractFactory抽象工厂:声明了一组用于创建一族产品的方法,每个方法对应一种产品。(2)ConcreteFactory具体工厂:实现了在抽

2016-10-07 14:38:07 597

原创 设计模式(六)多态工厂模式

和简单工厂模式不同,工厂方法模式不再提供一个统一的工厂类来创建所有的产品对象,而是针对不同的产品提供不同的工厂,提供一个与产品等级结构对应的工厂等级结构。工厂方法模式:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。让一个类的实例化延迟到子类,又称为虚拟构造器模式,或者多态工厂模式。提供一个抽象工厂类来声明抽象工厂方法,而由其子类来具体实现工厂方法,创建具体的产品对象。

2016-10-07 12:21:00 1324

原创 设计模式(五)简单工厂模式

使用频率最高。概述:首先将需要创建的不同对象的代码封装到不同的类中,这些类成为具体产品类,而将它们的公共代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据所传入的参数不同创建不同的具体产品对象;客户端只需调用工厂类的工厂方法并传入相应的参数即可得到一个产品对象。简

2016-10-07 12:02:17 556

原创 设计模式(四)单例模式

对于一各软件系统的某些类而言,无需创建多个实例。例子:Windows任务管理器,无论启动任务管理器多少次,系统始终只能弹出一个任务管理器窗口。为了节约系统资源,以及保证信息的唯一性,有时需要确保系统中某个类只有唯一的实例。当这个唯一实例创建后无法再创建同一类型的其他实例。这就是单例模式的动机。示例:TaskManager类(1)为确保实例唯一性,禁止类的外部直接使用ne

2016-10-07 11:25:39 487

原创 设计模式(三)创建型模式

创建型模式5种,包含一种非GoF模式——简单工厂模式解决方案:创建什么,由谁创建,何时创建 模式          定义使用频率单例模式          确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。四星简单工厂模式          定义一个工

2016-10-07 10:51:51 321

原创 设计模式(二) 面向对象设计原则

单一职责原则 SRP:最简单的面向对象设计原则,用于控制类的粒度大小。一个类只负责一个功能领域的相应职责,或者说,就一个类而言,只有一个能引起它变化的原因。比如,设计一个CRM(客户关系管理)系统中的客户信息图形统计模块CustomerDataChart,该类的成员方法既包含图表的创建显示,也包含查询客户信息,以及连接数据库。事实上图表处理是一个独立功能,数据库连接操作也是独立的数据库

2016-10-07 10:31:25 435

原创 设计模式(一) 基本概念

一、设计模式概述GoF 23 种设计模式,加上简单工厂模式,共24种。 使用频率最高:创建型的有工厂方法模式、抽象工厂模式、单例模式结构型的有外观模式、适配器模式、代理模式行为型的有迭代器模式、命令模式、策略模式 学习每个设计模式都应掌握:这个设计模式的意图是什么,它要解决的什么问题,什么时候使用它(问题、目的);它是如何解决问题的(解决方案),结构图和关键

2016-10-07 09:10:39 465

原创 SQL 之 事务

多用户数据库数据库管理系统允许多人操作。所以如何处理潜在的同步问题等,一定程度上取决于数据库如何处理锁。锁锁是数据库用来控制数据资源被并行使用的一种机制。当数据库的一些内容被锁定时,任何企图修改(也可能是读取)这个数据的用户必须等到锁被释放。两种锁策略:(1)数据库的写操作必须向服务器申请并获得写锁才能修改数据。读操作必须申请和获得读锁才能查询数据。多用户可以同时读取数

2016-10-06 21:13:01 462

原创 SQL 之 范式

设计数据库的一些规范化的标准:通常满足第三范式已经足够规范了。第一范式:消除重复数据。要求不允许多值属性。如果一个数据单元格中存在多个值,通过给定值来检索会带来问题。这一范式的核心就是:不允许有重复的列。比如在TestFormat列存在“Multiple choice, essay”这样的值是不允许的,应该使用TestFormat1和TestFormat2的两个不同的列,而不是使用Te

2016-10-06 20:42:14 546

原创 SQL 之 外键、索引

一、外键:从一个表的一个列到另一个不同的表中的一个列的直接引用。设置一个外键时,要求指定两个列,配置了外键列的表为子表,另一个表中被引用的列则位于父表中。不允许先删除父表,子表必须依赖父表。设置外键,可以为父表中涉及到更新和操作的行设置一些具体的行为。比如外键CustomerID(1)No Action:默认行为,如果把列CustomerID的更新设置为No Action,意味着任

2016-10-06 20:28:53 1288

原创 SQL 之 修改数据

关键字:INSERT INTO , VALUES , DELETE , TRUNCATE TABLE , UPDATE修改数据:(1)插入新的行(2)删除表中的行(3)更新表中指定的行与列已有的数据一、修改策略修改数据的机制十分直接,意味着非常危险。实际中有各种可以帮助防止灾难性错误的策略。(1)删除行时,可以使用软删除技术,这并不是真正从物理上删除行,可以用表

2016-10-06 19:57:09 3559

原创 SQL 之 存储过程、参数和函数

存储过程和参数区别于之前的用单独一条语句检索数据,现在把多条语句保存到一个叫存储过程的单独对象中。 使用存储过程的原因:1. 把多条SQL语句保存到单独的过程中2. 把参数和SQL语句结合使用(也可以不含参数) 创建存储过程CREATE PROCEDURE ProcedureName,AS[OptionalParameterDeclarations]BE

2016-10-06 19:04:59 3412

原创 SQL 之 集合逻辑

关键字:UNION , UNION ALL , INTERSEC , EXCEPT / MINUS1. UNION :与JOIN不同,UNION合并的表不需要有关联的列。UNION允许我们在一条SELECT语句中检索不相关的或者部分相关的数据。SelectStatement1UNIONSelectStatement2ORDER BY columnlist

2016-10-06 18:22:11 488

原创 SQL 之 子查询

关键字:EXISTS子查询:插入到SELECT语句中的另一条SELECT语句。子查询可以插入到SELECT语句的任何子句中,方式取决于子查询是columnlist、tablelist还是condition三种方式:(1)当子查询是tablelist的一部分时,它指定了一个数据源(2)当子查询是columnlist的一部分时,它创建了一个单个的计算的列;(3)当子查询是con

2016-10-06 16:55:54 614

原创 SQL 之 视图(二)

一、创建视图1. 通过sql语句CREATE VIEW 视图名 ASSELECT语句(1)可以创建包含一个列或者多个列,一个表或者多个表的视图。(2)在创建视图时,并非所有的select子查询都可用,如:compute和compute by,order by[除非与top一起连用]。但在查询时可以使用。(3)在视图创建时,必须为没有标题列指定标题。(4)WITH

2016-10-06 15:46:02 644

原创 SQL 之 视图(一)

视图无非就是存储在数据库中并具有名字的SQL语句,或者说是以预定义的SQL查询的形式存在的数据表成分。视图本身不包含数据。 视图,又称虚表,区别于基表。视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。允许用户执行以下操作:(1)以用户或者某些类型的用户感觉自然或者直观的方式来组织数据;(2)限制对数据

2016-10-06 14:52:16 597

原创 SQL 之 自连接

自连接:一种虚拟方式。允许多次引用同一各表,该表就像独立的表一样,实际上创建了表的一个虚拟视图,允许多次使用这个虚拟视图。常用在自身是自引用的表,这类的表的一列指向了同一个表中的另一列。示例:Personnel表中的每一行都有一个列指向同一个表的另一列,这一列表示该员工的经理是谁(没有经理则用NULL)。就像指向同一个表的行的外键。EmPloyeeID            

2016-10-06 14:02:33 10026 5

原创 SQL 之 外连接

关键字:LEFT OUTER JOIN , RIGHT OUTER JOIN , FULL JOINCustomers表CustomerID        FirstName        LastName-------------------------------------------------------        1

2016-10-06 11:57:03 628

原创 SQL 之 内连接

Customers表CustomerID        FirstName        LastName-------------------------------------------------------        1                   William           Smith        2                   Natal

2016-10-06 11:15:58 586

原创 SQL 之 汇总数据

关键字:DISTINCT , SUM , AVG , MIN , MAX , COUNT , GROUP BY , HAVING 也叫聚合函数 1. 关键字DISTINCT  消除重复保证返回的新表每一行都是不相同的。查询Artist表里面有哪些歌手:SELECTDISTINCTArtistFROM SongTitlesORDER BY Artist

2016-10-06 09:40:35 767

原创 SQL 之 模糊匹配

模糊匹配关键字:LIKE , SOUNDEX , DIFFERENCE 1. 模式匹配在WHERE子句中使用LIKE操作符来查找针对列值的某个部分的匹配。LIKE + 通配符 来指定。SELECTMovieTitle AS ‘Movie’FROM MoviesWHERE MovieTitle LIKE‘%LOVE%’查找电影名包含LOVE的电影(LOVE

2016-10-06 07:47:24 10523

原创 SQL 之 布尔逻辑

关键字:AND, OR, NOT, BETWEEN, IN, IS, NULL 1. ANDSELECTCustomerName,QuantityPurchasedFROM OrdersWHERE QuantityPurchased > 3AND QuantityPurchased 只返回那些QuantityPurchased大于3且小于7的行(每个条件都必

2016-10-06 00:43:51 1395

原创 SQL 之 基于行的逻辑

关键字: WHERE、 TOP/LIMIT/ROWNUM 1. 应用查询条件SELECT columnlistFROM tablelistWHERE conditionORDER BY columnlist PS:WHERE子句必须总在FROM和ORDER BY之间。事实上,任何子句都必须按这个顺序,ORDER BY是最后的。 示例一SELECT

2016-10-06 00:16:02 401

原创 SQL 之 基于列的逻辑

关键字: CASE, WHEN, THEN, ELSE, END重点:CASE表达式SQL的CASE表达式,在SELECT语句中针对单个的表达式应用IF-THEN-ELSE类型的逻辑。1. IF-THEN-ELSE逻辑IF some condition is trueTHEN do thisELSE do that CASE表达式能够出现在SELECT语句很

2016-10-05 23:32:29 457

原创 SQL 之 排列数据

1.  ORDER BY子句SELECT columnlistFROM tablelistORDER BY columnlist 强调:ORDER BY子句总在FROM子句后面, FROM子句总在关键字SELECT后面。columnlist可以是任意多的列,包括单个的列,或者复杂的表达式。SELECT后面和ORDER BY后面的列可以完全不同。 示例:表

2016-10-05 21:56:55 994

原创 SQL 之 函数(一)

SQLSQL函数:字符函数、日期/时间函数、数值函数、转换函数复合函数:把多种函数组成一个表达式的方法 标量函数、聚合函数标量函数:只针对单行中的数据执行该函数。eg. LTRIM函数用于删除一个特定值中的起始空格聚合函数:对一个较大的数据集合(或数据组)进行操作,eg. SUM函数可以用来计算一个特定的列中所有值的总和。 1. 字符函数LEFT, RIGHT,

2016-10-05 20:49:53 1331

原创 SQL 之 别名

SQL Server 直接从表中取直接量或者计算量没有列名:SELECT 5, FirstName + ' ' + LastName FROM Students结果是两列都没有列名解决这个问题,使用别名。列的别名SELECT [原有列名 / 直接量(如5,‘David’等)/ 计算量(如Price * Quantity)]  AS '列的别名'  FROM Ta

2016-10-05 12:13:22 1467 1

原创 Visual C++ 之 调试程序

一、Debug调试器发布版本没有调试信息,不能进行程序调试,但程序进行了优化,DEBUG版本则包含调试信息(在Debug文件夹),但没有优化。所以程序有时候能够在调试版本运行,但不能运行于发布版本。编程时一般先生成一个Debug版本程序,程序在经过调试确认无误后,再编译链接生成一个Release版本程序。调试工具:1. 调试窗口用于显示程序的调试信息。Output窗口:

2016-10-05 11:39:09 4277

原创 Visual C++ 之 多线程

Windows的线程调度:Windows对CPU的管理采用时间片分配的方式,系统通过时间片调度按优先级轮流执行系统中的线程。系统需要处理的线程很低的时候,等待时间长,响应性能不够。对时间响应和处理要求较高的场合下,用多线程的方法来设计应用程序是一种普遍采用的方法。进程:程序的一个运行实例,可以把进程看成一个运行中的应用程序。描述了应用程序的一个运行实例所拥有的资源。包括:地址空间、文件

2016-10-04 11:35:46 795

原创 Visual C++ 之 动态链接库

动态链接库是基于提高系统内存资源的使用效率的解决办法。为提高内存资源的使用效率,每一个程序都应该尽量少占用内存空间,在多任务环境下,同时运行的多个应用程序有时要调用相同的函数(尤其是一些统一的接口),比如标准的数学函数和windows环境下的窗口维护函数等等。因此,设想当多个应用程序同时运行并且都调用同一个函数时,不应该在内存上生成这个函数的多份拷贝,而应该使这些程序能够共享这个函数在内存中的

2016-10-04 10:24:02 882

原创 Visual C++ 之 MFC异常宏和异常类

MFC对C++异常处理结果try-catch进行了改进,以宏的形式支持异常处理功能,定义了MFC异常宏和MFC异常类。MFC异常宏将发生的异常情况与MFC类联系在一起,以便能够分类检测并抛出不同类型的异常,方便程序员进行不同的处理。灵活性、广泛性、可执行性更好。MFC异常宏:TRY{ ... //引发异常}CATCH(ExceptionClass1, pe){ ... //

2016-10-04 10:04:30 784

原创 Visual C++ 编程深入 使用ODBC数据库

Visual C++ 提供提供了多种数据库访问技术,其中最主要的是开放式数据库连接(Open Database Connectivity, ODBC)和数据存取对象(Data Access Object, DAO)两种数据库访问技术。ODBC是技术上成熟的可靠标准接口,这里介绍它的使用。 1. ODBC概述ODBC建立了一组数据库访问规范,为用户提供简单、标准、透明和统一的数据

2016-10-04 09:46:48 2227

原创 Visual C++ 之 常用的MFC类

1. CRuntimeClass 类CRuntimeClass结构包含了类名、对象所占存储空间大小以及类的版本号等成员变量和动态对象创建、派生关系判断等成员函数。2. COject类MFC的根类(抽象基类)。描述MFC类的公共特性。对象诊断(1)利用成员函数AssertValid()进行对象有效性检查,使对象可以在程序继续运行前对数据成员的有效性进行判断。(2)利用成员函数

2016-10-04 07:49:39 1337

原创 Visual C++ 之 文件操作

考虑文档数据的存储,在VC++中可以采用3种方法实现磁盘的读写处理:1. 采用C++文件流(包括ifstream, ofstream, fstream等)方法处理文件;2. 将文件作为MFC类CFile的一个对象进行处理;3. 利用MFC类CArchive对文档进行序列化处理在MFC应用程序中一般采用序列化方法进行文档的读写,这样可以避免直接处理一个物理文件。1

2016-10-04 00:40:34 2603

原创 Visual C++ 之 使用对话框

一般定义自己的对话框类时使用CDialog类作为基类。一般对话框的工作流程

2016-10-04 00:32:27 1330

原创 C++ 模板

C++模板:函数模板、类模板模板是一个将数据类型参数化的程序设计工具。代码与数据类型相脱离。将数据类型作为模板参数,在使用模板时再根据实参的数据类型确定模板参数(即数据类型)。代码可重用,特别是函数参数或者数据成员的类型多样而函数的类的功能相同时。1. 函数模板template      // 或者 template  T abs( T val){     

2016-10-03 18:09:07 332

原创 C++ 重载

重载:函数重载,运算符重载区别于虚函数的动态绑定(运行时多态),重载属于静态绑定(编译时多态)。重载:在函数名(包括运算符)相同的情况下,编译器能够根据不同的参数类型确定对应的函数。1. 函数重载函数名相同,参数类型不同。(同一个类中)成员函数也可以重载。常成员函数和普通成员函数可以以重载的形式共存(这也是之前强调声明和定义必须带const的原因,否则会被当

2016-10-03 17:52:11 596

原创 C++ 纯虚函数

声明:virtual    ()  = 0;  // 没有花括号纯虚函数:不给出函数的实现代码,没有函数体,仅为类族提供统一的接口,相当于标准接口。在派生类中如果给出了纯虚函数的具体实现,该函数在派生类中就成为一般的虚函数。注意将纯虚函数和函数体为空的虚函数区分开。一般而言,基类和派生类都可以用来声明相应类的对象。但也可以根据需要,把基类作为纯粹的一种抽象概念,即把他的一些行文(

2016-10-03 17:08:49 781

Introduction to algorithm

算法导论 算法基础入门 圣经级教材 正版原书pdf 内容详尽,较为深奥 适合有编程基础的人

2015-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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