自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yunfan

编程是一种美德,是促使一个人不断向上发展的一种原动力。

  • 博客(59)
  • 资源 (19)
  • 论坛 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 Linux进程之进程间通信

一 进程间通信概述一个大型的应用软件往往需要众多进程协作,所以进程间通信(IPC)的重要性显而易见。Linux系统下的进程间通信机制基本上是从UNIX平台上的进程间通信机制移植而来的。Linux环境下,各个进程地址空间相互独立,每个进程各自拥有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都是不可见的,所以进程和进程之间不能相互访问,要像交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IP

2021-05-01 00:44:17 138 2

原创 Linux 进程

一 进程基本概念1.1 进程和程序进程(process):是一个可执行程序(program)的实例。更精确的定义是:进程是允许某个并发执行的程序在某个数据集合上的一次执行过程。进程是系统进行资源分配和调度的基本单位。程序(program):是包含了一系列信息的文件,这些信息描述了如何在运行时创建一个进程。所包含的信息内容如下:二进制格式标识。每个程序文件都包含用于描述可执行文件格式的元信息(metainformation)。内核(kernel)利用此信息来解释文件中的其他信息。历史上,UN.

2021-03-04 16:02:05 21

原创 Linux编程技术总结

前言所谓Linux编程技术就是在Linux操作系统环境下进行软件开发时所使用的各种编程技术。一 常见的Linux系统发行版在介绍常见的 Linux 系统版本之前,首先需要区分 Linux 系统内核与 Linux 发行版系统的不同。➢ Linux 系统内核 指的是一个由 Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。➢ Linux 发行版系统 是我们常说的 Linux 操作系统,也即是由 Linux 内核与各种常用软件的集合产品。全球

2020-12-25 14:37:26 139

原创 C-V2X 技术介绍

