第三章 标准库类型

第三章  标准库类型
第三章  标准库类型

第三章标准库类型

习题3.1

用适当的using 声明,而不用std::前缀,访问标准库中的名字,重新编写2.3节的程序,计算一给定数的给定次幂的结果。【解答】

#include

using std::cin;

using std::cout;

int main()

{

// 局部对象

int base, exponent;

long result=1;

// 读入底数和指数

cout << "Enter base and exponent:" << endl;

cin >> base >> exponent;

if (exponent < 0) {

cout << "Exponent can't be smaller than 0" << endl;

return -1;

}

if (exponent > 0) {

// 计算底数的指数次方

for (int cnt = 1; cnt <= exponent; ++cnt)

result *= base;

}

cout << base

<< " raised to the power of "

<< exponent << ": "

<< result << endl;

return 0;

}

习题3.2

什么是默认构造函数?

【解答】

默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式,就会使用默认构造函数。如果用户定义的类中没有显式定义任何构造函数,编译器就会自动为该类生成默认构造函数,称为合成的默认构造函数(synthesized default constructor)。

习题3.3

列举出三种初始化string 对象的方法。

【解答】

(1) 不带初始化式,使用默认构造函数初始化string 对象。

(2) 使用一个已存在的string 对象作为初始化式,将新创建的string 对象初始化为已存在对象的副本。

(3) 使用字符串字面值作为初始化式,将新创建的string 对象初始化为字符串字面值的副本。

习题3.4

s 和s2 的值分别是什么?

string s;

int main() {

string s2;

}

【解答】

s 和s2 的值均为空字符串。

习题3.5

编写程序实现从标准输入每次读入一行文本。然后改写程序,每次读入一个单

词。

【解答】

//从标准输入每次读入一行文本

#include

#include

using namespace std;

int main()

{

string line;

// 一次读入一行,直至遇见文件结束符

while (getline(cin, line))

cout << line << endl; // 输出相应行以进行验证

return 0;

}

修改后程序如下:

//从标准输入每次读入一个单词

#include

#include

using namespace std;

int main()

{

string word;

// 一次读入一个单词,直至遇见文件结束符

while (cin >> word)

cout << word << endl; // 输出相应单词以进行验证

return 0;

}

注意,一般而言,应该尽量避免使用using 指示而使用using 声明(参见17.2.4

节),因为如果应用程序中使用了多个库,使用using 指示引入这些库中定义

的名字空间,容易导致名字冲突。但本书中的程序都只使用了标准库,没有使用其他库。使用using 指示引入名字空间std 中定义的所有名字不会发生名字冲突。因此为了使得代码更为简洁以节省篇幅,本书的许多代码中都使用了using 指示using namespace std;来引入名字空间std。另外,本题中并未要求输出,加入输出是为了更清楚地表示读入的结果。本书后面部分有些地方与此类似处理,不再赘述。

习题3.6

解释string 类型的输入操作符和getline 函数分别如何处理空白字符。

【解答】

string 类型的输入操作符对空白字符的处理:读取并忽略有效字符(非空白字符)之前所有的空白字符,然后读取字符直至再次遇到空白字符,读取终止(该空白字符仍留在输入流中)。

getline 函数对空白字符的处理:不忽略行开头的空白字符,读取字符直至遇到换行符,读取终止并丢弃换行符(换行符从输入流中去掉但并不存储在string 对象中)。

习题3.7

编一个程序读入两个string 对象,测试它们是否相等。若不相等,则指出两个中哪个较大。接着,改写程序测试它们的长度是否相等,若不相等,则指出两个中哪个较长。

【解答】

测试两个string 对象是否相等的程序:

#include

#include

using namespace std;

int main()

{

string s1, s2;

// 读入两个string 对象

cout << "Enter two strings:" << endl;

C++ Primer(4 版)习题解答

41

cin >> s1 >> s2;

// 测试两个string 对象是否相等

if (s1 == s2)

cout << "They are equal." << endl;

else if (s1 > s2)

cout << "\"" << s1 << "\" is bigger than"

<< " \"" << s2 << "\"" << endl;

else

cout << "\"" << s2 << "\" is bigger than"

<< " \"" << s1 << "\"" << endl;

return 0;

}

测试两个string 对象的长度是否相等的程序:

#include

#include

using namespace std;

int main()

{

string s1, s2;

// 读入两个string 对象

cout << "Enter two strings:" << endl;

cin >> s1 >> s2;

// 比较两个string 对象的长度

string::size_type len1, len2;

C++ Primer(4 版)习题解答

42

len1 = s1.size();

len2 = s2.size();

if (len1 == len2)

cout << "They have same length." << endl;

else if (len1 > len2)

cout << "\"" << s1 << "\" is longer than"

<< " \"" << s2 << "\"" << endl;

else

cout << "\"" << s2 << "\" is longer than"

<< " \"" << s1 << "\"" << endl;

return 0;

}

习题3.8

编一个程序,从标准输入读取多个string 对象,把它们连接起来存放到一个更大的string 对象中,并输出连接后的string 对象。接着,改写程序,将连接后相邻string 对象以空格隔开。

【解答】

#include

#include

using namespace std;

int main()

{

string result_str, str;

// 读入多个string 对象并进行连接

C++ Primer(4 版)习题解答

43

cout << "Enter strings(Ctrl+Z to end):" << endl;

while (cin>>str)

result_str = result_str + str;

// 输出连接后的string 对象

cout << "String equal to the concatenation of these strings is:"

<< endl << result_str << endl;

return 0;

}

改写后的程序:

#include

#include

using namespace std;

int main()

{

string result_str, str;

// 读入多个string 对象并进行连接

cout << "Enter strings(Ctrl+Z to end):" << endl;

cin >> result_str;//读入第一个string 对象,放到结果对象中

while (cin>>str)

result_str = result_str + ' ' + str;

// 输出连接后的string 对象

cout << "String equal to the concatenation of these strings is:"

<< endl << result_str << endl;

return 0;

C++ Primer(4 版)习题解答

44

}

习题3.9

下列程序实现什么功能?实现合法吗?如果不合法,说明理由。

string s;

cout << s[0] << endl;

【解答】

该程序段输出string 对象s 所对应字符串的第一个字符。

实现不合法。因为s 是一个空字符串,其长度为0,因此s[0]是无效的。

注意,在一些编译器(如Microsoft Visual C++ .NET 2003)的实现中,该程序段并不出现编译错误。

习题3.10

编一个程序,从string 对象中去掉标点符号。要求输入到程序的字符串必须含有标点符号,输出结果则是去掉标点符号后的string 对象。

【解答】

#include

#include

#include

using namespace std;

int main()

{

string s, result_str;

bool has_punct = false;//用于标记字符串中有无标点

char ch;

//输入字符串

C++ Primer(4 版)习题解答

45

cout << "Enter a string:" << endl;

getline(cin, s);

//处理字符串:去掉其中的标点

for (string::size_type index = 0; index != s.size(); ++index)

{

ch = s[index];

if (ispunct(ch))

has_punct = true;

else

result_str += ch;

}

if (has_punct)

cout << "Result:" << endl << result_str <

else {

cout << "No punctuation character in the string?!" << endl;

return -1;

}

return 0;

}

