C++面向对象技术复习题汇总(含答案)

C++面向对象技术复习题汇总(含答案)
C++面向对象技术复习题汇总(含答案)

面向对象程序设计C++

复习资料与答案

第一、二、六、七章习题

一、选择题

1、系统约定C++源程序文件名的缺省的扩展名为()

A、bcc

B、c++

C、cpp

D、vcc

2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。

A、对数据的操作

B、信息

C、数据隐藏

D、数据抽象

3、当一个函数无返回值时,函数的类型应定义为()

A、void

B、任意

C、int

D、无

4、对于C++的函数,正确的叙述是:

A、函数的定义不能嵌套,但函数的调用可以嵌套

B、函数的定义不能嵌套,但函数的调用不能嵌套

C、函数的定义和调用都不能嵌套

D、函数的定义和调用都可以嵌套

5、下列语句中错误的是()

A、int *p=new int(10);

B、int *p=new int[10]

C、int *p=new int;

D、int *p=new int[40](0);

6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:()

A、name[3]=’a’; B、name=”lin”;

C、name=new char[5]; D、cout<

7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:()

A、name[3]=’q’; B、name=”lin”;

C、name=new char[5]; D、name=new char(‘q’);

8、假设已经定义:const char *name=”chen”;, 下面的语句中错误的是:()

A、name[3]=’q’; B、name=”lin”;

C、name=new char[5]; D、name=new char(‘q’);

9、下面的类型声明中正确的是:( )

A、int &a[4];

B、int &*p;

C、int &&q

D、int i,*p=&i;

10、假设定义了函数模板()

template

T max(T x,T y){ return(x>y)x:y;}

并定义了int i;char c;错误的调用语句是:()

A、max(i,i)

B、max(c,c)

C、max((int)c,i);

D、max(i,c)

11、模板的使用是为了()

A、提高代码的可重用性

B、提高代码的运行效率

C、加强类的封装性

D、实现多态性

12、设有二个语句:int x[‘a’];cin>>x;则编译器认为()

A、说明语句int x[‘a’]错

B、二个语句都错

C、语句cin>>x 错

D、二个语句正确,没有语法错

13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )

A、f(py[10],n);

B、f(py,n)

C、f(*py,&n)

D、f(py,&n)

14、在C++中实现封装是借助于()

A、枚举

B、类

C、数组

D、函数

15、对于下面几个函数:

(1) void f(int x,float y) {……}

(2) int f(int a,float b){……}

(3) int f(int i,int j){……}

(4) float k(int x){……}

是重载函数。

A、4个全部

B、1和2

C、2和3

D、3和4

16、使用(“”,ios::app);语句打开文件后,则()

A、使输出追加到文件尾部

B、打开一个文件进行读操作

C、打开一个文件进行读和写操作

D、文件以二进制方式打开,默认时为文本文件

二、填空题

1、面向对象的程序设计有四大特征,它们是抽象、封装、、。

2、结构体类型中的数据和成员函数默认类型为。

3、C++要求为每个函数建立原型,以说明函数的名称、参数的和,以及函数返回值。

4、在函数说明前加关键字“inline”,则该函数被声明为函数,其引入的目的是为了消除函数调用时的开销,以提高运行速度。

5、引用变量与被引用变量占有内存单元。

6、运算符能够用于访问当前作用域内与局部变量同名的全局变量。

7、#include <>

void s(int a,int &b){int t=a;a=b;b=t;}

void main(void)