缩略词C-ITS(Cooperative Intelligent Transportation System,协作式智能交通系统)C-V2X(Cellular-V2X,蜂窝车联网) 该技术在DSRC技术之后推出,目的同样是在车辆之间进行直接无线通信。C-V2X由3GPP组织定义,基于蜂窝调制解调器技术,其接入层与DSRC有着本质上的不同,完全不兼容。D2D(Device to Device,设备到设备)是指物联网中设备直连通信技术。DSRC(Dedicated Short Range Com

2020-12-17 18:00:32 8063

原创 Go语言--编程哲学

1 Go语言设计哲学1.1 少即是多Go语言没有犯C++的错误,没有过度地追求语言特性的大而全,而是最大限度地控制语言特性的数量,控制语言使用的复杂性。二八定律在编程语言中可以描述为80%的代码仅使用20%的语言特性。增加语言特性并不能开发效率的提升,原因是它会增加复杂性,导致使用者更容易犯错;有些复杂的语言特性可以通过库的其他形式来辅助支持。所以,在Go语言中,没有看到运算符重载,没有看到多重继承等不太实用的语言特性。少即是多还隐含另一个概念就是语言特性的正交性。几何上的正交指的是两个向量的垂

2020-12-04 18:54:39 48

原创 Go语言--包(Package)

1 命名空间和作用域1.1 命名空间命名空间(Namespace)在编程语言中常用来表示标识符(identifier)的可见范围。编程语言借助命名空间来解决标识符不能同名的问题,命名空间实际上相当于给标识符添加了标识前缀,使标识符变得全局唯一。另外,命名空间是程序组织更加模块化,降低了程序内部的耦合性。一个标识符可以在多个命名空间中定义,它在不同命名空间中的含义是不互相干的。新的命名空间中可定义任意的标识符,它们不会与位于其他命名空间上的同名标识符发生冲突,当然自定义标识符尽量不要使用编程语言自

2020-12-04 17:25:31 70

原创 Go语言--编译与工具

1 编译工具Go语言的工具链非常丰富,从获取源码、编译、文档、测试、性能分析,到源码格式化、源码提示、重构工具等应有尽有。 在Go语言中可以使用测试框架编写单元测试,使用统一的命令行即可测试及输出测试报告的工作。基准测试提供可自定义的计时器和一整套基准测试算法,能方便快速地分析一段代码可能存在的CPU耗用和内存分配问题。性能分析工具可以将程序的CPU耗用、内存分配、竞态问题以图形化方式展现出来。1.1 编译(go build)Go语言中使用 go build 命令将.go源码编译为可执行文件。g

2020-12-03 17:46:41 58

原创 Go语言--使用“陷阱2”

1 值、指针和引用<备注> 博文中引用的Go源码基于的Go发布版本:go version go1.15.4 linux/amd64。1.1 传值还是传引用Go语言只有一种参数传递规则,那就是值拷贝,这种规则包括两种含义:(1)函数参数传递时使用的是值拷贝。(2)实例赋值给接口变量,接口对实例的引用是值拷贝。有时明明是值拷贝的地方,结果却修改了变量的内容,有以下两种情况:(1)直接传递的是指针。指针传递同样是值拷贝,但指针和指针副本的值指向的地址是同一个地址,所以能修改

2020-11-27 16:05:37 45

原创 Go语言--使用“陷阱1”

Go语言语法简单,类型系统设计得“短小精悍”,但也不是完美无瑕的。Go语言也有一些特性让初学者感到困惑。本篇博客就是逐一介绍Go语言的使用“陷阱”,解除初学者容易犯的错误。Go 语言提供了 go fmt,能够保证代码格式的一致性,在一些代码的书写方式上,Go语言同样有自己的惯用写法,只是这些规则是“潜规则”。1 多值赋值和短变量声明Go语言支持多值赋值,在函数或方法内部也支持短变量声明并赋值,同时Go语言依据类型字面量的值能够自动进行类型推断。1.1 多值赋值可以一次性声明多个变量,并可以在

2020-11-26 19:34:34 54

原创 Go语言--反射(reflect)

0 反射的概念反射是指计算机程序在运行时(runtime)可以访问、检测和修改本身状态或行为的一种能力。通俗地将,反射就是程序能够在运行时动态地查看自己的状态,并且允许修改自身的行为。...

2020-11-24 14:48:02 70

原创 Go语言并发编程3 - 并发模型

1 Go的并发机制

2020-11-16 17:40:45 50

原创 Go语言并发编程2 - 同步

0 前言Go语言除了可以使用通道进行多个goroutine间数据交换的方式之外,还提供了传统的同步工具。它们都在Go的标准代码包 sync 和 sync/atomic 中,包括原子操作、互斥锁、条件变量以及等待组。1 原子操作原子操作是指执行过程不能被中断的操作。在针对某个值的原子操作执行过程中,CPU绝不会再去执行其他针对该值的操作,无论这些其他操作是否为原子操作。Go语言提供的原子操作都是非侵入式的。它们由标准库代码包 sync/atomic 中的众多API函数实现,我们可以通过调用这些

2020-11-12 17:31:09 50 2

原创 Go语言并发编程1 - 基础

0 并发编程基础并发编程是一种现代计算机编程技术。它的含义比较宽泛,可以是多进程编程、也可以是多线程编程、还可以是编写分布式程序。并发编程思想来源于多任务操作系统,它允许同时运行多个程序。在早起的单用户操作系统中,任务是一个接一个地运行,各个任务的执行完全是串行的。只有在一个任务运行完成之后,另一个任务才会被读取并执行。而多任务操作系统则允许终端用户同时运行多个程序。当一个程序暂时不需要使用CPU时,系统会把该程序挂起或中断,以便其他程序可以使用CPU。而Go语言最明显的优势在于拥有基于多线程的并发编程

2020-10-30 18:06:40 60 2

原创 Go语言--接口的内部实现

1 接口内部实现毫无疑问,接口是Go语言类型系统的灵魂,是Go语言实现多态和反射的基础。前面我们结束了接口的基本概念和用法,定义接口只需要简单声明一个方法集合即可,定义新类型时不需要显式地声明要实现的接口,接口的使用也很简单。但这一切语言特性的背后是语言设计者们的智慧:把复杂留给自己,把简单留给用户。接口的底层是如何实现的?如果实现动态调用?接口的动态调用到底需要多大的额外开销?这是我们需要弄清楚的问题。1.1 数据结构接口变量必须初始化才有意义,没有初始化的接口变量的默认值是nil。具体类

2020-10-21 17:10:37 55

原创 Go语言--接口(interface)

0 接口概念接口本身是调用方和实现方均需要遵守的一种协议。接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。Go语言中使用组合实现对象特性的描述。对象的内部使用结构体内嵌组合对象应该具有的特性,对外通过接口暴露能使用的特性。Go语言的设计是非侵入式的设计,也就是说,一个具体类型实现接口不需要在语法上显式地声明,只要具体类型的方法集是接口方法集的超集,就代表该类型实现了接口,编译器在编译时会进行方法集的校验,从而知道哪个类型实现了哪个接口。0.

2020-10-19 17:26:24 79

原创 Go语言--结构体(struct)

0 前言Go语言通过自定义的方式形成新的类型,结构体是类型中都有成员的复合类型。Go语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。结构体成员是由一系列的成员变量构成,这些成员变量也被称为“字段”。字段有以下特性:字段拥有自己的类型和值。 字段名必须唯一。 字段的类型也可以是结构体,甚至是字段所在结构体的类型。 结构体的存储空间是连续的,字段按照声明时的顺序存放(注意字段之间有字节对齐要求)<提示> Go语言没有“类”的概念,也不支持“类”的继承等面向对象

2020-09-30 17:01:25 117 1

原创 Go函数--panic和recover

0 简介panic(宕机) 和 recover(恢复)是Go语言的两个内置函数,这两个内置函数用来处理Go的运行时错误(runtime errors)。panic 用来主动抛出异常,recover 用来捕获panic 抛出的异常。1 基本概念panic 和 recover的函数原型如下:panic(i interface{})recover() interface{}...

2020-09-23 16:51:59 41

原创 Go函数--error接口

1 Go语言错误处理思想Go语言的错误处理思想和设计原理包含以下特征:一个可能发生错误的函数,需要返回值中返回一个错误接口(error)。如果函数调用是成功的,错误接口返回 nil,否则返回错误。 在函数调用后需要检查错误,如果发生错误,进行必要的错误处理。<提示> Go语言没有类似Java、.Net中的异常处理机制,虽然可以使用defer、panic、recover模拟,但是官方并不主张这样做。Go语言的设计者认为其他语言的异常机制已被过度使用,上层逻辑需要为函数发生的异常付出太多

2020-09-22 19:35:23 100

原创 Go函数--闭包的内部实现

示例1:package mainimport ( "fmt")func test(x int) func() { fmt.Printf("test.x: &x=%p, x=%d\n", &x, x) return func(){ fmt.Println("closure.x:", &x, x) }}func main(){ f := test(0x100) //fmt.Printf("f type:

2020-09-22 15:46:14 50

原创 Go函数--匿名函数与闭包

0 匿名函数概念Go语言提供两种函数:有名函数和匿名函数。所谓匿名函数就是没有函数名的函数。匿名函数没有函数名,只有函数体。它和有名函数的最大区别是:我们可以在函数内部定义匿名函数,形成类似嵌套的效果。匿名函数常用于实现回调函数、闭包等。1 匿名函数1.1 匿名函数的定义格式func (参数列表) (返回值参数列表) { 函数体}<说明> 匿名函数除了没有函数名外,和普通函数完全相同。1.2 匿名函数的特点1、可以在定义匿名函数的同时直接调用执...

2020-09-22 09:50:22 29

原创 Go语言--函数(function)

函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段,其可以提高应用的模块性和代码的重复利用率。Go语言支持普通函数、匿名函数和闭包,从设计上对函数进行了优化和改进,让函数使用起来更加方便。...

2020-09-17 12:10:43 139

原创 Go函数--defer语句

1 defer语句该语句用于延迟调用指定的函数,它只能出现在函数或方法的内部,由defer 关键字以及针对某个函数的调用表达式组成。这里被调用的函数称为延迟函数。简单的示例如下:func outerFunc() { defer fmt.Println("函数执行结束前一刻才会被打印") fmt.Println("第一个被打印")}《代码说明》defer关键字后面是针对fmt.Println()函数的调用表达式。这里的outerFunc()称为外围函数。defer语句经常用

2020-09-15 15:38:37 27

原创 Go语言--流程控制

0 Go语言流程控制特点Go语言在流程控制方面的特点如下:没有do和while循环,只有一个更广义的for循环。 switch语句灵活多变,还可以用于类型判断。 if语句和switch语句都可以包含一条初始化子语句。 break语句和continue语句可以后跟一条标签(label)语句,以标识需要终止或继续的代码块。 defer语句可以使我们更加方便地执行异常捕获和资源回收工作。 select语句也用于多分支选择,但只与通道配合使用。 go语句用于异步启动goroutine并执行指定.

2020-09-14 17:01:56 214

原创 Go容器:列表(list)

0 列表概念列表是一种非连续存储的容器,由多个结点组成,结点之间通过一些变量记录彼此之间的关系。列表有多种实现方法,如单链表、双列表等。在Go语言中,列表的使用是通过 container/list 包来实现的,内部的实现原理是双链表。列表能够高效地进行任意位置的元素插入和删除操作。1 列表的初始化list 的初始化有两种方法:New() 和 声明。两种方法的初始化效果是一致的。1、通过 container/list 包New()方法初始化listvar l = list.New()

2020-09-11 22:35:11 78

原创 Go容器:映射(map)

1 散列表散列表,也称为哈希表,是设计精妙、用途广泛的数据结构之一。它是一个拥有键值对元素的无序集合。在这个集合中,键的值是唯一的,键对应的值可以通过键来获取、更新和删除。无论这个散列表有多大,这些操作基本上是通过常量时间的键比较就可以完成。<提示> 大多数编程语言中映射关系容器使用两种算法:散列表和平衡树。【散列表】散列表可以简单描述为一个“数组”(俗称“桶”),数组的每个元素是一个列表。根据散列函数(也称为哈希函数)获得每个元素的特征值,将特征值作为映射的键。如果特征值重复,

2020-09-11 15:11:11 43

原创 Go容器:切片(slice)

1 切片详解1.1 切片概念slice 表示一个拥有相同数据类型元素的可变长度序列。slice 通常写成 [ ]T,其中元素的类型都是 T;因此它看上去像是没有长度限制的数组类型。数组和切片是紧密关联的。slice是一种轻量级数据结构,可以用来访问数组的部分或者全部元素,而这个数组称为slice的底层数组。切片是对数组一个连续片段的引用,因此切片是一个引用类型(类似于Python中的list类型),这个片段可以是整个数组,也可以是由起始和终止索引标识的一个数组子集,需要注意的是,终止索引标识的项

2020-09-10 11:19:11 53

原创 Go容器:数组(array)

0 前言变量在一定程度上能满足函数及代码的要求。如果编写一些复杂算法、数据结构和逻辑,就需要更复杂的类型来实现。这类复杂类型一般情况下具有各种形式的存储和处理数据的功能,将它们称为“容器”。1 数组概念数组是一段固定长度的连续内存空间,由若干相同数据类型的元素组成的序列。在Go语言中,数组的大小在声明时就固定下来,使用时可以修改数组的元素,但是数组大小不可变化。1.1 声明数组Go语言数组声明格式如下:var 数组名 [数组长度]T//示例var arr [3]int .

2020-09-08 17:50:53 48

原创 Go语言--字符串的使用

一 字符串类型字符串在Go语言中是以原生数据类型出现的,使用字符串就像使用其他基本类型(int、bool、float32、float64等)一样。Go语言中,使用关键字string来声明字符串变量。字符串的值为双引号中的内容,可以在Go语言的源码中直接添加非ASCII码字符。示例代码如下:str := "Hello, Golang"ch := "中文"1.1 字符串转义符Go语言的字符串转义符和其他编程语言的是一样,如:回车、换行、单双引号、制表符等。转义符 含义..

2020-09-07 19:23:07 84

原创 Go语言--数据类型

一 数据类型Go语言中有丰富的数据类型。Go语言按类别有以下几种数据类型:布尔型(bool)布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。<注意>布尔类型变量的默认值为false。 Go 语言中不允许将整型强制转换为布尔型。 布尔型无法参与数值运算,也无法与其他类型进行转换。数字类型数字类型又分为整型、浮点型和其他数字类型。1、整型整型分为有符号整型和无符号整型。2、浮点型floa..

2020-09-04 17:02:39 47

原创 Go语言--变量、常量

一、变量1.1 声明变量1、标准格式var变量名变量类型Q:为什么Go语言把数据类型放在后面?答:Go语言这是一种自左向右的声明风格,这种声明的风格的好处是,变量名和类型是完全分隔的。当类型变得复杂时,它的价值就体现出来了。特别类型是函数指针的时候,C语言的声明语法容易让人弄混淆,而Go语言的这种自左向右的声明语法,即使在冗长的声明中也能很清晰地知道整个声明结构。x int //声明变量p *int //声明指针a [3]int ..

2020-09-04 10:47:08 44

原创 GoLand 支持中文设置方法

版本GoLand版本:GoLand-2020.1.3设置方法GoLand 2020版本官方已经有中文语言包插件了,GoLand设置中文界面的方法有两种,分别是:在线安装和离线安装两种方式。下面分别介绍这两种中文设置方法。方法1 - 在线安装在线安装方法比较方便,推荐使用这种方法。1、启动GoLand软件后,打开:文件-》设置-》插件。2、在文本框输入:Chinese,就会显示出中文语言包插件的搜索结果。如下图所示: 然后,点击安装,安装成功后,重启软件即可。启动时就是

2020-08-13 12:13:50 2387

原创 GoLand 关闭文件自动保存设置方法

版本GoLand版本:2020.1.3 中文版(通过中文语言包插件支持中文)设置方法1、打开设置面板:文件->设置。2、打开:外观和行为--》常规-》同步,如下图所示:关闭掉“同步”下的4个复选框。简要说明一下这四个选项的功能:第一个是激活当前窗口时保存;第二个是切换到其他窗口的时候(当前窗口没有被激活)保存最后一个是重点,其实是关掉最后一个选项就好,那个叫安全写入,方法就是重命名源文件,只要能重命名成功就会覆盖掉源文件来达到安全自动保存的目的,所以这个安全会不停.

2020-08-13 11:33:02 846

转载 GoLand 快捷键

一、GoLand快捷键设置打开快捷键设置方法:文件->设置->快捷键。二、GoLand常用快捷键1、查询CTRL+N 查找类CTRL+SHIFT+N 查找文件CTRL+SHIFT+ALT+N 查找类中的方法或变量CTRL+B 快速打开光标处的类或方法CTRL+ALT+B 找所有的子类CTRL+SHIFT+B 找变量的类CTRL+G 定位行CTRL+F 在当前窗口查找文本CTRL+SHIFT+F 在指定窗口查找文本CTRL+R 在 当前窗口替换文

2020-08-12 17:26:30 127

原创 I/O多路复用的实现机制 - poll 用法总结

一、基本知识poll的多路复用机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询(polling),根据描述符的状态进行处理,但是poll没有最大文件描述符数量上的限制。二、poll函数poll函数的原型声明://使用:man 2 poll,查看poll函数的使用帮助信息(CentOS-7.6)#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout);

2020-07-03 21:26:57 92

原创 I/O多路复用的实现机制 - select 用法总结

一、基本概念I/O多路复用,I/O指的是网络I/O,多路指的是多个连接(或者多个Channel),复用指的是一个或者少量进程/线程数。串起来理解就是多个网络I/O复用一个或少量的进程/线程来处理这些I/O事件。I/O多路复用的实现原理:...

2020-07-02 21:03:21 125

原创 五种网络I/O模型介绍

五种网络I/O模型阻塞I/O(Blocking I/O)非阻塞I/O(Non-blockingI/O)I/O复用(I/O Multiplexing)信号驱动式I/O(Singnal driven I/O)异步I/O(Asynchronous I/O)Tip:前四种都是同步I/O,只有最后一种才是异步I/O。I/O事件发生时涉及的对象和阶段对于一个网络I/O(这里我...

2020-06-30 19:28:11 102

原创 Linux命令 - 使用man获取帮助信息

man是manual的缩写。是在Linux系统中存储的一部联机使用的手册,以便用户在终端上查找。我们使用Linux命令遇到困难时,可以在终端输入:man <command>,得到该command的使用帮助信息,如:man ls。这是终端就会显示出 ls 命令的手册业(manual page)。手册业是使用less程序来看的(可以方便地使屏幕上翻和下翻),所以在man页面中可以使用less命令的所有选项。在less中比较重要的功能键有:[q]-退出,[Enter]-逐行下翻,[Space]-逐

2020-06-29 15:27:11 385

原创 关闭Windows Defender,开机不启动

1. 修改注册表信息。命令:regedit。路径:HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows Defender在右侧空白区域,右键新建DWORD(32位)值,命名它为DisableAntiSpyware,修改数值为1,因0代表启用,1代表禁用。2. 通过组策略禁用Windows Defender按下Win+R键,键入gpedit.msc,打开组策略窗口。找到windows Defender选项,管理模板->wi

2020-06-23 18:01:46 337

原创 获取结构体成员变量所占的内存空间大小的宏定义

#define member_size(type, member) sizeof(((type *)0)->member)说明如下:type:表示结构体类型名。member:表示结构体成员变量名。(type *) 0:0被强制转换了,转换成了一个TYPE类型的结构体的指针。C标准库有一个宏定义:offsetof(),该宏的声明如下:#include <stddef.h>offsetof(type, member)功能:计算一个结构体成员变量相对于结构..

2020-06-23 11:04:31 263

原创 Windows系统下安装配置 MinGW-w64 开发环境

MinGW、MinGW-w64 简介MinGW(全称为,Minimalist GNU for Windows),它实际上是将经典的开源 C语言编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 平台不具备的,但是Linux平台具备的开发工具和API函数。用一句话来概括就是:MinGW 就是 GCC 的 Windows 版本 。MinGW-w64原本是MinGW项目的分支,

2020-06-16 11:10:07 2226 3

UltraEdit v26.10版本 注册机

该资源是UltraEdit v26.10版本的注册机,压缩包里有如何使用的说明文本文件,本人亲测可用。UltraEdit最新版的安装包请去官网下载,网址链接:https://www.ultraedit.com/。 激活时要断网。上传时间:2019-8.29 【温馨提示】由于UltraEdit是共享软件,仅限用于个人之学习目的,请勿用于任何商业目的,并请支持正版软件。

2019-08-29

福昕高级PDF编辑器企业版 v9.4.1.16828 破解补丁

该资源是福昕高级PDF编辑器企业版 v9.4.1.16828 破解补丁,解开压缩包后,包含有破解步骤的说明文件。至于软件安装包可以去福昕官网下载。该版本也是目前的最新版,官网下载网址链接:https://www.foxitsoftware.cn/downloads/ 上传日期:2019-3.20 【温馨提示】由于福昕高级PDF编辑器企业版是共享软件,仅限用于个人学习之目的,请勿用于任何商业目的,并请支持正版软件。

2019-03-20

source insight 4.0.0087安装及破解方法

该软件压缩包包含最新版的SourceInsight官方软件安装包,你可以打开readme.txt文件,里面是安装软件的步骤和破解方法。

2017-10-25

最新版sourceinsight4080破解方法

source Insight V4.00.0080最新版本破解30天试用期解决办法。

2017-02-22

福昕高级PDF编辑器企业版 v9.3.0.10826 破解补丁

该资源是福昕高级PDF编辑器企业版v9.3.0.10826的破解补丁。软件安装包可以去官网下载,网址是:https://www.foxitsoftware.cn/downloads/,资源里面包含有破解步骤说明的txt文件。 资源上传时间:2018-10.16 【温馨提示】由于福昕高级PDF编辑器企业版是共享软件,仅限用于个人学习使用,请勿用于商业目的。

2018-10-16

CodeBlocks 17.12版本安装包及汉化方法

该资源是开源软件C/C++集成开发环境CodeBlocks17.12版本的安装及汉化方法,资源包含有:codeblocks-17.12mingw-setup.exe安装包,汉化补丁文件以及汉化的方法说明。下载压缩包后,直接解压到当前文件夹下即可。

2018-03-16

UltraEdit 25.x版本 注册机

该资源是UltraEdit v25.10版本的全新激活工具,原来的那个激活工具已经失效了,无法激活UltraEdit v25.x版本的了。软件安装包可以去官网下载,网址是:https://www.ultraedit.com/downloads/ultraedit-download/ 下面是激活操作步骤: 1. 将下载好的工具软件复制或剪切到UltraEdit的安装根目录下。 2. 运行该软件工具,在Select the Programe...的下拉选项中选中UltraEdit v25.x -(x64),这是针对64位的,32位的是x86。 3. 然后点击"Patch",弹出对话框,选择"是",然后选中文件:ProtectionPlusDLL.dll,点击“打开”,就会提示注册成功了。提示:你可以把"Backup"的复选框取消掉,也可以不取消。 4. 打开UltraEdit,点击"Support—>关于",就会发现软件激活成功了。 本人亲测可用,所以拿出来分享给有需要的学习者。 【温馨提示】由于UltraEdit是共享软件,仅限用于个人之学习目的,请勿用于商业活动。

2018-06-12

SourceInsight 4095版本安装及破解方法

该资源是SourceInsight 4095版本的安装包及破解方法,该软件当前最新的版本。下载完成后,直接解压到当前目录下即可,破解方法如下: 1、安装官方原版安装包:sourceinsight4095-setup.exe 2、找到安装路径,使用sourceinsight4.exe替换替换原主程序:sourceinsight4.exe,直接复制粘贴,然后覆盖原主程序即可。 3、打开SourceInsight,导入授权文件(Import a new license file):si4.pediy.lic。 【温馨提示】由于SourceInsight是共享软件,仅限用于学习之目的,请勿用于商业目的,并请支持正版软件。

2018-08-29

Python基础教程(第3版) 中文版 高清非扫描版PDF+详细书签

【资源简介】 该资源是《Python基础教程(第3版)》电子书,不是图片扫描版的那种,而是PDF样式的文档,可以使用PDF阅读器复制甚至编辑里面的内容,所以文档内容是非常清晰的,并且是带详细书签的,所以翻阅到指定章节的内容十分方便的。 【本书内容简介】 该书是针对Python 3的全新升级。出版时间:2018-02-01 本书包括Python程序设计的方方面面:首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句;然后循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器;此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识;最后,作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了10个具有实际意义的Python项目的开发过程。 【适合读者】 本书既适合初学者夯实基础,又能帮助Python程序员提升技能,即使是中高级Python程序员,也能从书里找到耳目一新的内容。 【温馨提示】本着资源共享的精神,分享给Python学习者和爱好者,资源分数也设置得比较低了,请勿将该资源用于商业目的。 本书源代码下载地址:ituring.com.cn/book/2118

2018-09-18

UltraEdit 25.x版本 激活工具

该资源是UltraEdit v25.20版本的全新激活工具,之前上传的那个是3.7版本的,有些人评论说激活出问题了,所以上传了这个最新的4.1版本的。 软件安装包可以去官网下载,网址是:https://www.ultraedit.com/downloads/ultraedit-download/ 至于激活步骤,建议百度一下查询吧。 【温馨提示】由于UltraEdit是共享软件,仅限用于个人之学习目的,请勿用于商业活动。

2018-10-15

UltraEdit 26.x版本 激活工具

该资源是UltraEdit 25.20及26.00版本的激活工具。 前面提供的UltraEdit激活工具已经失效了,不建议下载了。UltraEdit也已经发布26.00版本的了,建议去官网下载最新版的。软件安装包可以去官网下载,网址是:https://www.ultraedit.com/downloads/ultraedit-download/,激活步骤如下: IDM_Patch_4.5 是 IDM Solution 公司旗下产品破解器,使用方法如下: 1、安装好 IDM Solution 公司产品,这里以 UltraEdit 为例,其他软件以此类推 2、安装好之后,不要运行 UltraEdit 3、将本文件夹内的 IDM_Patch_4.5.exe 拷贝到 UltraEdit 安装目录下,默认情况下是: 32位:C:\Program Files (x86)\IDM Computer Solutions\UltraEdit 64位:C:\Program Files\IDM Computer Solutions\UltraEdit 4、运行IDM_Patch_4.5.exe,从产品列表里选择需要破解的软件 5、点击右下角的Patch按钮,搞定! <注意事项> 激活时要断网。 上传日期:2019-3.20 【温馨提示】由于UltraEdit是共享软件,仅限用于个人之学习目的,请勿用于任何商业目的,并请支持正版软件。

2019-03-20

Navicat 12 for MySQL注册机

该资源是Navicat系列软件产品的注册机,可以激活Navicat 12 for MySQL官方安装包的最新版本。该注册机工具名称为:Navicat_Keygen_Patch_v3.4.exe。官网下载网址为:http://www.navicat.com.cn/products,可以去这里下载最新版本的安装包。Navicat 12 for MySQL安装好之后,运行Navicat_Keygen_Patch_v3.4.exe文件,至于破解的操作步骤,可以网上查阅详情。本人亲测,可以激活Navicat 12 for MySQL目前最新的版本v12.0.26。该工具还可以激活Navicat其他所有的软件产品。 【温馨提示】由于该软件是共享软件,仅限用于学习目的,请勿用于商业活动。

2018-04-10

最新版sourceinsight4086软件及破解方法

该软件压缩包包含有SourceInsight安装程序,先安装该程序,然后将我们的sourceinsight4.exe替换掉安装路径下的sourceinsight4.exe,如果运行程序后弹出要我们注册的弹出框的话,就使用更新Licence文件,导入si4.pediy.lic文件即可,以上就是破解的方法。

2017-05-12

EditPlus 5.0 64位中文注册版

此资源是EditPlus.5.0.598 64位中文注册版安装包,包含有官方软件安装包,中文汉化包以及5.0版本的注册码,本人亲测可用所以拿出来分享给有需要的人。安装步骤如下: 1. 首先安装官方软件安装包,epp500_64bit.exe。 2. 安装完成后,将中文汉化文件EditPlus.exe文件替换掉EditPlus安装根目录下的同名文件。 3. 打开EditPlus,输入EditPlus 5.0注册码.txt文件中的注册码,就会提示注册成功。 【温馨提示】下载完后,直接解压到当前目录下即可。由于该软件是共享软件,仅限用于学习目的人使用,请勿用于商业活动。

2018-03-29

《疯狂Python讲义》 随书配套资源下载

该资源是《疯狂Python讲义》 随书配套资源的下载,由于资源比较大,无法上传,所以选择了提供百度网盘链接的方式,下载该txt文档,提供了资源下载的网址链接,主要包含的资源内容如下: 【1】随书源代码(书本的示例代码) 【2】课后习题答案(这个很重要哦) 【3】《疯狂Python讲义》所附的工具软件。

2019-03-20

《Go语言从入门到进阶实战(视频教学版)》 配套资源

该资源是《Go语言从入门到进阶实战(视频教学版)》随书配套资源,包含有同步配套教学视频和书中案例源代码等资源。 本书简介:徐波/著 ISBN:978-7-111-59824-4 出版时间:2018-06-01 【说明】由于资源内容比较大,受上传资源文件大小限制,无法全部上传,故提供百度云下载链接的方式。

2019-08-15

Oracle Database11g SQL开发指南+书签 pdf

【资源介绍】该资源是《Oracle Database11g SQL开发指南》书籍的pdf电子书以及该书配套的源码文件。 【内容简介】 《Oracle Database 11g SQL开发指南》深入浅出、全面细致地讲解了如何读取和修改数据库信息,如何使用SQL Plus和SQL Developer,如何使用数据库对象,如何编写PL/SQL程序等内容。随着对《Oracle Database 11g SQL开发指南》学习的深入,读者将循序渐进地掌握最新的SQL特性和工具、性能优化技术、高级查询、Java支持以及XML应用。《Oracle Database 11g SQL开发指南》主要内容:解读SQL Plus和SQL Developer使用SQL SELECT、INSERT、UPDATE和DELETE语句。编写PL/SQL程序。创建表、序列、索引、视图和触发器。编写包含复杂分析功能的高级查询。创建用于处理抽象数据的数据库对象和集合。编写Java程序并使用JDBC访问。racle数据库。使用大对象处理音频、视频等多媒体文件。优化SQL语句以提高其执行效率。探究Oracle数据库处理XML的能力。掌握Oracle Database 11g的最新特性,如PIVOT、UNPIVOT和闪回数据存档等。 【作者简介】 Jason Price是职业咨询专家,Oracle公司前产品经理,拥有英国Bristol大学的物理学科学荣誉学士学位。他对Oracle的众多产品,如数据库、应用服务器和CRM应用程序都做出了卓越的贡献。Jason是一位经Oracle认证的数据库管理员和应用程序开发人员,在软件行业具有15年以上的从业经验,并执笔撰写了多本关于Oracle、Java和.NET的优秀图书。 【目录】 第1章 简介 1 1.1 关系数据库简介 2 1.2 结构化查询语言(SQL)简介 2 1.3 使用SQL*Plus 4 1.3.1 启动SQL*Plus 4 1.3.2 从命令行启动SQL*Plus 5 1.3.3 使用SQL*Plus执行SELECT语句 6 1.4 SQL Developer 7 1.5 创建store模式 9 1.5.1 运行SQL*Plus脚本创建store模式 9 1.5.2 用来创建store模式的DDL语句 10 1.6 添加、修改、删除行 18 1.6.1 向表中添加行 18 1.6.2 修改表中的现有行 19 1.6.3 从表中删除行 20 1.7 BINARY_FLOAT和BINARY_ DOUBLE数据类型 21 1.7.1 BINARY_FLOAT和BINARY_DOUBLE的优点 21 1.7.2 在表中使用BINARY_FLOAT和BINARY_DOUBLE 21 1.7.3 特殊值 22 1.8 退出SQL*Plus 23 1.9 Oracle PL/SQL简介 23 1.10 小结 24 第2章 从数据库表中检索信息 25 2.1 对单表执行SELECT语句 25 2.2 选择一个表中的所有列 26 2.3 使用WHERE子句过滤行 27 2.4 理解行标识符 27 2.5 理解行号 28 2.6 执行算术运算 28 2.6.1 日期运算 29 2.6.2 列运算 30 2.7 使用列别名 31 2.8 使用连接操作合并列的输出结果 32 2.9 理解空值 33 2.10 禁止显示重复行 34 2.11 比较值 35 2.12 使用SQL操作符 37 2.12.1 使用LIKE操作符 37 2.12.2 使用IN操作符 38 2.12.3 使用BETWEEN操作符 39 2.13 使用逻辑操作符 40 2.14 理解操作符的优先级 41 2.15 使用ORDER BY子句对行进行排序 41 2.16 执行使用两个表的SELECT语句 42 2.17 使用表别名 44 2.18 笛卡尔积 45 2.19 执行使用多于两个表的SELECT语句 46 2.20 连接条件和连接类型 47 2.20.1 不等连接 47 2.20.2 外连接 48 2.20.3 自连接 51 2.21 使用SQL/92语法执行连接 52 2.21.1 使用SQL/92标准语法执行两个表的内连接 53 2.21.2 使用USING关键字简化连接 53 2.21.3 使用SQL/92执行多于两个表的内连接 54 2.21.4 使用SQL/92执行多列的内连接 55 2.21.5 使用SQL/92执行外连接 55 2.21.6 使用SQL/92执行自连接 56 2.21.7 使用SQL/92执行交叉 连接 57 2.22 小结 57 第3章 使用SQL*Plus 59 3.1 查看表结构 60 3.2 编辑SQL语句 60 3.3 保存、检索并运行文件 62 3.4 格式化列 65 3.5 设置页面大小 67 3.6 设置行大小 68 3.7 清除列格式 68 3.8 使用变量 69 3.8.1 临时变量 69 3.8.2 已定义变量 72 3.9 创建简单报表 74 3.9.1 在脚本中使用临时变量 74 3.9.2 在脚本中使用已定义变量 75 3.9.3 向脚本中的变量传递值 75 3.9.4 添加页眉和页脚 76 3.9.5 计算小计 78 3.10 从SQL*Plus获取帮助信息 79 3.11 自动生成SQL语句 80 3.12 断开数据库连接并退出SQL*Plus 81 3.13 小结 81 第4章 使用简单函数 83 4.1 使用单行函数 84 4.1.1 字符函数 84 4.1.2 数字函数 92 4.1.3 转换函数 96 4.1.4 正则表达式函数 102 4.2 使用聚合函数 108 4.2.1 AVG函数 109 4.2.2 COUNT函数 110 4.2.3 MAX和MIN函数 110 4.2.4 STDDEV函数 111 4.2.5 SUM函数 111 4.2.6 VARIANCE函数 112 4.3 对行进行分组 112 4.3.1 使用GROUP BY子句对行进行分组 112 4.3.2 调用聚合函数的错误用法 115 4.3.3 使用HAVING子句过滤行组 116 4.3.4 组合使用WHERE和GROUP BY子句 117 4.3.5 组合使用WHERE、GROUP BY和HAVING子句 117 4.4 小结 118 第5章 日期和时间的存储与处理 119 5.1 几个简单的存储和检索日期的例子 120 5.2 使用TO_CHAR()和 TO_DATE()转换时间值 121 5.2.1 使用TO_CHAR()将时间值转换为字符串 121 5.2.2 使用TO_DATE()将字符串转换为时间值 125 5.3 设置默认的日期格式 128 5.4 Oracle对2位年份的处理 129 5.4.1 使用YY格式 129 5.4.2 使用RR格式 130 5.5 使用时间值函数 131 5.5.1 ADD_MONTHS函数 131 5.5.2 LAST_DAY函数 132 5.5.3 MONTHS_BETWEEN函数 133 5.5.4 NEXT_DAY函数 133 5.5.5 ROUND函数 133 5.5.6 SYSDATE 134 5.5.7 TRUNC函数 134 5.6 理解时区 135 5.6.1 与时区有关的函数 136 5.6.2 数据库时区和会话时区 136 5.6.3 获取时区的时差 137 5.6.4 获取时区名 138 5.6.5 将时间值从一个时区转换为另一个时区 138 5.7 使用时间戳 139 5.7.1 使用时间戳类型 139 5.7.2 与时间戳有关的函数 143 5.8 使用时间间隔 148 5.8.1 使用INTERVAL YEAR TO MONTH类型 149 5.8.2 使用INTERVAL DAY TO SECOND类型 150 5.8.3 与时间间隔有关的函数 152 5.9 小结 153 第6章 子查询 155 6.1 子查询的类型 155 6.2 编写单行子查询 156 6.2.1 在WHERE子句中使用子查询 156 6.2.2 使用其他单行操作符 157 6.2.3 在HAVING子句中使用子查询 157 6.2.4 在FROM子句中使用子查询(内联视图) 159 6.2.5 可能碰到的错误 159 6.3 编写多行子查询 160 6.3.1 在多行子查询中使用IN操作符 161 6.3.2 在多行子查询中使用ANY操作符 162 6.3.3 在多行子查询中使用ALL操作符 162 6.4 编写多列子查询 162 6.5 编写关联子查询 163 6.5.1 关联子查询的例子 163 6.5.2 在关联子查询中使用EXISTS和NOT EXISTS 164 6.6 编写嵌套子查询 166 6.7 编写包含子查询的UPDATE和DELETE语句 168 6.7.1 编写包含子查询的UPDATE语句 168 6.7.2 编写包含子查询的DELETE语句 168 6.8 小结 169 第7章 高级查询 171 7.1 使用集合操作符 172 7.1.1 示例表 172 7.1.2 使用UNION ALL操作符 173 7.1.3 使用UNION操作符 174 7.1.4 使用INTERSECT操作符 175 7.1.5 使用MINUS操作符 175 7.1.6 组合使用集合操作符 176 7.2 使用TRANSLATE函数 178 7.3 使用DECODE()函数 179 7.4 使用CASE表达式 181 7.4.1 使用简单CASE表达式 181 7.4.2 使用搜索CASE表达式 182 7.5 层次化查询 183 7.5.1 示例数据 183 7.5.2 使用CONNECT BY和 START WITH子句 185 7.5.3 使用伪列LEVEL 185 7.5.4 格式化层次化查询的结果 186 7.5.5 从非根节点开始遍历 187 7.5.6 在START WITH子句中使用子查询 187 7.5.7 从下向上遍历树 188 7.5.8 从层次查询中删除节点和分支 188 7.5.9 在层次化查询中加入其他条件 189 7.6 使用扩展的GROUP BY子句 190 7.7 使用ROLLUP子句 192 7.7.1 使用CUBE子句 194 7.7.2 使用GROUPING函数 195 7.7.3 使用GROUPING SETS子句 198 7.7.4 使用GROUPING_ID函数 199 7.7.5 在GROUP BY子句中多次使用一个列 201 7.7.6 使用GROUP_ID函数 201 7.8 使用分析函数 203 7.8.1 示例表 203 7.8.2 使用评级函数 204 7.8.3 使用反百分点函数 211 7.8.4 使用窗口函数 211 7.8.5 使用报表函数 216 7.8.6 使用LAG和LEAD函数 218 7.8.7 使用FIRST和LAST函数 219 7.8.8 使用线性回归函数 219 7.8.9 使用假想评级与分布函数 221 7.9 使用MODEL子句 221 7.9.1 MODEL子句示例 222 7.9.2 用位置标记和符号标记访问数据单元 223 7.9.3 用BETWEEN和AND返回特定范围内的数据单元 224 7.9.4 用ANY和IS ANY访问所有的数据单元 224 7.9.5 用CURRENTV()获取某个维度的当前值 225 7.9.6 用FOR循环访问数据单元 226 7.9.7 处理空值和缺失值 227 7.9.8 更新已有的单元 229 7.10 使用PIVOT和UNPIVOT子句 230 7.10.1 PIVOT子句示例 230 7.10.2 转换多个列 231 7.10.3 在转换中使用多个聚合函数 232 7.10.4 使用UNPIVOT子句 233 7.11 小结 234 第8章 修改表的内容 237 8.1 使用INSERT语句添加行 237 8.1.1 省略列的列表 239 8.1.2 为列指定空值 239 8.1.3 在列值中使用单引号和双引号 239 8.1.4 从一个表向另外一个表复制行 239 8.2 使用UPDATE语句修改行 240 8.3 RETURNING子句 241 8.4 使用DELETE语句删除行 242 8.5 数据库的完整性 242 8.5.1 主键约束 242 8.5.2 外键约束 243 8.6 使用默认值 244 8.7 使用MERGE合并行 245 8.8 数据库事务 247 8.8.1 事务的提交和回滚 247 8.8.2 事务的开始与结束 248 8.8.3 保存点 249 8.8.4 事务的ACID特性 251 8.8.5 并发事务 251 8.8.6 事务锁 252 8.8.7 事务隔离级别 253 8.8.8 SERIALIZABLE事务的一个例子 254 8.9 查询闪回 254 8.9.1 使用闪回的授权 254 8.9.2 时间查询闪回 255 8.9.3 系统变更号查询闪回 256 8.10 小结 258 第9章 用户、特权和角色 259 9.1 用户 260 9.1.1 创建用户 260 9.1.2 修改用户密码 261 9.1.3 删除用户 261 9.2 系统特权 262 9.2.1 向用户授予系统特权 263 9.2.2 检查授予用户的系统特权 263 9.2.3 使用系统特权 264 9.2.4 撤消用户的系统特权 264 9.3 对象特权 265 9.3.1 向用户授予对象特权 265 9.3.2 检查已授予的对象特权 266 9.3.3 检查已接受的对象特权 267 9.3.4 使用对象特权 269 9.3.5 同名对象 269 9.3.6 公共同名对象 270 9.3.7 撤消用户的对象特权 271 9.4 角色 271 9.4.1 创建角色 271 9.4.2 为角色授权 272 9.4.3 将角色授予用户 272 9.4.4 检查授予用户的角色 273 9.4.5 检查授予角色的系统特权 274 9.4.6 检查授予角色的对象特权 274 9.4.7 使用授予角色的特权 276 9.4.8 默认角色 276 9.4.9 撤消角色 277 9.4.10 从角色中撤消特权 277 9.4.11 删除角色 277 9.5 审计 277 9.5.1 执行审计需要的特权 277 9.5.2 审计示例 278 9.5.3 审计跟踪视图 279 9.6 小结 280 第10章 创建表、序列、索引和视图 281 10.1 表 282 10.1.1 创建表 282 10.1.2 获得有关表的信息 283 10.1.3 获得表中列的信息 284 10.1.4 修改表 285 10.1.5 重命名表 294 10.1.6 向表中添加注释 294 10.1.7 截断表 295 10.1.8 删除表 295 10.2 序列 295 10.2.1 创建序列 295 10.2.2 获取有关序列的信息 297 10.2.3 使用序列 298 10.2.4 使用序列填充主键 299 10.2.5 修改序列 300 10.2.6 删除序列 301 10.3 索引 301 10.3.1 创建B-树索引 302 10.3.2 创建基于函数的索引 303 10.3.3 获取有关索引的信息 303 10.3.4 获取列索引的信息 304 10.3.5 修改索引 304 10.3.6 删除索引 305 10.3.7 创建位图索引 305 10.4 视图 305 10.4.1 创建并使用视图 306 10.4.2 修改视图 313 10.4.3 删除视图 314 10.5 闪回数据归档 314 10.6 小结 316 第11章 PL/SQL编程简介 317 11.1 块结构 318 11.2 变量和类型 319 11.3 条件逻辑 320 11.4 循环 320 11.4.1 简单循环 321 11.4.2 WHILE循环 322 11.4.3 FOR循环 322 11.5 游标 323 11.5.1 步骤1:声明用于保存列值的变量 323 11.5.2 步骤2:声明游标 323 11.5.3 步骤3:打开游标 324 11.5.4 步骤4:从游标中取得记录 324 11.5.5 步骤5:关闭游标 325 11.5.6 完整的示例:product_cursor.sql 325 11.5.7 游标与FOR循环 326 11.5.8 OPEN-FOR语句 327 11.5.9 无约束游标 329 11.6 异常 330 11.6.1 ZERO_DIVIDE异常 332 11.6.2 DUP_VAL_ON_INDEX异常 333 11.6.3 INVALID_NUMBER异常 333 11.6.4 OTHERS异常 333 11.7 过程 334 11.7.1 创建过程 334 11.7.2 调用过程 337 11.7.3 获取有关过程的信息 338 11.7.4 删除过程 338 11.7.5 查看过程中的错误 338 11.8 函数 339 11.8.1 创建函数 339 11.8.2 调用函数 340 11.8.3 获取有关函数的信息 341 11.8.4 删除函数 341 11.9 包 341 11.9.1 创建包规范 342 11.9.2 创建包体 342 11.9.3 调用包中的函数和过程 344 11.9.4 获取有关包中函数和过程的信息 344 11.9.5 删除包 345 11.10 触发器 345 11.10.1 触发器运行的时机 345 11.10.2 设置示例触发器 345 11.10.3 创建触发器 346 11.10.4 激活触发器 347 11.10.5 获取有关触发器的信息 348 11.10.6 禁用和启用触发器 350 11.10.7 删除触发器 350 11.11 Oracle Database 11g新增加的PL/SQL特性 350 11.11.1 SIMPLE_INTEGER类型 350 11.11.2 在PL/SQL中使用序列 351 11.11.3 PL/SQL本地机器代码生成 352 11.12 小结 353 第12章 数据库对象 355 12.1 对象简介 356 12.2 创建对象类型 356 12.3 使用DESCRIBE获取有关对象类型的信息 358 12.4 在数据库表中使用对象类型 359 12.4.1 列对象 359 12.4.2 对象表 361 12.4.3 对象标识符和对象引用 365 12.4.4 比较对象值 367 12.5 在PL/SQL中使用对象 369 12.5.1 get_products()函数 370 12.5.2 display_product()过程 371 12.5.3 insert_product()过程 372 12.5.4 update_product_price()过程 373 12.5.5 get_product()函数 373 12.5.6 update_product()过程 374 12.5.7 get_product_ref()函数 375 12.5.8 delete_product()过程 375 12.5.9 product_lifecycle()过程 376 12.5.10 product_lifecycle2()过程 377 12.6 类型继承 378 12.7 用子类型对象代替超类型对象 380 12.7.1 SQL例子 380 12.7.2 PL/SQL例子 381 12.7.3 NOT SUBSTITUTABLE对象 382 12.8 其他有用的对象函数 383 12.8.1 IS OF() 383 12.8.2 TREAT() 387 12.8.3 SYS_TYPEID() 391 12.9 NOT INSTANTIABLE对象类型 391 12.10 用户自定义的构造函数 393 12.11 重载方法 396 12.12 通用调用 398 12.13 小结 400 第13章 集合 401 13.1 集合简介 401 13.2 创建集合类型 402 13.2.1 创建变长数组类型 402 13.2.2 创建嵌套表类型 403 13.3 使用集合类型定义表列 403 13.3.1 使用变长数组类型定义表列 403 13.3.2 使用嵌套表类型定义表列 404 13.4 获取集合信息 404 13.4.1 获取变长数组信息 404 13.4.2 获得嵌套表信息 405 13.5 填充集合元素 407 13.5.1 填充变长数组元素 407 13.5.2 填充嵌套表元素 407 13.6 检索集合元素 408 13.6.1 检索变长数组元素 408 13.6.2 检索嵌套表元素 409 13.7 使用TABLE()将集合视为一系列行 409 13.7.1 将TABLE()用于变长数组 410 13.7.2 将TABLE()用于嵌套表 411 13.8 更改集合元素 411 13.8.1 更改变长数组元素 411 13.8.2 更改嵌套表元素 412 13.9 使用映射方法比较嵌套表的内容 413 13.10 使用CAST()将集合从一种类型转换为另一种类型 415 13.10.1 使用CAST()将变长数组转换为嵌套表 416 13.10.2 使用CAST()将嵌套表转换为变长数组 416 13.11 在PL/SQL中使用集合 417 13.11.1 操作变长数组 417 13.11.2 操作嵌套表 419 13.11.3 PL/SQL集合方法 421 13.12 多级集合类型 431 13.13 Oracle Database 10g对集合的增强 433 13.13.1 关联数组 434 13.13.2 更改元素类型的大小 435 13.13.3 增加变长数组的元素数目 435 13.13.4 在临时表中使用变长数组 435 13.13.5 为嵌套表的存储表使用不同的表空间 435 13.13.6 嵌套表对ANSI的支持 436 13.14 小结 444 第14章 大对象 447 14.1 大对象(LOB)简介 448 14.2 示例文件 448 14.3 理解大对象类型 449 14.4 创建包含大对象的表 449 14.5 在SQL中使用大对象 450 14.5.1 使用CLOB和BLOB 450 14.5.2 使用BFILE 452 14.6 在PL/SQL中使用大对象 454 14.6.1 APPEND() 456 14.6.2 CLOSE() 457 14.6.3 COMPARE() 457 14.6.4 COPY() 458 14.6.5 CREATETEMPORARY() 459 14.6.6 ERASE() 460 14.6.7 FILECLOSE() 460 14.6.8 FILECLOSEALL() 461 14.6.9 FILEEXISTS() 461 14.6.10 FILEGETNAME() 462 14.6.11 FILEISOPEN() 462 14.6.12 FILEOPEN() 463 14.6.13 FREETEMPORARY() 463 14.6.14 GETCHUNKSIZE() 464 14.6.15 GET_STORAGE_LIMIT() 464 14.6.16 GETLENGTH() 464 14.6.17 INSTR() 465 14.6.18 ISOPEN() 466 14.6.19 ISTEMPORARY() 467 14.6.20 LOADFROMFILE&#40;&#41; 467 14.6.21 LOADBLOBFROMFILE&#40;&#41; 468 14.6.22 LOADCLOBFROMFILE&#40;&#41; 469 14.6.23 OPEN() 470 14.6.24 READ() 471 14.6.25 SUBSTR() 471 14.6.26 TRIM() 473 14.6.27 WRITE() 473 14.6.28 WRITEAPPEND() 474 14.6.29 PL/SQL示例过程 475 14.7 理解LONG和LONG RAW类型 492 14.7.1 示例表 492 14.7.2 向LONG和LONG RAW列添加数据 492 14.7.3 将LONG和LONG RAW列转换为LOB 493 14.8 Oracle Database 10g对大对象的增强 494 14.8.1 CLOB和NCLOB对象之间的隐式转换 494 14.8.2 在触发器中使用LOB时:new属性的用法 495 14.9 Oracle Database 11g对大对象的增强 495 14.9.1 加密LOB数据 496 14.9.2 压缩LOB数据 499 14.9.3 删除LOB重复数据 499 14.10 小结 500 第15章 在Java程序中运行SQL 501 15.1 准备工作 502 15.2 配置计算机 502 15.2.1 设置ORACLE_HOME环境变量 502 15.2.2 设置JAVA_HOME环境变量 503 15.2.3 设置PATH环境变量 503 15.2.4 设置CLASSPATH环境变量 504 15.2.5 设置LD_LIBRARY_PATH环境变量 504 15.3 Oracle JDBC驱动程序 505 15.3.1 Thin驱动程序 505 15.3.2 OCI驱动程序 505 15.3.3 服务器端内部驱动程序 505 15.3.4 服务器端Thin驱动程序 505 15.4 导入JDBC包 506 15.5 注册Oracle JDBC驱动程序 506 15.6 打开数据库连接 506 15.6.1 使用getConnection()方法连接数据库 507 15.6.2 数据库URL 507 15.6.3 使用Oracle数据源连接数据库 508 15.7 创建JDBC Statement对象 511 15.8 从数据库中检索行 511 15.8.1 步骤1:创建和填充ResultSet对象 511 15.8.2 步骤2:从ResultSet对象中读取列值 512 15.8.3 步骤3:关闭ResultSet对象 514 15.9 向数据库中添加行 514 15.10 更改数据库的行 515 15.11 删除数据库的行 516 15.12 处理数字 516 15.13 处理数据库Null值 517 15.14 控制数据库事务 519 15.15 执行DDL语句 519 15.16 处理异常 520 15.17 关闭JDBC对象 521 15.18 示例程序:BasicExample1.java 522 15.18.1 编译BasicExample1 527 15.18.2 运行BasicExample1 527 15.19 预备SQL语句 529 15.20 示例程序:BasicExample2.java 531 15.21 Oracle JDBC扩展 534 15.21.1 oracle.sql包 534 15.21.2 oracle.jdbc包 537 15.21.3 示例程序: BasicExample3.java 540 15.22 小结 543 第16章 SQL优化 545 16.1 SQL优化简介 545 16.2 使用WHERE子句过滤行 546 16.3 使用表连接而不是多个查询 546 16.4 执行连接时使用完全限定的列引用 547 16.5 使用CASE表达式而不是多个查询 548 16.6 添加表索引 549 16.7 使用WHERE而不是HAVING 550 16.8 使用UNION ALL而不是UNION 550 16.9 使用EXISTS而不是IN 552 16.10 使用EXISTS而不是DISTINCT 552 16.11 使用GROUPING SETS而不是CUBE 553 16.12 使用绑定变量 553 16.12.1 不相同的SQL语句 554 16.12.2 使用绑定变量定义相同SQL语句 554 16.12.3 列出和输出绑定变量 555 16.12.4 使用绑定变量存储PL/SQL函数的返回值 555 16.12.5 使用绑定变量存储REFCURSOR的行 556 16.13 比较执行查询的成本 556 16.13.1 检查执行计划 557 16.13.2 比较执行计划 562 16.14 为优化器传递提示 563 16.15 其他优化工具 564 16.15.1 Oracle Enterprise Manager Diagnostics Pack 565 16.15.2 Automatic Database Diagnostic Monitor 565 16.16 小结 566 第17章 XML和Oracle数据库 567 17.1 XML简介 567 17.2 从关系数据生成XML 568 17.2.1 XMLELEMENT() 568 17.2.2 XMLATTRIBUTES() 571 17.2.3 XMLFOREST() 571 17.2.4 XMLAGG() 573 17.2.5 XMLCOLATTVAL() 575 17.2.6 XMLCONCAT() 576 17.2.7 XMLPARSE() 576 17.2.8 XMLPI() 577 17.2.9 XMLCOMMENT() 577 17.2.10 XMLSEQUENCE() 578 17.2.11 XMLSERIALIZE() 579 17.2.12 PL/SQL范例:将XML数据写入文件 579 17.2.13 XMLQUERY() 581 17.3 将XML保存到数据库中 585 17.3.1 范例XML文件 585 17.3.2 创建范例XML模式 586 17.3.3 从范例XML模式检索信息 588 17.3.4 更新范例XML模式中的信息 592 17.4 小结 595 附录A Oracle数据类型 597 【温馨提示】压缩文件直接解压到当前文件夹下即可,解压后包括一个pdf文档和源码文件夹。

2018-07-25

Source Insight4089版本安装及破解方法

直接解压该压缩包即可。该软件压缩包包含最新版的SourceInsight官方软件安装包,你可以打开readme.txt文件,里面是安装软件的步骤和破解方法。

2018-01-18

最新版SourceInsight4088安装及破解方法

该软件压缩包包含最新版的SourceInsight官方软件安装包,你可以打开readme.txt文件,里面是安装软件的步骤和破解方法。

2017-12-20

Ubuntu12.04下运行Qt程序无法显示文本字符串问题

发表于 2015-10-29 最后回复 2015-11-06

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

TA关注的人 TA的粉丝

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