习题3.11

下面哪些vector 定义不正确?

(a) vector< vector > ivec;

(b) vector svec = ivec ;

(c) vector svec(10,"null");

C++ Primer(4 版)习题解答

46

【解答】

(b)不正确。因为svec 定义为保存string 对象的vector 对象,而ivec 是保存vector 对象的vector 对象(即ivec 是vector 的vector),二者的元素类型不同,所以不能用ivec 来初始化svec。

习题3.12

下列每个vector 对象中元素个数是多少?各元素的值是什么?

(a) vector ivec1;

(b) vector ivec2(10);

(c) vector ivec3(10,42);

(d) vector svec1;

(e) vector svec2(10);

(f) vector svec3(10,"hello");

【解答】

(a) 元素个数为0。

(b) 元素个数为10,各元素的值均为0。

(c) 元素个数为10,各元素的值均为42。

(d) 元素个数为0。

(e) 元素个数为10,各元素的值均为空字符串。

(f) 元素个数为10,各元素的值均为"hello"。

习题3.13

读一组整数到vector 对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。然后修改程序:头尾元素两两配对(第一个和最后一个,第二个和倒数第二个,以此类推),计算每对元素的和,并输出。

【解答】

//读一组整数到vector 对象,计算并输出每对相邻元素的和

C++ Primer(4 版)习题解答

47

#include

#include

using namespace std;

int main()

{

vector ivec;

int ival;

// 读入数据到vector 对象

cout << "Enter numbers(Ctrl+Z to end):" << endl;

while (cin>>ival)

ivec.push_back(ival);

// 计算相邻元素的和并输出

if (ivec.size() == 0) {

cout << "No element?!" << endl;

return -1;

}

cout << "Sum of each pair of adjacent elements in the vector:"

<< endl;

for (vector::size_type ix = 0; ix < ivec.size()-1;

ix = ix + 2) {

cout << ivec[ix] + ivec[ix+1] << "\t";

if ( (ix+1) % 6 == 0) // 每行输出6 个和

cout << endl;

}

C++ Primer(4 版)习题解答

48

if (ivec.size() % 2 != 0) // 提示最后一个元素没有求和

cout << endl

<< "The last element is not been summed "

<< "and its value is "

<< ivec[ivec.size()-1] << endl;

return 0;

}

修改后的程序:

//读一组整数到vector 对象,计算首尾配对元素的和并输出

#include

#include

using namespace std;

int main()

{

vector ivec;

int ival;

//读入数据到vector 对象

cout << "Enter numbers:" << endl;

while (cin>>ival)

ivec.push_back(ival);

//计算首尾配对元素的和并输出

if (ivec.size() == 0) {

cout << "No element?!" << endl;

return -1;

C++ Primer(4 版)习题解答

49

}

cout << "Sum of each pair of counterpart elements in the vector:"

<< endl;

vector::size_type cnt = 0;

for (vector::size_type first = 0, last = ivec.size() - 1;

first < last; ++first, --last) {

cout << ivec[first] + ivec[last] << "\t";

++cnt;

if ( cnt % 6 == 0) //每行输出6 个和

cout << endl;

}

if (first == last) //提示居中元素没有求和

cout << endl

<< "The center element is not been summed "

<< "and its value is "

<< ivec[first] << endl;

return 0;

}

习题3.14

读入一段文本到vector 对象,每个单词存储为vector 中的一个元素。把vector 对象中每个单词转化为大写字母。输出vector 对象中转化后的元素,每8 个单词为一行输出。

//读入一段文本到vector 对象,每个单词存储为vector 中的一个元素。C++ Primer(4 版)习题解答

50

//把vector 对象中每个单词转化为大写字母。

//输出vector 对象中转化后的元素,每8 个单词为一行输出

#include

#include

#include

#include

using namespace std;

int main()

{

vector svec;

string str;

// 读入文本到vector 对象

cout << "Enter text(Ctrl+Z to end):" << endl;

while (cin>>str)

svec.push_back(str);

//将vector 对象中每个单词转化为大写字母,并输出

if (svec.size() == 0) {

cout << "No string?!" << endl;

return -1;

}

cout << "Transformed elements from the vector:"

<< endl;

for (vector::size_type ix = 0; ix != svec.size(); ++ix) {

C++ Primer(4 版)习题解答

51

for (string::size_type index = 0; index != svec[ix].size();

++index)

if (islower(svec[ix][index]))

//单词中下标为index 的字符为小写字母

svec[ix][index] = toupper(svec[ix][index]);

cout << svec[ix] << " ";

if ((ix + 1) % 8 == 0)//每8 个单词为一行输出

cout << endl;

}

return 0;

}

习题3.15

下面程序合法吗?如果不合法,如何更正?

vector ivec;

ivec[0] = 42;

不合法。因为ivec 是空的vector 对象,其中不含任何元素,而下标操作只

能用于获取已存在的元素。

更正:将赋值语句改为语句ivec.push_back(42);。

习题3.16

列出三种定义vector 对象的方法,给定10 个元素,每个元素值为42。指出是否还有更好的实现方法,并说明为什么。

【解答】

方法一:

vector ivec(10, 42);

C++ Primer(4 版)习题解答

52

方法二:

vector ivec(10);

for (ix = 0; ix < 10; ++ix)

ivec[ix] = 42;

方法三:

vector ivec(10);

for (vector::iterator iter = ivec.begin();

iter != ivec.end(); ++iter)

*iter = 42;

方法四:

vector ivec;

for (cnt = 1; cnt <= 10; ++cnt)

ivec.push_back(42);

方法五:

vector ivec;

vector::iterator iter = ivec.end();

for (int i = 0; i != 10; ++i) {

ivec.insert(iter, 42);

iter = ivec.end();

}

各种方法都可达到目的,也许最后两种方法更好一些。它们使用标准库中定义的容器操作在容器中增添元素,无需在定义vector 对象时指定容器的大小,比较灵活而且不容易出错。

习题3.17

C++ Primer(4 版)习题解答

53

重做3.3.2 节的习题,用迭代器而不是下标操作来访问vector 中的元素。【解答】

重做习题3.13 如下:

//读一组整数到vector 对象,计算并输出每对相邻元素的和

//使用迭代器访问vector 中的元素

#include

#include

using namespace std;

int main()

{

vector ivec;

int ival;

//读入数据到vector 对象

cout << "Enter numbers(Ctrl+Z to end):" << endl;

while (cin>>ival)

ivec.push_back(ival);

//计算相邻元素的和并输出

if (ivec.size() == 0) {

cout << "No element?!" << endl;

return -1;

}

cout << "Sum of each pair of adjacent elements in the vector:" << endl;

vector::size_type cnt = 0;

C++ Primer(4 版)习题解答

54

for (vector::iterator iter = ivec.begin();

iter < ivec.end()-1;

iter = iter + 2) {

cout << *iter + *(iter+1) << "\t";

++cnt;

if ( cnt % 6 == 0) //每行输出6 个和

cout << endl;

}

if (ivec.size() % 2 != 0) //提示最后一个元素没有求和

cout << endl

<< "The last element is not been summed "

<< "and its value is "

<< *(ivec.end()-1) << endl;

return 0;

}