{ int x=500,y=1000;

cout<

程序的第一行输出为,第二行输出为。

8、#include <>

void main(void)

{ for(int a=1,b=1;a<=5;a++)

{ if(b>=8) break;

if(b%2==1){b+=7;continue;}

b-=3; }

cout<<”a=”<

程序输出结果是a= ,b= 。

9、#include <>

int x=100;

void main(void)

{ int x=200;x+=::x; {int x=500;::x+=x;} cout<

程序的第一行输出为,第二行输出为。

10、#include<>

void f(float x=5, int y=16, char z=‘C’);

void main( )

{ float a=; int b=2; char c='D';

f();f(a);f(a,b); f(a,b,c); }

void f(float x, int y, char z)

{ cout<<“x=”<

程序的第二行输出为,第三行输出为。

11、以下程序的输出结果是。

#include <>

char a[]=“ABCDEFGHI”;

char &f(int);

int main()

{ f(6)=‘X’; cout<

char &f(int i)

{ return a[i]; }

12、如果C++程序中使用了:cout、strcpy,则必须在程序首部包含文件和。

13、#include <>

#include

void main()

{ int i=7890; cout<

程序的第一行输出为,第二行输出为。

14、#include <>

void main()

{ int i=100;(ios::hex); cout<

以上程序运行的结果是

第三章类和对象

一、选择题

1、()不是构造函数的特征。

A、构造函数的函数名与类名相同;

B、构造函数可以重载;

C、构造函数可以设置缺省参数;

D、构造函数必须指定类型说明。

2、下列关于构造函数的描述中,()是正确的。

A、构造函数可以设置缺省参数;

B、构造函数可以被继承;

C、构造函数可以对静态数据成员进行初始化;

D、构造函数可以说明为虚函数;

3、()是析构函数的特征。

A、析构函数可以有一个或多个参数;

B、析构函数名与类名不同;

C、析构函数的定义只能在类体内;

D、一个类中只能定义一个析构函数;

4、定义析构函数时,应该注意()。

A、其函数名与类名完全相同;

B、函数返回类型是void类型;

C、无形参,也不可重载;

D、函数体中必须有delete语句;

5、下列静态数据成员的特性中,()是错误的。

A、说明静态数据成员时前边要加修饰符static;

B、静态数据成员要在类体外进行初始化;

C、静态数据成员不是所有对象所共用的;

D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符;

6、友元的作用是()。

A、提高程序的运用效率;

B、加强类的封装性;

C、实现数据的隐藏性;

D、增加成员函数的种类;

7、关于成员函数特征的下列描述中,()是错误的。

A、成员函数一定是内联函数;

B、成员函数可以重载;

C、成员函数可以设置缺省参数值;

D、成员函数可以是静态的;

8、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的;

A、void print() const;

B、const void print();

C、void const print();

D、void print(const);

9、在()情况下适宜采用inline定义内联函数。

A、函数体含有循环语句;

B、函数体含有递归语句;

C、函数代码小,频繁调用;

D、函数代码多,不常调用;

10、假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的

次数为( )。

A、3

B、4

C、6

D、9

11、通常拷贝初始化构造函数的参数是( )。

A、某个对象名

B、某个对象的成员名

C、某个对象的引用名

D、某个对象的指针名

12、有关类的说法不正确的是( )。

A、类是一种用户自定义的数据类型

B、只有类中的成员函数才能存取类中的私有数据

C、在类中,如果不作特别说明,所有的数据均为私有类型

D、在类中,如果不作特别说明,所有的成员函数均为公有类型

13、在声明类时,下面说法正确的的是( )。

A、可以在类的声明中给数据成员赋初值

B、数据成员的类型可以是register

C、public, private, protected这三种属性的成员可以按任意顺序出现

D、没有用public, private, protected定义的成员是公有成员

14、已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为

5, ( )是正确的。

A、=5

B、A1->p=5

C、A1.*p=5

D、*=5

15、已知:类A中一个成员函数说明如下:

void Set(A&a); 其中,A&a的含义是( )。

A、指向类A的指针为a

B、将a的地址值赋给变量Set

C、a是类A的对象引用,用来作函数Set()的形参

D、变量A与a按位相与作为函数Set()的参数

16、下列说明中const char *ptr; ptr应该是( )。

A、指向字符型常量的指针

B、指向字符的常量指针

C、指向字符变量的指针

D、指向字符串的常量指针

17、采用函数重载的目的在于:

A、实现共享

B、减少空间

C、提高速度

D、使用方便,提高可读性

18、有关类和对象的说法下列不正确的是( )。

A、对象是类的一个实例

B、任何一个对象只能属于一个具体的类

C、一个类只能有一个对象

D、类与对象的关系和数据类型和变量的关系相似

19、有以下类的说明,请指出错误的地方()。

Class CSample

{

int a=; A

CSample(); B

public:

CSample(int val); C

~CSample(); D

};

20、在类的定义形式中,数据成员、成员函数和( )组成了类定义体。

A、成员的访问控制信息

B、公有消息

C、私有消息

D、保护消息

二、填空题

1.通常的拷贝初始化构造函数的参数是_________________

2.在C++中函数参数的传递方式有三种,分别是:__________、__________和__________。3.任何类中允许有三种访问权限的数据,这三种访问权限分别是__________、__________和__________。

4.类中数据成员和成员函数的默认类型为______________

5.在类内部定义的__________和__________数据不能被不属于该类的成员函数来存取,定义为__________的数据,可以在类外部进行存取。

6.__________是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。

7.一个类中有__________个析构函数。

8.__________成员函数中不能直接引用类中说明的非静态成员。

9.已知类Sample 中的一个成员函数说明如下:

void Set(Sample &a);

其中,Sample &a的含意是_________________

10.静态数据成员属于类,可以使用_______________ 的方式访问静态的数据成员。11.编译程序将this指针指向_____________。

12.以下程序的执行结果是__________。

# include <>

class Sample

{ public:

Sample () { cout << “constructore” << endl; }

};

void fn (int i)

{ static Sample c;

cout << “i=” << i << endl;

}

void main ()

{ fn (10) ;

fn (20) ;

}

13.以下程序的执行结果是_______________。

# include <>

class sample

{ private:

int n;

static int k;

public:

sample(int i) { n=i; k++; };

void disp();

};

void sample:: disp ()

{ cout<<"n=" <

}

cout<

}

15.以下程序的执行结果是_______________ #include<>

class A

{ public:

A( ) {cout<<"Constructing A \n";}

~A( ) {cout<<"Destructing A \n";}

};

class B

{ public:

B( ) {cout<<"Constructing B \n";}

~B( ){cout<<"Destructing B \n";}

};

main( )

{ A a;

B b;

return 0;

}

第四章派生类与继承

一、选择

1、从一个基类派生出的各个类的对象之间(1) 。

A、共享所有数据成员,每个对象还包含基类的所有属性

B、共享部分数据成员,每个对象还包含基类的所有属性

C、不共享任何数据成员,但每个对象还包含基类的所有属性

D、共享部分数据成员和成员函数

2、C++的继承性允许派生类继承基类的(2) 。

A、部分特性,并允许增加新的特性或重定义基类的特性

B、部分特性,但不允许增加新的特性或重定义基类的特性

C、所有特性,并允许增加新的特性或重定义基类的特性

D、所有特性,但不允许增加新的特性或重定义基类的特性

3、对于公有继承,基类的公有和保护成员在派生类中将(3) 成员。

A、全部变成公有

B、全部变成保护

C、全部变成私有

D、仍然相应保持为公有和保护

4、建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为(4) 的构造函数。

A、自己所属类、对象成员所属类、基类

B、对象成员所属类、基类、自己所属类

C、基类、对象成员所属类、自己所属类

D、基类、自己所属类、对象成员所属类

5、派生类的对象对其基类中(5) 可直接访问。

A、公有继承的公有成员

B、公有继承的私有成员

C、公有继承的保护成员

D、私有继承的以有成员

6、设类B是基类A的派生类,并有语句:A aa, * pa=&aa; B bb, * pb=&bb; 则正确的

语句是___(6)__ 。

A、pb=pa;

B、bb=aa;

C、aa=bb;

D、*pb=*pa;

7、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是_ (7)__.

A、派生类的对象可以赋给基类的对象

B、派生类的对象可以初始化基类的引用

C、派生类的对象可以直接访问基类中的成员

D、派生类的对象的地址可以赋给指向基类的指针

8、若类X和类Y的定义如下:

class X

{ int a,b;

public:

void fx ( );

};

class Y: public X

{ int c;

public:

void fy ( );

};

void Y::fy ( ) { c=a*b; }

则上述代码中,(8) 是非法的语句。

A、void fx();

B、k=a*b;

C、void fy();

D、int c;

9、如果一个派生类的基类不止一个,则这种继承称为__(9)__。

A、单继承

B、虚继承

C、多态继承

D、多重继承10.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:(10)。

A、AB operator+(AB & a , AB & b)

B、AB operator+(AB & a)

C、operator+(AB a)

D、AB & operator+( )

11、下面叙述不正确的是(11)。

A、派生类可以使用private派生

B、基类的public成员在派生类中仍然是public

C、对基类成员的访问必须是无二义性的

D、赋值兼容原则也适合多重继承的组合

12、下面叙述不正确的是(12)。

A、基类的protected成员在派生类中仍然是protected

B、基类的protected成员在public派生类中仍然是protected

C、基类的protected成员在private派生类中仍然是private

D、对基类成员的访问必须是无二义性的

13、下面叙述不正确的是(13)。

A、成员的访问能力在private派生类中和public派生类中仍是不同的

B、基类的private成员在public派生类中不可访问

C、赋值兼容规则不适合于多重继承的组合

D、public基类成员在protected派生中是protected

14、下面叙述正确的是(14)。

A、基类的对象可以赋给派生类

B、只要是基类的对象,都可以赋给由它派生的任一个派生类对象

C、只有该基类直接派生出来的类的对象才可以赋给该基类的对象

D、公有派生类的对象可以赋给基类的对象

15以下程序的输出结果为是(15)。

#include<>

class A

{ public:

int n; };

class B:virtual public A{};

class C:virtual public A{};

class D:public B,public C

{ int getn(){return B::n;} };

void main()

{ D d; ::n=10; ::n=20;

cout<<::n<<","<<::n<

}

A、10,20

B、20,20

C、10,10

D、输出有二义性,不确定

二、填空题

1、在C++中派生类时,可以有(1) 、(2) 和(3) 三种不同的方式。

2、公有派生类不能访问基类的(4) 成员,但是派生类可以访问基类的(5) 成员和(6) 成员。

3、构造函数不能被继承,因此,派生类的构造函数必须通过调用(7)构造函数进行初始

化基类的对象。

4、保护派生具有双重作用:对(8),具有公有性,对其他外部,具有(9)。

5、在多重派生中,要使公共基类在派生类中只有一个拷贝,必须将该基类说明为(10) 。

第五章多态性

一、单选题

1、下列运算符中,______运算符在C++中不能重载。

A、:

B、+

C、—

D、<=

2、下列运算符中,______运算符在C++中不能重载。

A、>

B、[ ]

C、::

D、<<

3、在C++中,通常重载运算符的成员函数称为______。

A、运算符函数

B、重载函数

C、函数重载运算符

D、以上都不对

4、下列函数中,______不能重载。

A、成员函数

B、非成员函数

C、析构函数

D、构造函数

5、系统在调用重载函数时,往往根据一些条件确定哪个重载函数被调用,在下列选项中,

不能作为依据的是______。

A、参数的个数

B、参数的类型

C、参数的顺序

D、函数的类型

6、下列对重载函数的描述中,______是错误的。

A、重载函数中不允许使用默认参数

B、重载函数中编译是根据参数表进行选择的

C、一般情况下,不要使用重载函数来描述毫无相干的函数

D、构造函数重载将会给初始化带来多种方式

7、下列关于运算符重载的描述中,______是正确的。

A、运算符重载可以改变运算符的个数

B、运算符重载可以改变优先级

C、运算符重载可以改变结合性

D、运算符重载不可以改变语法结构

8、要实现动态联编,派生类中的虚函数______。

A、参数个数必须与函数的原型相同,参数类型可以与函数的原型不同

B、参数类型必须与函数的原型相同,返回类型可以与函数的原型不同

C、参数个数、类型和顺序必须与函数的原型相同,返回类型必须与函数的原型相同

D、以上都对

9、关于虚函数的描述中,______是正确的。

A、虚函数是一个static类型的成员函数

B、虚函数是一个非成员函数

C、基类中说明了虚函数后,派生类中对其对应的函数可不必说明为虚函数

D、派生类的虚函数与基类的虚函数具有不同的参数个数和类型

10、______是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。

A、虚析构函数

B、虚构造函数

C、纯虚函数

D、静态成员函数

11、对于以下类定义,下面正确的叙述是( )

class A

{ public:

virtual void func1( ){ }

void func2( ){ } };

class B:public A{ public:

void func1( ){cout<< ″ class B func 1 ″ <

virtual void func2( ){cout<< ″ class B func 2 ″ <

A、A::func2( ) 和B::func1( ) 都是虚函数

B、A::func2( ) 和B::func1( ) 都不是虚函数

C、B::func1( ) 是虚函数,而A::func2( ) 不是虚函数

D、B::func1( ) 不是虚函数,而A::func2( ) 是虚函数

12、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:。

A、AB operator+(AB & a , AB & b)

B、AB operator+(AB & a)

C、operator+(AB a)

D、AB & operator+( )

13、下面是对虚函数的的正确描述。

A、虚函数不能是友元函数

B、构造函数可以是虚函数

C、析构函数不可以是虚函数

D、虚函数可以静态成员函数

二、填空题

1、C++ 支持的两种多态性分别是_________多态性和________ 多态性。

2、静态编联通过和实现,动态编联通过和实现。

3、函数重载时,须符合相同和、、之一至少不

四个条件

4、运算符重载的两种方法:和。

参考答案

第一、二、六、七章习题答案

一、选择题:

1、C

2、A

3、A

4、A

5、D

6、D

7、A

8、A

9、D 10、D

11、A 12、C 13、B 14、B 15、C

16、A

二、填空题

1、继承、多态

2、公有

3、类型个数

4、内置

5、相同的

6、::

7、500 1000

500 500

8、2 8

9、300 600

10、x= y=16 z=C

X= y=2 z=C

11、ABCDEFXHI

12、

13、(两个空格) 7890 7890

14、64 64 64

第三章类和对象

一、选择题

1、D

2、A

3、D

4、C

5、C

6、A

7、A

8、A

9、C 10、B

11、C 12、D 13、C 14、C 15、C 16、A 17、D 18、C 19、A 20、A

二、填空题

1.某个对象的引用

2.值传递,地址传递,引用传递

3.public, private, protected

4.私有或private

5.Private, protected, public

6.构造函数

7.1

8.静态

9.a 是类Sample 的对象引用,用来作函数Set ( )的形参

10.类名::

11.当前对象的地址

12.Constructor

i = 10

i = 20

13.n=10, k=3

n=20, k=3

n=30, k=3

14.5 6 7

15.Constructing A

Constructing B

Destructing B

Destructing A

第四章派生类与继承

一、选择

1、C

2、C

3、D

4、C

5、A

6、C

7、C

8、B

9、D 10、B 11、B 12、A 13、

C 14、

D 15、B

二、填空题

1、私有派生

2、公有派生

3、保护派生

4、私有成员

5、保护成员

6、公有成员

7、基类

8、派生类9、私有性

10、虚基类

第五章多态性参考答案

一、单选题

1、A

2、C

3、D

4、C

5、D

6、A

7、D

8、C

9、C 10、A 11、C 12、B 13、A

二、填空题

1、编译时的(或静态) 运行时的(或动态)

2、函数重载运算符重载继承虚函数

3、函数名形参个数形参类型形参顺序

4、友员运算符函数成员运算符函数

sql数据库基础面试题复习试题考试题_全

不定项选择题(针对以下题目,请选择最符合题目要求的答案,每道题有一项或二项正确答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。题量为50道,每题2分,总分为100分。) 第一章 1、是SQLServer数据库的主数据文件的扩展名。(选择一项) A、.sql B、.mdb C、.ldf D、.mdf 2、在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是()。 (选择一项) A、master B、pubs C、model D、msdb 3、当安装完SQL Server2005数据库时,系统默认当前的超级管理员是( ) (选择一项) A、sa B、master C、administrator D、super 4、在使用SQL Server2005数据库时,有时需要将本机的数据库移动到其他机器上,恢复成对应的数据库使用。移动数据库分两步进行,应包括()和附加数据库(选择一项)A、分离数据库 B、删除数据库 C、新建数据库 D、合并数据库 5、在SQL Server2005中,附加数据库操作是指()(选择一项) A、把SQL Server 数据库文件保存为其他数据文件 B、根据数据库物理文件中的信息,把数据库在SQL Server 2005中恢复 C、把所有该数据库表的数据清空 D、把数据库删除掉 6、某单位由不同的部门组成,不同的部门每天都会生产一些报告、报表等数据,以为都采用纸张的形式来进行数据的保存和分类,随着业务的发展,这些数据越来越多,管理这些报告越来越费力,此时应考虑()(选择一项) A、由多个人来完成这些工作 B、在不同的部门中,由专门的人员去管理这些数据 C、采用数据库系统来管理这些数据 D、把这些数据统一成一样的格式 7、在SQL Server 2005中,对于数据库的定义正确的是()(选择一项) A、数据库是用来描述事物的符号记录 B、数据库是位于用户与操作系统之间的一层数据管理软件

SQL数据库面试题目及其答案

1.触发器的作用? 答: 触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。 它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 答: 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。 3.索引的作用?和它的优点缺点是什么? 答: 索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。 缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 3。什么是内存泄漏? 答: 一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete 释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。

4.维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什 么? 答: 我是这样做的,尽可能使用约束,如check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。 5.什么是事务?什么是锁? 答: 事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。 要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。 锁: 在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。 6."什么叫视图?游标是什么? 答: 视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。 游标:

数据库笔试面试题汇总

1、什么是第三范式(第一范式,第二范式。。。) 2、请说出delete,truncate,drop 的区别 3、怎么样查询特殊字符,如通配符%与_ 4、如何插入单引号到数据库表中 5、怎么获得今天是星期几,还关于其它日期函数用法 6、知道出生日期,如何求年龄? 7、求上个月月底的日期 8、数据库类型中Varchar和char的区别是? 9、已知两张表:人员表(person) 和部门表(depart),表结构如下: 10、数据库Teacher 属性:name,tid,desc,表Student属性:name,sid,related_tid ,desc 查询 所属老师名称为”\like” 的全部学生。 11、设有一个关系表Student (学号stu_id,姓名stu_name,系名stu_dept,课程号 stu_courseid,成绩 grade) 11.1 查询至少选修了四门课程的学生的学号、姓名及平均成绩的select语句? 11.2 将选修课程数小于5的学生名字后面增加一个#号 12、用一条sql语句实现下面结果:怎么把这样一个表Testcol: 13、有两个表T_STU表和T_CLASS表和一个序列sequence序列,T_STU表里有如下字段:........ 13.1 查询入学年龄在18-20的女生或者未输入性别的,实际年龄小的要排在后面 13.2 查询班级名称、学生姓名、性别、缴费(要求显示单位:元),相同班级的要放在一起,姓名根 据字典顺序排列。 13.3 查询各班名称和人数 13.4 查询各班名称和人数,但人数必须不少于2,人数多的放在前面 13.5 查询1980年出生的有哪些学生。 13.6 查询男生和女生人数,没有输入性别的当作男 13.7 查询没有人员的班级 13.8 查询入学年龄在20以上的同学信息 13.9 查询班级平均入学年龄在20及以上的班级 13.10 有工资表salary(e_id,e_date,e_money),求本月发了2笔以上工资的员工信息。 14、有部门表、人员表、工资表。表名和字段名,如下: 14.1 查询:人员名称、部门名称、个人总工资 14.2 查询所有部门的总工资 14.3 查询2008年8月份各部门工资最高的员工信息:部门名称、员工姓名、员工总工资 15、表warehousestorage 数据库笔试面试题汇总

数据库笔试题及标准答案,常见数据库面试题

数据库笔试卷及答案 第一套 一.选择题 1. 下面叙述正确的是______。 A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是______。A、队列B、线性表C、二叉树D、栈 3. 在一棵二叉树上第5层的结点数最多是______。A、8 B、16 C、32 D、15 4. 下面描述中,符合结构化程序设计风格的是______。 A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用goto语句 5. 下面概念中,不属于面向对象方法的是______。 A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 7. 在软件开发中,下面任务不属于设计阶段的是______。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是______。 A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是______。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro数据库文件是______。 A、存放用户数据的文件 B、管理数据库对象的系统文件 C、存放用户数据和系统的文件 D、前三种说法都对 12. SQL语句中修改表结构的命令是______。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是______。 A、部门+性别+基本工资 B、部门+性别+STR(基本工资) C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资) 14. 把一个工程编译成一个应用程序时,下面的叙述正确的是______。 A、所有的工程文件将组合为一个单一的应用程序文件 B、所有工程的包含文件将组合为一个单一的应用程序文件

数据库笔试题(附带带答案)

选择题 1. 下面叙述正确的是___c___。 A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是___c___。 A、队列 B、线性表 C、二叉树 D、栈 3. 在一棵二叉树上第5层的结点数最多是__b____。2的(5-1)次方 A、8 B、16 C、32 D、15 4. 下面描述中,符合结构化程序设计风格的是___a___。 A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用goto语句 5. 下面概念中,不属于面向对象方法的是___d___。 A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是___b___。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 7. 在软件开发中,下面任务不属于设计阶段的是__d____。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是___b___。 A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是__c____。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是___a___。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro数据库文件是___d___。 A、存放用户数据的文件 B、管理数据库对象的系统文件 C、存放用户数据和系统的文件 D、前三种说法都对 12. SQL语句中修改表结构的命令是___c___。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是__b____。 A、部门+性别+基本工资 B、部门+性别+STR(基本工资) C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资) 14. 把一个项目编译成一个应用程序时,下面的叙述正确的是___a___。 A、所有的项目文件将组合为一个单一的应用程序文件 B、所有项目的包含文件将组合为一个单一的应用程序文件

数据库经典笔试题总结

数据库经典笔试题总结.txt和英俊的男人握握手,和深刻的男人谈谈心,和成功的男人多交流,和普通的男人过日子。数据库经典笔试题总结 面试穿什么着装合适,这里找答案! 1,范式 7大范式:1NF, 2NF,3NF,BCNF,4NF,5NF,6NF 什么叫normalization?Denormalization? Normalization是数据库规范化,denormalization是数据库逆规范化。 在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是"数据库规范化"。目的:减少数据库中数据冗余,增进数据的一致性。 范式概念: 1)1NF:目标就是表中每列都不可分割; 2)2NF:目标就是表中的每行都是有标识的。前提是满足了1NF. 当关键字为单field时,一定满足2NF。当关键字为组合field时(即超过一个field),不能存在组合关键字中有某个字段能够决定非关键字段的某部分。非主field非部分依赖于主field,即非关键字段必须完全依赖于一组组合关键字,而不是组合关键字的某一部分。 3)3NF:目标是一个table里面所有的列不依赖于另外一个table里面非关键的列。前提是满足了2NF,不存在某个非关键字段决定另外一个非关键字段。即:不存在传递依赖(关键字x->非关键属性y->非关键属性z) 4)BCNF:前提是满足了2NF,不存在某个非关键字段决定另外一个非关键字段。也不存在某个关键字段决定另外一个关键字段。即:在3NF基础上,加上约束:不存在某个关键字段决定另外一个关键字段。 1 第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图3-2 中的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列。 2 第二范式(2NF) 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。如图3-2 员工信息

mysql数据库笔试练习题复习(一).doc

精品文档 数据库笔试题(一) 一、选择题 1.数据库系统的核心是_B___。 A.数据库 B.数据库管理系统 C.数据模型 D.软件工具 2.SQL语言具有__B__的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵 3.SQL语言的数据操纵语句包括 SELECT,INSERT,UPDATE和 DELETE,最重要的,也是使用最频繁的语句是__A__。 A.SELECT B.INSERT C.UPDATE D.DELETE 4.在关系数据库设计中,设计关系模式是__C__的任务。 A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段5.__C__是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。 A.程序 B.命令 C.事务 D.文件 6.在数据库中,产生数据不一致的根本原因是__D__。 A.数据存储量太大 B.没有严格保护数据 C.未对数据进行完整性控制 D.数据冗余

7.下列SQL语句中,创建关系表的是__B__。 A.ALTER B.CREATE C.UPDATE D.INSERT 8.数据库的__B__是为了保证由授权用户对数据库所做的修改不会影响数据一致性的损失。 A.安全性 B.完整性 C.并发控制 D.恢复 9.事务是数据库进行的基本工作单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于_____B___状态。 A.安全性 B.一致性 C.完整性 D.可靠性 10.对并发操作若不加以控制,可能会带来数据的___D_问题。 A.不安全 B.死锁 C.死机 D.不一致 二、填空题 1.数据冗余可能导致的问题有____________________和 _____________________。 答案:①浪费存储空间及修改麻烦②潜在的数据不一致性 2.数据库在运行过程中可能产生的故障有____________、_______________、 ___________。 答案:①Transaction failure ②System crash ③Disk failure 3.视图是一个虚表,它是从_________中导出的表。在数据库中,只存放视图的 ________,不存放视图的_____________。 答案:一个或几个基本表、定义、视图对应的数据 4.关系操作的特点是____________操作。 答案:集合 三、简答题

数据库面试问题汇总

数据库面试问题汇总 1.数据库管理命令 1.1查询所有数据库 ---- show databases; 1.2创建数据库,并将数据库字符集默认为utf-8 ----create database day814 ----default character set utf8 -----; 1.3查看数据库的默认字符集 ----show create database day814; 1.4 删除数据库 ---- drop database day15; 1.5 修改数据库(即修改数据库的默认字符集) -----alert database day814 default character set gbk; 2.表管理命令 2.1选择数据库命令 ----- use day814; 2.2查看所有表 ---- show tables; 2.3 创建表 ---- create table student( -----sid int, -----sage int, -----sname varchar(20) -----); 2.4 查看表结构 ------desc student; 2.5 删除表 ----- drop table student; 2.6 修改表 添加字段 -----alter table student add column sgender varchar(2); 删除字段 -----alter table studnet drop column s gender; 修改字段类型 -----alter table student modify column sgender varchar(100); 修改字段名称 -----alter table student change column sgender gender varchar(100); 修改表名称 -----alter table student rename to teacher; 3.数据管理

SQL数据库面试题目及其答案

1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。 它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。 3.索引的作用?和它的优点缺点是什么? 答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。 缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 3。什么是内存泄漏? 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new 等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 4.维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么? 答:我是这样做的,尽可能使用约束,如check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。 5.什么是事务?什么是锁? 答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。 要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。 锁:在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。

数据库笔试面试题

整理出来供大家参考 1.数据库技术经历哪几个发展阶段? 答:数据库技术随着计算机硬件和软件技术的发展,经历了如下3个阶段(1人工管理阶段(2 文件系统阶段(3 数据库管理阶段 2.数据库技术在人工管理阶段的特点是哪些? 答:该阶段数据管理的特点是(1数据不保存。因为计算机主要应用于科学计算, 一般不需要将数据长期保存(2数据需要由应用程序自己进行管理。 应用程序不仅要规定数据的逻辑结构,而且还要设计物理结构,包括存储结构,存取方法,输入输出方式等。(3 这一时期基本上没有文件概念,数据的组织方式必须由程序员自行设计(4 数据不共享。一组数据对应一个程序,数据是面向应用的 3.数据库系统的发展可以划分哪几代? 答:数据库系统起源于60年代中期,其发展可以划分为三代(1第一代数据库系统, 机层次数据库系统和网状数据库系统,主要支持层次和网状数据模型,其特点是支持三级抽象模式的体系结构;用指针来表示数据之间的联系,数据定义语言和数据操作语言相对独立,数据库语言采用过程性语言(2第二代数据库系统,即关系数据库系统主要支持关系数据模型,有严格的理论基础,概念简单、清晰、易于理解和使用。关系模型一经提出,便迅速发展,成为使用性最强产品。该数据库系统的主要特点是:概念单一化,数据及其数据 间的联系都要用关系来表示;以关系代数为理论基础;数据独立性强,数据库语言采用说明性语言,简化了编程难度(3 第三代数据库系统, 即面向对象数据库系统,它基于扩展的关系数据模型或面向对象数据模型,是尚未成熟的一代数据库系统,其主要特点是支持包括数据、对象和知识的管理;在保持和继承第二代数据库系统的技术基础引入面向对象技术;对其他系统开放,具有良好的可移值性棵连接性、扩展性和可互操作性 5.关系数据模型的操纵与完整性的约束各有哪些?

Oracle数据库DBA面试题及答案_经典

1.OracleDBA面试题之一解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。 冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 4. OracleDBA面试题:解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents 被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息

数据库面试题整理

数据库部分 1、数据库三范式是什么? 第一范式(1NF): 字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。 第二范式(2NF): 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。 第三范式(3NF): 满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。 所以第三范式具有如下特征: 1,每一列只有一个值 2,每一行都能区分。 3,每一个表都不包含其他表已经包含的非主关键字信息。 例如,帖子表中只能出现发帖人的id,而不能出现发帖人的id,还同时出现发帖人姓名,否则,只要出现同一发帖人id 的所有记录,它们中的姓名部分都必须严格保持一致,这就是数据冗余。

2、说出一些数据库优化方面的经验? 1、关键字段建立索引。 2、使用存储过程,它使SQL变得更加灵活和高效。 3、备份数据库和清除垃圾数据。 4、SQL语句语法的优化。 5、清理删除日志。 3、union 和union all 有什么不同? UNION 在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。这个SQL 在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。而UNION ALL 只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。 从效率上说,UNION ALL 要比UNION 快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL, 4.分页语句 取出sql 表中第31到40的记录(以自动增长ID 为主键) sql server 方案1: selecttop 10 * from t where id not in (select top 30 id from t order by id ) orde byid sql server 方案2: selecttop 10 * from t where id in (select top 40 id from t order by id) order by iddesc mysql 方案:

数据库笔试题及答案,常见数据库面试题

数据库笔试题及答案 第一套 一.选择题 1. 下面叙述正确的是______。 A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是______。A、队列B、线性表C、二叉树D、栈 3. 在一棵二叉树上第5层的结点数最多是______。A、8 B、16 C、32 D、15 4. 下面描述中,符合结构化程序设计风格的是______。 A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用goto语句 5. 下面概念中,不属于面向对象方法的是______。 A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 7. 在软件开发中,下面任务不属于设计阶段的是______。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是______。 A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是______。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro数据库文件是______。 A、存放用户数据的文件 B、管理数据库对象的系统文件 C、存放用户数据和系统的文件 D、前三种说法都对 12. SQL语句中修改表结构的命令是______。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是______。 A、部门+性别+基本工资 B、部门+性别+STR(基本工资) C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资) 14. 把一个项目编译成一个应用程序时,下面的叙述正确的是______。 A、所有的项目文件将组合为一个单一的应用程序文件 B、所有项目的包含文件将组合为一个单一的应用程序文件

数据库面试基础知识总结

1. 数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式 提示: (1). 概念模式:(面向单个用户的) 是数据中全部数据的整体逻辑结构的描述。它由若干个概念记录类型组成。 (2). 外模式:(面向全局的) 是用户与数据库系统的接口,是用户用到的那部分数据的描述。它由若干个外部记录类型组成。 (3). 内模式:(面向存储的) 是数据库在物理存储方面的描述,它定义所有的内部记录类型、索引、和文件的组织方式,以及数据控制方面的细节。 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应与同一个模式可以有任意多个外模式。在数据库中提供两级映像功能,即外模式/模式映像和模式/内模式映像。对于没一个外模式,数据库系统都有一个外模式/模式映像它定义了该外模式与模式之间的对应关系。这些映像定义通常包括在各自外模式的描述中,当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而保证了数据的物理独立性。 2. SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制(Data Control) 数据定义:Create Table,Alter Table,Drop Table,Craete/Drop Index等 数据操纵:Select ,insert,update,delete, 数据控制:grant,revoke 3. SQL常用命令 CREATE TABLE Student( ID NUMBER PRIMARY KEY, NAME V ARCHAR2(50) NOT NULL);//建表 CREATE VIEW view_name AS Select * FROM Table_name;//建视图 Create UNIQUE INDEX index_name ON TableName(col_name);//建索引 INSERT INTO tablename {column1,column2,…} values(exp1,exp2,…);//插入 INSERT INTO Viewname {column1,column2,…} values(exp1,exp2,…);//插入视图实际影响表 UPDA TE tablename SET name=’zang 3’ condition;//更新数据 DELETE FROM Tablename WHERE condition;//删除 GRANT (Select,delete,…) ON (对象) TO USER_NAME [WITH GRANT OPTION];//授权 REVOKE (权限表) ON(对象) FROM USER_NAME [WITH REVOKE OPTION] //撤权 列出工作人员及其领导的名字: Select https://www.360docs.net/doc/f215759228.html,,https://www.360docs.net/doc/f215759228.html, FROM EMPLOYEE E S WHERE E.SUPERName=https://www.360docs.net/doc/f215759228.html, 4. 视图 提示: 计算机数据库中的视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的

数据库常见笔试题汇总

数据库常见笔试题汇总

选择题 1. 下面叙述正确的是___c___。 A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是 ___c___。 A、队列 B、线性表 C、二叉树 D、栈 3. 在一棵二叉树上第5层的结点数最多是__b____。2的(5-1)次方 A、8 B、16 C、32 D、15 4. 下面描述中,符合结构化程序设计风格的是 ___a___。 A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,能够有多个出口 C、注重提高程序的执行效率 D、不使用goto语句 5. 下面概念中,不属于面向对象方法的是___d___。

A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是___b___。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 7. 在软件开发中,下面任务不属于设计阶段的是 __d____。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是___b___。 A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是__c____。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是___a___。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro数据库文件是___d___。

数据库面试题

1.写出学生表增删查改的语句(考基础的) 2.有三张表用not in not exists left join 写出获奖图书的作者信息,比较哪一种最优 上面的是笔试题。 3道Linux的题目,一道是自己熟悉的os的性能数据的命令,统计文件中指定字符串个数,linux的几个内核参数 数据库的是大头,考了执行计划的执行顺序和解释,优化SQL 写了一个动态的批量提交的存储过程 实例恢复的大概流程,redo,undo的作用什么的 生产环境压力很大的时候,说说自己会怎么做,类似的问题,记不请了 大概就是这样吧 总结:linux得深入学习学习了,复习基础shell + 看实际程序 + 操作系统命令(尤其跟DB管理有关的)+ 有时间看看内核方面的。以前看的shell,因为仅仅是理论,没有实际运用经验,所以很快忘光光,真让自己写起来,觉得茫然无从下手。 一、Transact-SQL问题: 1 有订单表SO_Table,单号字段RefNo VARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号,如:2004050001,2004050002 (2004059999) 等,采用Transact-SQL实现新订单编号的思路。 2 有表T1,T2,现有一事务,在向表T1添加数据时,同时也必须向T2也添加数据,如何确何数据的完整性。 3 如何求表中相邻(按聚集索引相邻)的两条记录的某字段的值之差,用Transact-SQL语句或存储过程。 4 如何删除表中的重复数据,用Transact-SQL写出代码。 5 基于MS-SQLSERVER 2000,如何统计数据库中所有用户表的数据,显示格式如下: 表名记录数 sales 23 6 人员情况表(employee)中字段包括,员工号(ID),姓名(name),年龄(age),文化程度(wh):包括四种情况(本科以上,大专,高中,初中以下),现在我要根据年龄字段查询统计出:表中文化程度为本科以上,大专,高中,初中以下,各有多少人,占总人数多少。结果如下: 学历年龄人数百分比 本科以上 20 34 14 大专 20 33 13 高中 20 33 13

数据库笔试题(考察基本SQL能力)

注意:尽量不要用“in”及“=”,用关联查询。 表:--1.学生表 Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名, Sage 出生年月,Ssex 学生性别 --2.课程表 Course(C#,Cname,T#) -- C# 课程编号,Cname 课程名称,T# 教师编号 --3.教师表 Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名 --4.成绩表 SC(S#,C#,score) -- S# 学生编号,C# 课程编号,score 分数 题目: 1、查询“01”课程比“02”课程成绩高的学生的信息及课程分数? Select s.S#, s.Sname, s.Sage, s.Ssex, middle.score01, middle.score02 from Student s, ( Select a.S#, a.score as score01, b.scor e as score02 from SC a, SC b where a.S#=b.S# and a.C#=’01’ and b.C#=’02’ and a.score > b.score) middle where s.S# = middle.S#; 2、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩? Select s.S#, s.Sname, middle.avgScore from Student s, (Select S#, avg(score) as avgScore from SC group by S# having avgScore>=60) middle where s.S# = middle.S#; 3、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩? Select s.S#, s.Sname, middle.Cs, middle.Ss from Student s, (Select S#, count(C#) as Cs, sum(score) as Ss from SC group by S# ) middle Where s.S# = middle.S#; 4、查询学过“张三”老师授课的同学的信息? Select s.S#, s.Sname, s.Sage, s.Ssex from Student s, Course c, Teacher t, SC sc Where t.Tname = “张三”and c.T# = t.T# And c.C# = sc.C# and sc.S# = s.S#; 5、查询学过编号为“01”并且也学过编号为“02”的课程的同学的信息? Select s.* from Student s, SC sc01, SC sc02 Where sc01.C#=’01’ and sc02.C#=’02’ And s.S#=sc01.S# and s.S#=sc02.S#; 6、查询没有学全所有课程的同学的信息? Select count(distinct C#) from SC; -- 记录为total Select s.* from Student s, (Select S#, count(distinct C#) as cs from SC group by S# having cs< total) middle Where s.S# = middle.S#;

相关文档
最新文档