//读一组整数到vector 对象,计算首尾配对元素的和并输出

//使用迭代器访问vector 中的元素

#include

#include

using namespace std;

int main()

{

vector ivec;

int ival;

C++ Primer(4 版)习题解答

55

//读入数据到vector 对象

cout << "Enter numbers(Ctrl+Z to end):" << endl;

while (cin>>ival)

ivec.push_back(ival);

//计算首尾配对元素的和并输出

if (ivec.size() == 0) {

cout << "No element?!" << endl;

return -1;

}

cout << "Sum of each pair of counterpart elements in the vector:" << endl;

vector::size_type cnt=0;

for (vector::iterator first = ivec.begin(),

last = ivec.end() - 1;

first < last;

++first, --last) {

cout << *first + *last << "\t";

++cnt;

if ( cnt % 6 == 0) //每行输出6 个和

cout << endl;

}

if (first == last) //提示居中元素没有求和

cout << endl

<< "The center element is not been summed "

C++ Primer(4 版)习题解答

56

<< "and its value is "

<< *first << endl;

return 0;

}

重做习题3.14 如下:

//读入一段文本到vector 对象,每个单词存储为vector 中的一个元素。//把vector 对象中每个单词转化为大写字母。

//输出vector 对象中转化后的元素,每8 个单词为一行输出。

//使用迭代器访问vector 中的元素

#include

#include

#include

#include

using namespace std;

int main()

{

vector svec;

string str;

//读入文本到vector 对象

cout << "Enter text(Ctrl+Z to end):" << endl;

while (cin>>str)

svec.push_back(str);

//将vector 对象中每个单词转化为大写字母,并输出

if (svec.size() == 0) {

C++ Primer(4 版)习题解答

57

cout << "No string?!" << endl;

return -1;

}

cout << "Transformed elements from the vector:"

<< endl;

vector::size_type cnt = 0;

for (vector::iterator iter = svec.begin();

iter != svec.end(); ++iter) {

for (string::size_type index = 0; index != (*iter).size();

++index)

if (islower((*iter)[index]))

//单词中下标为index 的字符为小写字母

(*iter)[index] = toupper((*iter)[index]);

cout << *iter << " ";

++cnt;

if (cnt % 8 == 0)//每8 个单词为一行输出

cout << endl;

}

return 0;

}

习题3.18

编写程序来创建有10 个元素的vector 对象。用迭代器把每个元素值改为当前值的2 倍。

【解答】

C++ Primer(4 版)习题解答

58

//创建有10 个元素的vector 对象,

//然后使用迭代器将每个元素值改为当前值的2 倍

#include

#include

using namespace std;

int main()

{

vector ivec(10, 20);//每个元素的值均为20

//将每个元素值改为当前值的2 倍

for (vector::iterator iter = ivec.begin();

iter != ivec.end(); ++iter)

*iter = (*iter)*2;

return 0;

}

习题3.19

验证习题3.18 的程序,输出vector 的所有元素。

【解答】

//创建有10 个元素的vector 对象,

//然后使用迭代器将每个元素值改为当前值的2 倍并输出

#include

#include

using namespace std;

int main()

{

C++ Primer(4 版)习题解答

59

vector ivec(10, 20);//每个元素的值均为20

//将每个元素值改为当前值的2 倍并输出

for (vector::iterator iter = ivec.begin();

iter != ivec.end(); ++iter) {

*iter = (*iter)*2;

cout << *iter << " ";

}

return 0;

}

习题3.20

解释一下在上几个习题的程序实现中你用了哪种迭代器,并说明原因。

【解答】

上述几个习题的程序实现中使用了类型分别为vector::iterator 和vector ::iterator 的迭代器,通过这些迭代器分别访问元素类型为

int 和string 的vector 对象中的元素。

习题3.21

何时使用const 迭代器?又在何时使用const_iterator?解释两者的区别。【解答】

const 迭代器是迭代器常量,该迭代器本身的值不能修改,即该迭代器在定义时需要初始化,而且初始化之后,不能再指向其他元素。若需要指向固定元素的迭代器,则可以使用const 迭代器。

const_iterator 是一种迭代器类型,对这种类型的迭代器解引用会得到一个指向const 对象的引用,即通过这种迭代器访问到的对象是常量。该对象不能修改,因此,const_iterator 类型只能用于读取容器内的元素,不能修改元素的值。若只需遍历容器中的元素而无需修改它们,则可以使用const_iterator。习题3.22

如果采用下面的方法来计算mid 会产生什么结果?

C++ Primer(4 版)习题解答

60

vector::iterator mid = (vi.begin() + vi.end())/2;

【解答】

将两个迭代器相加的操作是未定义的,因此用这种方法计算mid 会出现编译错误。

习题3.23

解释下面每个bitset 对象包含的位模式:

(a) bitset<64> bitvec(32);

(b) bitset<32> bv(1010101);

(c) string bstr; cin >> bstr; bitset<8> bv(bstr);

【解答】

(a) bitvec 有64 个二进制位,(位编号从0 开始)第5 位置为1,其余位置均

为0。

(b) bv 有32 个二进制位,(位编号从0 开始)第0、2、4、5、7、8、11、13、

14、16、17、18、19 位置为1,其余位置均为0。因为十进制数1010101 对应的二进制数为000000000000011110110100110110101。

(c) bv 有8 个二进制位,(位编号从0 开始)用读入的字符串的从右至左的8

个字符对bv 的0~7 位进行初始化。

习题3.24

考虑这样的序列1,2,3,5,8,13,21,并初始化一个将该序列数字所对应的位置设

置为1 的bitset<32>对象。然后换个方法,给定一个空的bitset 对象,编写一

小段程序把相应的数位设置为1。

【解答】

bitset<32>对象的初始化:

bitset<32> bv(0x20212e)

方法二:

bitset<32> bv;

int x = 0, y = 1, z;

C++ Primer(4 版)习题解答

61

z = x + y;

while (z <= 21) {

bv.set(z);

x = y;

y = z;

z = x + y;

}

注意,设置为1 的数位的位编号符合斐波那契数列的规律。

标准文献检索

5.7 标准全文数据库5.7.1标准文献概况 5.7.2常见标准全文数据库 5.7.3其它标准化组织与网上免费检索资源

5.7.1 标准文献概况 u“标准是对重复性事物和概念所做的统一规定。它以科学、技术和实践经验的综合成果为基础,经有关方面协商一 致,由主管机构批准,以特定形式发布,作为共同遵守的准则和依据。” u标准的制定和类型按使用范围划分有国际标准、区域标准、国家标准、专业标准、企业标准;按内容划分有基础标准、产品标准、辅助产品标准、原材料标准、方法标准;按成熟程度划分有法定标准、推荐标准、试行标准、标准草案。u与前书其它类型的文献(期刊、图书等)相似,标准文献的著录也由包括标准名称、颁布单位、标准分类、颁布日期、标准全文、标准号等特征项组成。 u标准号的格式为:标准代码+标准流水号+’-‘+颁布年,如:GB2760-1996。

5.7.2常见标准全文数据库 u目前常见的中国学位论文全文数据库是万方数据资源系统《中国标准全文数据库》和CNKI《中国标准数据库》和《国外标准数据库》。 u1.宇飞标准文献服务系统 u收集了国内、国外个大领域的标准文献,包括:相关行业的中国国家标准、中国行业标准全文;国际标准以及各国国家标准的文摘。 u系统每年动态更新。系统仅供校园网用户访问,限本人教学科研使用,严禁恶意批量下载。

u2.《中外标准数据库》(万方数据资源系统) u本库收录了国内外的大量标准,包括中国国家发布的全部标准、某些行业的行业标准以及电气和电子工程师技术标准;收录了国际标准数据库、美英德等的国家标准,以及国际电工标准;还收录了某些国家的行业标准,如美国保险商实验所数据库、美国专业协会标准数据库、美国材料实验协会数据库、日本工业标准数据库等。

地理信息数据库的设计

城市基础地理信息数据库设计与实现 学院:测绘科学与工程学院 专业:地理信息科学 姓名:乔婷婷 学号:201301181122

摘要: 目前,各种地理信息系统的建设方兴未艾,它们的建设都需要有统一的基础地理信息作为其基础。而基础地理信息数据库把基础地理数据获取、处理、管理、维护等各个环节连成一个有机的整体。本文以平原区某市数字城市建设项目为例进行基础地理信息数据库设计 与实现的研究。 该数字城市建设项目中的地形数据库建设涉及1:500、1:1000、1:10000、1:50000等多种比例尺;图形信息以点状、线状以及面状地物等形式存在;数据的属性信息以扩展属性和文字描述等方式存在,形成多尺度、多数据格式的数据源。 关键词:数字城市基础地理信息数据基础地理信息数据库 一、基础地理信息数据库的概念 基础地理信息数据库是基础地理信息数据及实现其输入、编辑、浏览、查询、统计、分析、表达、输出、更新等管理、维护与分发功能的软件和支撑环境的总称。 二、基础地理信息数据库的组成 基础地理信息数据库由基础地理信息数据、管理系统和支撑环境三部分组成,一般包括现势库和历史库。 其中,基础地理信息数据是基础地理信息数据库的核心,按类型分为大地测量数据、数字线划图数据、数字高程模型数据、数字栅格地图数据和数字正射影像数据五个分库,分库又根据比例尺和分辨率的变化细化为子库,子库也可根据要素分成若干层; 管理系统和支撑环境是数据存储、管理和运行维护的软硬件及网络条件。 三、基础地理信息数据库的设计与实现总体流程: 总体流程如下:基础地理数据收集、数据检查分析、数据库结构设计、数据库编辑整理、质量检测、数据入库。 (一)基础地理数据收集 基础地理信息数据是基础地理信息数据库的核心,按类型分为大地测量数据、数字线划图数据、数字高程模型数据、数字栅格地图数据和数字正射影像数据五个分库,分库又根据比例尺和分辨率的变化细化为子库,子库也可根据要素分成若干层; 研究数据为2012年野外实测,由南方CASS软件编辑成的数字线划图;图层依据《基础地理信息要素分类与编码》按八大类进行分层;要素编码采用国际码+图形代码组成,地形图数据中点状地物的编码在要素的Z比例属性中;线状地物的编码在要素的厚度属性中;要素的扩展属性为地物的实体名称。 地形图数据根据《基础地理信息要素数据字典第1部分:1:500 1:1000 1:2000 基础地理信息要素数据字典》标准,要对需要面状表示的要素进行构面处理,如池塘面、植被面,构面前需进行拓扑关系处理。 (二)数据检查分析

9个常用的国外英文文献数据库

9个常用的国外英文论文文献数据库 9个论文文献数据库,科研搬砖,阅读涨姿势,论文写作小帮手!先说说什么是数据库:学术科研中说的「数据库」和「文献数据库」,往往是一种的形式,这个的贮存了大量文献数据(比如论文)可以简单的理解为一个网络图书馆。 数据库中的论文往往都是耗费了大量的时间和精力整理出来的,还有很多是需要购买才可以放在互联网上的,再加上维护这个本身就耗费颇多,因此这些数据库通常不是完全免费的,你可以在上面免费查找文献,浏览摘要等简介容,但是如果你要下载文献,就要付钱。 大学因为科研和教学需要,常年要下载大量的论文材料,所以就会和数据库的经营者签订很多协议,例如包年,就是给一定量的钱,然后就可以无限制下载论文。也有按照下载的数量进行计费。那英语作为世界第一学术语言,有哪些数据库是值得大家分享的呢?1、Wiley InterScience(英文文献期刊)Wiley InterScience是John Wiely & Sons公司创建的动态在线容服务,1997年开始在网上开通。通过InterScience,Wiley公司以许可协议形式向用户提供在线访问全文容的服务。Wiley InterScience收录了360多种科学、工程技术、医疗领域及相关专业期刊、30多种大型专业

参考书、13种实验室手册的全文和500多个题目的Wiley 学术图书的全文。网址:onlinelibrary.wiley./其中被SCI 收录的核心期刊近200种。期刊具体学科划分为:Business,Finance & Management (商业、金融和管理)、Chemistry (化学)、Computer Science(计算机科学)、Earth Science (地球科学)、Education (教育学)、Engineering (工程学)、Law(法律)、Life and Medical Sciences (生命科学与医学)、Mathematics and Statistics(数学统计学)、Physics (物理)、Psychology (心理学)。 2. ICPSRICPSR全称为Inter-university Consortium for Political and Social Research,即美国校际社会科学数据共享联盟。成立于1962年,位于美国密西根大学安娜堡分校(University of Michigan- Ann Arbor, 1817-),储存超过17000种调查研究资料,如军队官兵总名册,遗嘱、遗嘱查验与税收纪录,是现在世界上最大的社会科学数据中心,拥有600多个成员机构,包括大学和各种研究中心。网址:https://www.360docs.net/doc/f82489128.html,/icpsrweb/landing.jsp其中400多个成员机构在美国,我国的国家人口发展研究战略课题组,大学,大学,科技大学,浸会大学也是成员之一。 3. IEEE 电气电子工程师学会IEEE(Institute of Electrical & Electronics Engineers)是电子信息领域最著名的跨国性学

数据库数据类型

MySQL 数据类型在MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。 Text类型 数据类型描述 CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多255 个字符。 VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多255 个字符。注释:如果值的长度大于255,则被转换为TEXT 类型。 TINYTEXT 存放最大长度为255 个字符的字符串。 TEXT 存放最大长度为65,535 个字符的字符串。 BLOB 用于BLOBs (Binary Large OBjects)。存放最多65,535 字节的数据。MEDIUMTEXT 存放最大长度为16,777,215 个字符的字符串。 MEDIUMBLOB 用于BLOBs (Binary Large OBjects)。存放最多16,777,215 字节的数据。LONGTEXT 存放最大长度为4,294,967,295 个字符的字符串。 LONGBLOB 用于BLOBs (Binary Large OBjects)。存放最多4,294,967,295 字节的数据。 ENUM(x,y,z,etc.) 允许你输入可能值的列表。可以在ENUM 列表中列出最大65535 个值。如果列表中不存在插入的值,则插入空值。 注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM('X','Y','Z') SET 与ENUM 类似,SET 最多只能包含64 个列表项,不过SET 可存储一个以上的值。 Number类型: 数据类型描述 TINYINT(size) -128 到127 常规。0 到255 无符号*。在括号中规定最大位数。 SMALLINT(size) -32768 到32767 常规。0 到65535 无符号*。在括号中规定最大位数。 MEDIUMINT(size) -8388608 到8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。 INT(size) -2147483648 到2147483647 常规。0 到4294967295 无符号*。在括号中规定最大位数。 BIGINT(size) -9223372036854775808 到9223372036854775807 常规。0 到18446744073709551615 无符号*。在括号中规定最大位数。 FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。DECIMAL(size,d) 作为字符串存储的DOUBLE 类型,允许固定的小数点。 这些整数类型拥有额外的选项UNSIGNED。通常,整数可以是负数或正数。如果添加UNSIGNED 属性,那么范围将从0 开始,而不是某个负数。

数据库常用数据类型

(1) 整数型 整数包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。 l bigint:大整数,数范围为-263 (-9223372036854775808)~263-1 (9223372036854775807) ,其精度为19,小数位数为0,长度为8字节。 l int:整数,数范围为-231 (-2,147,483,648) ~231 - 1 (2,147,483,647) ,其精度为10,小数位数为0,长度为4字节。 l smallint:短整数,数范围为-215 (-32768) ~215 - 1 (32767) ,其精度为5,小数位数为0,长度为2字节。 l tinyint:微短整数,数范围为0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。 (2) 精确整数型 精确整数型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。精确整数型包括decimal 和numeric两类。从功能上说两者完全等价,两者的唯一区别在于decimal不能用于带有identity关键字的列。 声明精确整数型数据的格式是numeric | decimal(p[,s]),其中p为精度,s为小数位数,s的缺省值为0。例如指定某列为精确整数型,精度为6,小数位数为3,即decimal(6,3),那么若向某记录的该列赋值56.342689时,该列实际存储的是56.3427。 decimal和numeric可存储从-1038 +1 到1038 –1 的固定精度和小数位的数字数据,它们的存储长度随精度变化而变化,最少为5字节,最多为17字节。 l 精度为1~9时,存储字节长度为5; l 精度为10~19时,存储字节长度为9; l 精度为20~28时,存储字节长度为13; l 精度为29~38时,存储字节长度为17。 例如若有声明numeric(8,3),则存储该类型数据需5字节,而若有声明numeric(22,5),则存储该类型数据需13字节。 注意:声明精确整数型数据时,其小数位数必须小于精度;在给精确整数型数据赋值时,必须使所赋数据的整数部分位数不大于列的整数部分的长度。 (3) 浮点型 浮点型也称近似数值型。顾名思义,这种类型不能提供精确表示数据的精度,使用这种类型来存储某些数值时,有可能会损失一些精度,所以它可用于处理取值范围非常大且对精确度要求不是十分高的数值量,如一些统计量。

Oracle数据库的空间数据类型

Oracle数据库中空间数据类型随着GIS、CAD/CAM的广泛应用,对数据库系统提出了更高的要求,不仅要存储大量空间几何数据,且以事物的空间关系作为查询或处理的主要内容。Oracle数据库从9i开始对空间数据提供了较为完备的支持,增加了空间数据类型和相关的操作,以及提供了空间索引功能。 Oracle的空间数据库提供了一组关于如何存储,修改和查询空间数据集的SQL schema与函数。通过MDSYS schema规定了所支持的地理数据类型的存储、语法和语义,提供了R-tree空间数据索引机制,定义了关于空间的相交查询、联合查询和其他分析操作的操作符、函数和过程,并提供了处理点,边和面的拓扑数据模型及表现网络的点线的网络数据模型。 Oracle中各种关于空间数据库功能主要是通过Spatial组件来实现。从9i版本开始,Oracle Spatial空间数据库组件对存储和管理空间数据提供了较为完备的支持。其主要通过元数据表、空间数据字段(即SDO_GEOMETRY字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的函数,让用户进行更深层次的GIS应用开发。Oracle Spatial使用空间字段SDO_GEOMETRY存储空间数据,用元数据表来管理具有SDO_GEOMETRY字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。 1、元数据表说明。 Oracle Spatial的元数据表存储了有空间数据的数据表名称、空间字段名称、空间数据的坐标范围、坐标参考信息以及坐标维数说明等信息。用户必须通过元数据表才能知道ORACLE数据库中是否有Oracle Spatial的空间数据信息。一般可以通过元数据视图(USER_SDO_GEOM_METADATA)访问元数据表。元数据视图的基本定义为: ( TABLE_NAME V ARCHAR2(32), COLUMN_NAME V ARCHAR2(32), DIMINFO MDSYS.SDO_DIM_ARRAY, SRID NUMBER

标准文献数据库更新项目招投标书范本

四川省标准化研究院四川省标准文献数据库更新 比 选 邀 请 文 件 四川省标准化研究院 二〇一八年九月

目录 第一章比选邀请 (3) 第二章比选申请人须知 (4) 一、比选申请人须知附表 (4) 二、总则 (5) .适用范围 (5) . 有关定义 (5) . 合格的比选申请人 (6) . 比选邀请费用 (6) . 充分、公平竞争保障措施 (6) 三、比选邀请文件 (6) .比选邀请文件的构成 (6) . 比选邀请文件的澄清和修改 (7) 四、比选申请文件 (7) . 比选申请文件的语言 (7) . 计量单位 (7) . 比选货币 (7) .联合体比选 (7) . 知识产权 (7) .比选申请文件的组成 (8) .比选申请文件格式 (9) .比选有效期 (9) .比选文件的印制和签署 (9) . 比选文件的密封和标注 (10) .比选文件的递交 (10) . 本次比选不接受邮寄的比选文件 (10) .比选文件的修改和撤回 (10) 五、开标和中标 (11) .开标 (11) . 开标程序 (11) .中标通知书 (12) 六、签订及履行合同和验收 (12) . 签订合同 (12) . 采购人增加合同标的权利 (12) . 履行合同 (12) . 验收 (13) 七、比选纪律要求 (13) . 比选申请人不得具有的情形 (13) 八、质疑和投诉 (13) 第三章比选申请文件格式 (14) 一、投标函 (14) 二、法定代表人授权书 (15) 三、开标一览表 (16) 四、分项报价明细表 (17) 五、商务应答表 (18) 六、比选申请人基本情况表 (19) 七、比选申请人类似项目业绩一览表 (20) 八、比选申请人本项目管理、技术、服务人员情况表 (21)

sqlserver2008数据类型说明

sqlserver2008数据类型说明 SQL Server 2008数据类型(1) 在创建表时,必须为表中的每列指派一种数据类型。本节将介绍SQL Server中最常用的一些数据类型。即使创建自定义数据类型,它也必须基于一种标准的SQL Server数据类型。例如,可以使用如下语法创建一种自定义数据类型(Address),但要注意,它基于SQL Server标准的varchar数据类型。 1.CREATE TYPE Address 2.FROM varchar(35) NOT NULL 如果在SQL Server Management Studio的表设计界面中更改一个大型表中某列的数据类型,那么该操作可能需要很长时间。可以通过在Management Studio界面中脚本化这种改变来观察其原因。Management Studio再创建一个临时表,采用像tmpTableName这样的名称,然后将数据复制到该表中。最后,界面删除旧表并用新的数据类型重命名新表。当然,此过程中还涉及其他一些用于处理表中索引和其他任何关系的步骤。 如果有一个包含数百万条记录的大型表,则该过程可能需要花费十分钟,有时可能是数小时。为避免这种情况,可在查询窗口中使用简单的单行T-SQL语句来更改该列的数据类型。例如,要将Employees表中JobTitle列的数据类型改为varchar(70),可以使用如下语法。 1.ALTER TABLE HumanResources.Employee ALTER COLUMN JobTitle Varchar(70 ) 说明: 在转换为与当前数据不兼容的数据类型时,可能丢失重要数据。例如,如果要将包含一些数据(如15.415)的numeric数据类型转换为integer数据类型,那么15.415这个数据将四舍五入为整数。 您可能想对SQL Server表编写一个报表,显示表中每列的数据类型。完成这项任务的方法有很多种,但最常见的一种方法是连接sys.objects表和sys.columns表。在下面的代码中,有两个函数可能不太为您所熟悉。函数TYPE_NAME()将数据类型id转换为适当的名称。要进行反向操作,可使用TYPE_ID()函数。需要注意的另一个函数是SCHEMA_ID(),它用于返回架构的标识值。在需要编写有关SQL Server元数据的报表时,这是特别有用的。 1.SELECT https://www.360docs.net/doc/f82489128.html, AS ObjectName, 2. https://www.360docs.net/doc/f82489128.html, AS ColumnName, 3.TYPE_NAME(https://www.360docs.net/doc/f82489128.html,er_type_id) as DataType 4.FROM sys.objects o JOIN sys.columns c 5.ON o.object_id = c.object_id

地理信息数据库建设及应用

地理信息数据库建设及应用 发表时间:2018-11-16T20:38:16.250Z 来源:《基层建设》2018年第26期作者:崔雪妍[导读] 摘要:随着信息产业的迅猛发展,建立地理信息数据库已成为衡量一个城市信息化程度的重要指标之一。 河北大地数字信息技术有限公司河北保定市 071000摘要:随着信息产业的迅猛发展,建立地理信息数据库已成为衡量一个城市信息化程度的重要指标之一。本文阐述了地理信息数据库的建设及应用。 关键词:地理信息系统;应用;发展趋势地理信息数据库作为地理信息系统的重要组成部分,它在满足城市信息化工程建设和社会经济持续发展中发挥着越来越重要的作用。另外,地理信息数据库建设是一项复杂的系统工程,要建设和管理好地理信息数据库,就应根据该地区的实际情况,做好数据库的建库方案,这样才能在较短时间内完成地理信息数据库的建设。 1地理信息系统建设的目标 随着社会的发展进步,“数字城市”的发展越来越重要,“数字城市”建设是指将有关城市的信息,包括城市的自然资源、社会资源、基础设施、人文、经济等各个方面,以数字的形式进行获取、存储、管理和再现,通过对城市信息系统的综合分析和有效利用,为提高城市管理效率、节约资源、保护环境和城市可持续发展提供决策支持。数字城市系统的开发、应用和服务是以数据的采集与更新、数据的共享与交流、数据的分发与挖掘、数据的商业化和社会化为基础。 地理信息系统的建设要达到一定的要求目标,如:系统需要易于使用、管理及维护,能满足用户的应用需求,成为可依托的有力工具;系统建设的结构、功能和界面需操作方便、灵活,适合各层次用户使用且易于更新和管理;系统采用基于COM组件机制和AreGIS En-gine组件包的开发方式,进而使代码实现很大程度地重复应用、保证系统广泛的自适应性和良好的可扩展性;系统的内容、数据分类与编码、数据精度等应采用有关国家标准;系统在设计时以系统功能方便扩充、组可重复应用为指导思想;系统应采用先进的方法、设备、技术等,提高系统的技术水平及质量,目标是围绕省级基础地理数据建库、测绘资料档案管理、数据增值服务、数据分发、地理信息应用服务等核心业务和工作,建立满足内部和外部地理信息分发服务需要的业务系统,提高基础地理信息管理水平,规范工作流程,提高办公效率和应急响应速度,形成信息化的地理信息服务体系;系统应成为综合性地理信息资源的基础和保证。 2数据库建库 2.1库体创建。根据数据库的逻辑设计和物理设计,按照选择的数据库管理系统进行物理空间的分配、参数的设置、数据表的创建等。 2.2入库检查。数据入库前依据数据生产中使用的技术设计书和有关技术规定、数据生产技术总结、数据生产中的数据检查报告和验收报告等,采用程序进行批量检查和人工交互检查两种方式进行质量检查。 2.3数据处理。为保证各种数据库逻辑无缝、关系正确和要素属性一致,要进行矢量数据属性及图形接边、影像色调调整、数字高程模型、高程接边处理及代码转换、数据格式转换、坐标转换和投影转换等入库数据转换处理。 2.4数据入库。数据入库分为分区入库和分要素两种模式。分区入库是以区域或图幅为单位组织数据,并进行数据的存储与管理;分要素入库是以要素层为单位组织数据,并进行数据的存储与管理。对影像数据和DEM数据采用分区入库的模式,对矢量数据采用分要素入库的模式。所有入库都采用程序批量入库的方式进行。 3数据库功能与应用 3.1功能。1)数据库的基本功能。用户管理、日志管理、数据库管理、视图管理、数据导入、信息查询、数据导出、数据转换和输出打印等,实现对多种空间数据的集成和管理、海量数据的查询和提取及投影、格式转换。2)数据库的更新。提供两种更新方案,一是对数据存储单元内的数据进行整体替换的方法,来实现对数据或数据库的更新,即用新的数据来替换旧的数据。二是在数据库系统中直接对某一数据单元内的局部数据进行增、删、改操作。无论哪种更新手段,替换下来的数据都存储在历史库中,以便对现实数据和历史数据进行对比分析。 3.2应用。在应用方面,地理信息系统已从最初的学领域扩展到测绘、国土、环境、水利、农业、林业和矿产等传统资源管理和城市规划、应急、公安、交通,旅游、工商、卫生和统计等国民经济的重要领域,并逐步在通信,电力、石油石化、银行、保险、煤矿、物流、烟草、广告、大型制造业、大型零售企业等工商领域和个人位置服务领域发挥着日益重要的作用。 4发展趋势 4.1GIS数据的共享和开放 目前,我国GIS的应用范围主要集中在一些政府部门和科研机构所承担的大型项目中,社会普及率低,对整个社会生产力发展的促进作用还不明显。造成这种现象的原因主要是GIS数据的保密性不够,数据获取困难是GIS技术发展的严重障碍。随着各种测绘技术的不断发展,数据获取成本已极大地降低,提升数据共享和开放,可让GIS更广泛应用于国民经济各领域,提高经济活动效率,减少GIS数据重复建设的成本。 4.2GIS产业化及市场化 当前,我国GIS技术得到了长足发展。现阶段,我国已形成一批具有自主知识产权的GIS软件品牌,这些软件品牌已在较多领域中得到了应用。在今后,我国地理信息产业的信息市场、产品市场、技术市场和劳务市场等将初步形成,产业结构会比较合理,地理空间数据将更加丰富,自主产权软件市场占有率将大幅提高,将涌现出一批大型骨干企业,并形成合理的地理信息产业链。 4.3网络GIS的发展 网络GIS是将Intemet与GIS相结合,使地理信息能在高速的网络环境中实现漫游和共享,这极大地开拓了GIS的应用领域。利用网络发布空间数据,为用户提供空间数据浏览、查询和分析等功能,形成一个网络化的地理空间平台,将是GIS系统发展的必然趋势。 4.4三维GIS与虚拟现实技术的结合 三维GIS和二维GIS相比,能帮助人们更加准确真实地认识我们的客观世界。三维GIS能支持真三维的矢量和栅格数据模型及以此为基础的三维空间数据库,解决三维空间操作和分析问题,可以预见,三维GIS的发展将具有非常广阔的前景。 4.5高分辨率遥感影像与GIS结合

数据库设计基本数据类型说明

一. 基本类型 数据库设计,在数据库设计文档中,统一用内存类型作为数据库库设计文档,至于内存类型和数据库之间的对应关系统一由工具来处理 数据库设计文档类型 现用 原用 Orcal 内存类型 size SQL Server Oracle varchar varchar VARCHAR2 String 需要填写长度 4000以内 varchar VARCHAR2 Smallint 2 smallint NUMBER(2,0) bigint Integer 4 int NUMBER(4,0) bit decimal NUMBER Boolean tinyint NUMBER(1,0) float Float 需要填写长度 float NUMBER() int NUMBERIC money Currency 默认4位 money NUMBER(19,4) real DateTime datetime date smallint Blob image BLOB tinyint Guid Unique.. VARCHAR2(40) smallmoney Int64 8 Int64 NUMBER(8,0) numeric datetime datetime date SmallDatetime varchar(40) uniqueidentifier varchar2(40) image image BLOB S U N L I G H T

二.表结构通用字段 类别字段说明 台帐单据objid 单据ID EnterCode 企业Code BrandCode 品牌Code 其他业务字 段 静态单据主单 objid 单据ID Code 单据编号 EnterCode 企业Code BrandCode 品牌Code ModifyCode 最近更新人Code ModifyTime 更新时间 Status 状态 Verinfo 版本号 业务字段 静态单据日志表 objid 单据ID parentid 父单据 LogData 更新日志 ModifyCode 最近更新人 Code S U N L I G H T

建立地理信息数据库技术方案

建立地理信息数据库技术方案 1.1 建立GIS系统的必要性 (1) 1.2 已有测绘数据的分析利用 (2) 1.3 技术标准和依据 (5) 1·4 总体构想8 1·1 建立GIS系统的必要性 1·1·1长春经济技术开发区经过十年多的建设,已经初 具规模,在长春市的东南建起了一座现代化的新城区。目前 在道路、供水、排水、电力、电信、供热等基本设施投入近 40亿元人民币,形成了巨大的发展潜力,尤其是随着国家振 兴东北老工业基地战略的实施,必将为长春经济技术开发区 带来新的发展机遇。 1·1·2近几年,我国城市GIS的建设和应用取得了较大 进步,GIS的应用通过与通信、互联网、办公自动化等技术 的结合,充分地融入了IT主流,成为信息技术中一个举足轻 重的领域,作为地理信息服务核心内容的基础空间数据库的

建设和开发利用也越来越受到了重视。目前开发区测绘资料齐全,切现势性强,为建立城市地理信息系统能提供基础数据保障。 1·1·3作为现代化的新区,各职能部门和服务行业必须满足高节奏、高效率、快捷准确的服务,而只有GIS技术的基础性、公益性、共享性和快速的信息交换,才能为此提供大力的支持。所以,为建立长春经济技术开发区地理信息系统,而首先进行基础地理信息数据库的建设是非常必要的。1·2 已有测绘数据的分析利用 1·2·1 到目前为止,长春经济技术开发区全区已有测绘资料齐全,切现势性强,数据格式合理。详见表1·2·1-1。 全区已有测绘资料 表1·2·1-1

1·2·2上述测绘数据资料中,其地形图成图时间较早部分数据,近年进行了修测,管线数据资料基本做到了数据齐

数据库数据类型的使用与区别

数据库数据类型的使用与区别 整型数据类型: 1、INT (INTEGER) INT (或INTEGER)数据类型存储从-2的31次方(-2 ,147 ,483 ,648)到2的31次方-1 (2 ,147 ,483,647)之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。 2、SMALLINT SMALLINT 数据类型存储从-2的15次方( -32, 768)到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。 3、TINYINT TINYINT数据类型存储从0 到255 之间的所有正整数。每个TINYINT类型的数据占用1 个字节的存储空间。 4、BIGINT BIGINT 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807)到2^63-1( 9, 223, 372, 036 ,854 ,775, 807)之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间。 浮点数据类型: 浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979 分别进行 2 位和12位舍入,结果为 3.15 和3.141592653590。 1、REAL 数据类型 REAL数据类型可精确到第7 位小数,其范围为从-3.40E -38 到3.40E +38。每个REAL类型的数据占用4 个字节的存储空间。 2、FLOAT FLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。 3、DECIMAL DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式,p 和s 确定了精确的比例和数位。

几种好用的国外文献数据库简介

一.Springer 德国施普林格(Springer-Verlag)是世界上著名的科技出版集团, 通过Springer LINK系统提供学术期刊及电子图书的在线服务。目前Springer LINK所提供的全文电子期刊共包含439种学术期刊(其中近400种为英文期刊),按学科分为以下11个“在线图书馆”:生命科学、医学、数学、化学、计算机科学、经济、法律、工程学、环境科学、地球科学、物理学与天文学,是科研人员的重要信息源。 二.Wiley InterScience John Wiley & Sons Inc. 是一家全球性的印刷和电子产品出版商,Wiley InterScience是John Wiely & Sons 公司创建的动态在线内容服务。Wiley InterScience收录了360多种科学、工程技术、医疗领域及相关专业期刊、30多种大型专业参考书、13种实验室手册的全文和500多个题目的Wiley学术图书的全文。期刊具体学科划分为:商业、金融和管理、化学、计算机科学、地球科学、教育学、工程学、法律、生命科学与医学、数学统计学、物理及心理学。 三.EBSCO (待添加) 四.ScienceDirect ScienceDirect是世界著名的学术期刊出版商Elsev ier公司开发的互联网上最全面的一个全文文献数据库,内容涵盖数学、物理、生命科学、化学、计算机、临床医学、环境科学、材料科学、航空航天、工程与能源技术、地球科学、天文学、及经济、商业管理、社会科学等几乎所有学科领域,提供Elsevier公司出版的1,800多种学术期刊的检索和全文,以及其它著名组织和STM出版商的期刊。 五.Ingenta Ingenta 网站是Ingenta 公司于1998 年建成的学术信息平台。在几年的发展中,该公司先 后兼并了多家信息公司,合并了这些公司的数据库。2001 年,Ingenta 公司兼并了Catchword 公司,近期Ingenta 准备将两家公司的信息平台整合为一体。在整合之前,用户可分别从https://www.360docs.net/doc/f82489128.html, 和https://www.360docs.net/doc/f82489128.html, 查询对方提供的全部信息。整合后可提供全球190 多个学术出 版机构的全文联机期刊5,400 多种,以及 26,000 多种其它类型出版物。目前,Ingenta 公司在 英国和美国多个城市设有分公司,拥有分布于世界各地的10,000 多个团体用户和2,500 多万个 个人用户,已成为全球学术信息服务领域的一个重要的文献检索系统。 六.Proquest

关于数据库建表时字段数据类型

char、varchar、text、ntext、bigint、int、smallint、tinyint 和bit的区别及数据库的数据类型 基础: char、varchar、text和nchar、nvarchar、ntext的区别 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。 2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。 3、TEXT。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节

存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar 则最多存储4000个字符,不论是英文还是汉字;而char、varchar 最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar 数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。 进一步学习: char、varchar、text、ntext、bigint、int、smallint、tinyint 和bit的区别及数据库的数据类型 Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节 char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

Oracle数据库基本数据类型

oracle基本数据类型

oracle 数据库中讨论char ,varchar ,varchar2 数据类型! 这3种字符串数据类型是我们使用最多的,我们在数据库设计时到底该怎么使用了? 首先我们先来分析3个数据类型的说明: 1。char CHAR的长度是固定的,最长2000个字符。 2。varchar 和 varchar2 可以肯定的是oracle中目前是可以使用varchar数据类型的,但他们的区别我查了不少资料也没有找到一个准确的答案最常见的说话是说oracle中的varchar只是varchar2的别名也就是同义词。 其次也有人认为varchar是最大长度为2000的可变字符串(和sql server中的varchar一致),而varchar2最大长度为4000。 知道了他们的特点我们就来讨论下使用区别 1.char和varchar、varchar2 由于varchar和varchar2用途类似,我们先来讨论char和他们的使用区别: varchar和varchar2比char节省空间,在效率上比char会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的

‘以空间换效率’。 varchar和varchar2虽然比char节省空间,但是如果一个varchar和varchar2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用char代替varchar和varchar2会更好一些。 当然还有一种情况就是象身份证这种长度几乎不变的字段可以考虑使用char,以获得更高的效率。 2。varchar和varchar2 这里就进入重点了,前面的区别我们在sql server中我们已经基本了解了,大家可能都知道,最多也就是复习下,但oracle增加了一个varchar2类型,是大家以前所没有用到过的。 因为oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,还有其他数据中一般都有varchar这个数据类型。 所以我得出了以下结论: 如果想在oracle新版本的数据库兼容就不要用varchar,如果想和oracle 之外其他数据库兼容就不要用varchar2。 ORACLE中的数据类型分类 ORACLE中的数据类型不可谓不多,下面把我这两天来的学习体会写一下吧! 1、字符数据类型:包括我CHAR,VARCHAR2,LONG。 CHAR型可以存储字母数字值,这种数据类型的 列长度可以是1到2000个字节。如果未指明,则默认其占用一个字节,如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。 VARCHAR2型其实就是VARCHAR,只不过后面多了一个数字2,VARCHAR2就是VARCHAR的同义词,也称别名。数据类型大小在1至4000个字节,但是和CHAR不同的一点是:当你定义了VARCHAR2长度为30,但是你只输入了10个字符,这时VARCHAR2不会像CHAR一样填充,在数据库中只有10具字节。

基础地理信息数据档案管理与保护规范

中华人民共和国测绘行业标准 GH/r 1014—2006 基础地理信息数据档案管理与保护规范 Specification for managing and protecting data&rcl~ves of fundamental geographic information 2006—1O—O1实施 国家测绘局发布 前言 基础地理信息数据档案具有生产成本高、技术含量高、数据量大的特点,是国民经济建设所必需的基础数据,具有很高的应用价值和广泛的应用需求。本标准根据基础地理信息数据档案的管理需要,结合数据档案管理工作的实际,对数据档案管理和保护工作的技术要求 进行了规定。 本标准主要对基础地理信息数据档案的收集、积累、归档、移交、介质、拷贝、保管、维护、使用、运输与销毁等方面进行了规定。关于文档材料管理的技术要求,遵循国家、行业或部门现行的有关法规、规范和规定执行。 本标准的附录A、附录B、附录C为规范性附录。 本标准由国家测绘局、国家档案局提出,由国家测绘局归口。 本标准起草单位:国家基础地理信息中心(国家测绘档案资料馆)。 本标准主要起草人:李培、王小平。 基础地理信息数据档案管理与保护规范 1 范围 本标准规定了基础地理信息数据档案的收集、积累、归档、移交、介质、拷贝、保管、维护、使用、运输与销毁等诸方面的一般要求。 本标准适用于基础地理信息数据档案管理和形成单位对基础地理信息数据档案的管理。非基础地理信息数据档案的管理可参照执行。 2 规范性引用文件 下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准。然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。 GB/]r 18894-2002 电子文件归档与管理规范 GB 50174 电子计算机机房设计规范 ’ DA/]"15—1995 磁性载体档案管理和保护规范 DAAr 1—200o 档案工作基本术语 3 术语和定义 DA/T 1—2000中定义的基本术语和下列术语适用于本标准。 3.1 基础测绘fundamental surveying and mapping 指建立全国统一的测绘基准和测绘系统,进行基础航空摄影,获取基础地理信息的遥感资料,测制和更新国家基本比例尺地图、影像图和数字化产品,建立、更

相关文档
最新文档