当前位置:文档之家› SQLServer考试试题及复习资料

SQLServer考试试题及复习资料

SQLServer考试试题及复习资料
SQLServer考试试题及复习资料

2013年(下)全国信息技术水平考试数据库应用系统设计技术水平证书

(SQL Server)考试试卷

第一大题:单选题(30 分)

1. (1分)

数据模型的三要素不包括()。

(A) 数据结构(B) 数据操作(C) 数据完整性约

束(D) 数据恢复

2. (1分)

数据的存储结构与数据逻辑结构之间的独立性称为数据的

()。

(A) 结构独立性(B) 物理独立性(C) 逻辑独立

性(D) 分布独立性

3. (1分) 如果对于实体集A中的每一个实体,实体集B中可有多个实体与之联

系;反之,对于实体集B中的每一个实体,实体集A中也可有多个实体与之联系。则称实体集A与B具有()。

(A) 1:1联系(B) 1:n联系(C) n:m联

系(D) 多种联系

4. (1分)

当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的()。

(A) 元组(B) 关键字(C) 记

录(D) 属性

5. (1分)

若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为()。

(A) R1(A,B,C,D) R2(A,E)

(B) R1(A,B,C) R2(A,D,E)

(C) R1(A,B,C) R2(D,E)

(D) R1(A,B) R2(A,C,D,E)

6. (1分) SQL语言查询一次的结果是一个()。

(A) 元组(B) 表(C) 属性(D) 数据

7. (1分)

在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为()。

(A) 平凡函数依赖

(B) 部分函数依赖

(C) 完全

函数依赖

(D) 传递函数依赖

8

. (1分)

在Transact-SQL中,下列命令能让程序完全跳出循环的是(

)。

(A) CASE

(B) WAIT (C) BREAK (D) CONTINU E

9 . (1

分) 在Transact-SQL中,下列选项不属于数值型数据类型的是(

)。

(A) NUMERIC

(B) DECIMAL (C) INTEGER (D) DATE

10. (1分) 下列选项中,可以正确表达姓“张”的通配符是(

)。

(A) 张

_ (B) 张

% (C) 张

^ (D) 张&

1

1.

(1

分)

下列聚合函数中正确的是(

)。

(A) SUM (*)

(B) MAX (*)

(C) COUNT (*)

(D) AVG (*)

12.

(1

分)

如果某一列的数据类型是FLOAT,则不允许对该列使用的函数是(

)。

(A) SUM

(B) ABS (C) LEFT (D) ROUND 13

. (1

)

在SQL的SELECT语句中,与投影运算对应的子句是(

)。

(A) SELECT

(B) FROM (C) WHERE (D) GROU

P BY

14. (1

分)

在SQL语言中,给表起别名应使用(

)。

(A) AS

(B) RENAME (C) SET (D) FOR

15. (1分) 在SELECT语句中使用GROUP BY

SNO时,SNO必须()

(A) 在WHERE中出现

(B) 在FROM中出现

(C) 在SELECT 中出现

(D) 在HAVING 中出现

16. (1分)

要想使关系R 和S 进行等值连接时,结果集不仅包含符合连接条件的匹配元组,也包括

S 和R 中的所有元组,应使用( )。

(A) JOIN

(B) LEFT JOIN (C) RIGHT JOIN (D)

FULL JOIN

17. (1分) 在SQL 语言中,下面关于谓词

EXISTS 说法错误的是( )。

(A) 谓词EXISTS 后面可以跟相关子查询

(B) 谓词EXISTS 后面可以跟不相关子查询

(C) 谓词EXISTS 后面的子查询返回一个记录的集合

(D) 谓词EXISTS 可以用在WHERE 子句

18. (1分)

在SQL 语言中,不可以和ANY

谓词一起使用的运算符是( )。

(A) AND

(B) > (C) <> (D) =

19. (1

分) 在SQL SERVER 中,下列关于

DEFAULT 约束的说法错误的是( )。

(A) DEFAULT 约束用于指定某个字段的默认值

(B) DEFAULT 约束可以在创建表后添加

(C) 每列可以有多个DEFAULT 约束

(D) DEFAULT 约束中可以使用系统函

20. (1

分)

如果删除表中的数据,而不删除表,应使用的选项是( )。

(A) DELETE

(B) DROP (C) UNION

(D) REMO VE

21. (1分

) 为数据表创建索引的目的是( )。

(A) 提高查询的检索性能

(B) 加快数据库的打开速

度 (C) 创建主键 (D) 归类

22. (1分)

在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间常用的方法是创建()。

(A) 另一个表

(B) 游标

(C) 视

(D) 索引

23. (1分) 下列关于DELETE语句的说法中错误的是()。

(A) DELETE语句可以删除一行数据

(B) DELETE语句可以删除表中所有数据

(C) DELETE语句可以带有子查询

(D) DELETE语句可以删除多个表中的数据

24 . (1分)

在SQL SERVER 2008中,下列选项中不属于基本表权限的是()。

(A) SELECT

(B) INSERT

(C) UPDATE

(D) E XCUTE

25 . (1分)

在SQL SERVER 2008中,系统存储过程在系统安装时就已创建,这些存储过程存放在()系统数据库中。

(A) master

(B) tempdb

(C) model

(D) ms

db

26. (1分)

在SQL SERVER 2008中,下列关于触发器的描述错误的是()。

(A) 它是一种特殊的存储过程

(B) 可以在视图上创建触发器

(C) 一个表上只能创建一个触发器

(D) 触发器可以用来实现数据完整性

2 7.

(1分) 在SQL SERVER 2008中,默认的事务隔离级别是(

)。

(A) READ COMMITTED

(B) READ UNCOMMITTED (C) R

EPEATABLE READ (D) SERIALIZABLE

2 8.

(1在动态SQL中,下列语句表示立刻执行一个SQL语句文本的是(

)。

(A) EXECUTE (B) EXECUTE IMMEDIATE (C) PROCESS

分)

(D) PROCESS IMMEDIATE

29

. (1分)

在SQL SERVER 2008

中,不能恢复的操作是( )。

(A) DELETE

(B) UPDATE (C) INSERT (D) TR UNCATE

TABLE 30. (1分) 下列数据模型中,属于数据模型节点数据间没有明确的从属关系,

一个节点可以与其他多个节点建立联系的是( )。

(A) 层次数据模型

(B) 网状数据模型

(C) 关系数据模型

(D) 面向对象数据模型

第二大题:判断题 (10 分)

1. (1分)

数据独立性是指数据库与计算机系统的独立性。

2. (1分) 3NF

中存在非主属性对码的部分依赖。

错 3. (1

分) “职称 in ('教授',

'副教授'')”与“职称 = '教授' or 职称 =

'副教授'”等价。

4. (1分) 在SQL SERVER

2008中,能在游标中删除数据记录。

5. (1分)

数据库不允许存在数据冗余。

6. (1分) Having 语句可以放在WHERE

语句后面作为元组选择的附加条件。

错 7. (1

分) 在SQL SERVER 2008中,可以使用CREATE 语句创建数据库对

象。

对 错

8. (1分) 在SQL SERVER 2008中,引发触发器的SQL语句一定会执行。

对错

9. (1分) 在SQL SERVER 2008中,只有行级锁。

对错

10. (1分) 在SQL SERVER 2008中,允许字段名为汉字。

对错

第三大题:设计题(60 分)

1. (3

分)

输入语句,创建名为“Exam”的数据库。操作成功后,保存所有语

句,把保存文件命名为T2-1.sql,并保存到考生文件夹中。

create database Exam --创建数据库

go

2. (6分)

输入语句,创建以上3个基本表及主键,并插入表4、表5和表6所给数据。操作成功后,保存所有语句,把保存文件命名为

T2-2.sql,并保存到考生文件夹中。

USE Exam

GO

CREATE TABLE book --图书表

(

bno Char(4) primary key NOT NULL,--图书编号

bname char(20) not null,

author char(10) not null,

publish char(20) not null,

pubdate datetime null

)

GO

create table reader --读者表

(

rno char(4) primary key not null, --读者编号

rname char(10) null

)

go

create table borrow --借书表

(

borrowno int primary key not null,

bno char(4) not null,

rno char(4) not null,

borrowdate datetime

)

go

insert into book values ('001','数据库原理','李明','出版社A','2008-10-01')

insert into book values ('002','软件工程','张永','出版社

B','2008-08-09')

insert into book values ('003','操作系统','赵明哲','出版社A','2009-03-06')

insert into book values ('004','数据结构','张辉','出版社

C','2009-05-28')

insert into book values ('005','编译原理','孙兵','出版社B','2009-10-30')

insert into reader values ('001','李莎')

insert into reader values ('002','陈世杰')

insert into reader values ('003','吴忠')

insert into borrow values ('1','001','001','2010-03-15') insert into borrow values ('2','002','001','2010-03-20') insert into borrow values ('3','002','002','2010-03-30') insert into borrow values ('4','003','002','2010-04-05') insert into borrow values ('5','003','001','2010-04-12') insert into borrow values ('6','004','001','2010-04-21')

3. (3分)

输入语句,在借书表上为“借书日期”列加上default约束,默认值为当前系统日期。操作成功后,保存所有语句,把保存文件命名为T2-3.sql,并保存到考生文件夹中。

ALTER TABLE borrow DROP COLUMN borrowdate

alter table borrow add borrowdate datetime default getdate()

4. (3分)

输入语句,查询“操作系统”的所有借书记录。查询成功后,保存所有语句,把保存文件命名为T2-4.sql,并保存到考生文件夹中。select * from borrow where bno=(select bno from book where bname='操作系统')

5. (3分)

输入语句,查询“出版社A”所出版图书每本的借阅次数,查询结果由“图书编号”和“借阅次数”两列组成。查询成功后,保存所有语句,把保存文件命名为T2-5.sql,并保存到考生文件夹中。

select a.bno,count(b.rno)借读次数

from book as a join borrow as b on a.bno=b.bno where a.publish='出版社A' group by a.bno

6. (3分)

输入语句,查询借阅次数最多图书的图书名称。查询成功后,保存所有语句,把保存文件命名为T2-6.sql,并保存到考生文件夹中。select top 1 with ties a.bno ,a.bname

from book as a join borrow as b

on a.bno=b.bno

group by a.bno,a.bname

order by count(*) desc

7. (3分)

输入SQL语句,实现查询没有借过任何书的读者的读者编号和读者姓名。查询成功后,保存所有语句,把保存文件命名为T2-7.sql,并保存到考生文件夹中。

select rno,rname

from reader where rno not in(select a.rno

from reader as a join borrow as b

on a.rno = b.rno)

8. (3分)

输入语句,在“图书表”和“借书表”之间进行左外连接操作,连接条件是图书编号相等。操作成功后,保存所有语句,把保存文件命名为T2-8.sql,并保存到考生文件夹中。

select a.* from book as a left join borrow as b on a.bno=b.bno

9. (3分)

输入语句,查询2010年4月的借书记录。查询成功后,保存所有语句,把保存文件命名为T2-9.sql,并保存到考生文件夹中。

select * from borrow where borrowdate between '2010-03-31' and '2010-05-01'

10. (3分)

输入语句,查询最近3次借书记录。查询成功后,保存所有语句,把保存文件命名为T2-10.sql,并保存到考生文件夹中。

select top 3 * from borrow order by borrowdate desc

11. (3分)

输入语句,在图书表的图书名称列建立一个名为“bnameindex”的非聚簇索引,要求该索引采取降序排列。操作成功后,保存所有语句,把保存文件命名为T2-11.sql,并保存到考生文件夹中。use Exam

go

create nonclustered index bnameindex

on book(bname desc)

12. (3分)

输入语句,实现删除“数据结构”的所有借书记录。操作成功后,保存所有语句,把保存文件命名为T2-12.sql,并保存到考生文件夹中。

use Exam

go

delete

from borrow

where bno in (select bno from book where bname='数据结构')

13. (6分)

输入语句,建立名为“newtrigger”的触发器,触发器规定当删除读者表中的一条记录时将借书表中相应读者的借书记录一并删除,然后删除读者表中的一条记录以触发触发器。操作成功后,保存该查询,把保存文件命名为T2-13.sql,并保存到考生文件夹中。use Exam

go

create trigger newtrigger

on book

after delete

as

delete from borrow where bno=(select bno from deleted)

14. (12分)

输入语句,声明一个检索“李莎”借阅的所有图书的游标,并遍历访问游标中的所有元素,要求有游标的声明、打开、提取数

据、关闭、释放的完整过程。操作成功后,保存所有语句,把保存文件命名为T2-14.sql,并保存到考生文件夹中。

declare cur_book cursor

for select bname from book where bno in(select bno from borrow as b join reader as r

on b.rno=r.rno

where r.rname='李莎')

open cur_book

fetch next from cur_book

close cur_book

deallocate cur_book

15. (3分)

输入语句,删除借书表。操作成功后,保存所有语句,把保存文件命名为T2-15.sql,并保存到考生文件夹中。

drop table borrow

SQLSERVER操作命令

SQLSERVER数据库操作 ******操作前,请确定SQL的服务已经开启******** 一:登录进入sql数据库 1、开始---所有程序---Microsoft SQL Server 2005---SQL Server Management Studio Express 2、此时出现“连接到服务器”的对话框, “服务器名称”设置为SQL数据库所在机器的IP地址 “身份验证”设置为SQL Server身份验证或者Windows 身份验证 填写登录名和密码后,点击“连接”按钮,即可进入到SQL数据库操作界面。 二:新建数据库 登录进去后,右击“数据库”,选择—“新建数据库” 设置数据库名称,在下面的选项卡中还可以设置数据库的初始大小,自动增长,路径。 点击确定,一个数据库就建好了。 三:如何备份的数据库文件。 登录进入后,右击相应的需要备份数据库----选择“任务” 目标下的备份到,点击“添加”按钮可以设置备份数据库保存的路径。 四:如何还原备份的数据库文件。(以本地机器为例子) 1、设置服务器名称,点击右边的下拉框的三角,选择“浏览更多…”。 此时出现查找服务器对话框,选择“本地服务器”---点开“数据库引擎”前面 的三角---选中出现的服务器名称—确定。 (注:可以在“网络服务器”选项卡中设置网络服务器) 2、设置身份验证,选择为“windows身份验证” 3、点击连接按钮,进入数据库管理页面 4、右击“数据库”,选择“还原数据库”,出现还原数据库的对话框 还原的目标----目标数据库,这里设置数据库的名字 还原的源----选择“源设备”,在弹出的对话框中点击“添加”按钮,找到所备 份的数据库文件,确定。 5、此时,在还原数据库对话框中会出现所还原的数据库的信息。在前面选中所需还 原的数据库。确定。 6、为刚刚还原的数据库设置相应的用户。 a点开“安全性”---右击“登录名”---新建登录名 b 设置登录名(假如为admin),并设置为SQL Server身份验证,输入密码,去除 “强制实施密码策略”前的勾。 C 找到导入的数据库,右击此数据库----选择“属性”,在选择页中,点击“文件” 设置所有者,点击右边的按钮,选择“浏览”,找到相应的用户(如admin)。确 定。。 7、此时重新以admin的身份进入,就可操作相应的数据库。

连接SQLServer2008数据库的方法

连接SQLServer2008数据库的方法 一、设置SQLServer2008: SQL server 2008 1433端口开启解决方案 查看电脑开放端口命令为:netstat -an SQL Server 2008一般默认的端口为 1433 ,但有时会遇到无法连接端口1433的问题,检查端口1433是否启用的方法为: 开始–>输入cmd –>回车–>telnet localhost 1433->回车出现黑屏,表示本机连接端口1433成功。 否则按照以下顺序进行配置: (1)关闭数据库引擎 打开配置管理器,找到 SQL Server(SQEXPRESS),右键单击,选择停止,即可停止数据库引擎

(2) .配置服务器端和客户端的TCP/IP协议: 在SQL Server网络配置中选择SQLEXPRESS的协议,选择TCP/IP ,右键单击,选择属性 选择IP 地址选项卡 把"IP1"和"IP2"中"TCP端口"为1433,"已启用"改为"是" 把“IP地址”下“IPALL”的端口改为“1433”。

(3)SQL Native Client 10.0 配置->客户端协议->TCP/IP (4).开启数据库引擎

这样就开启了1433的端口了 先停止SQLServer2008服务。 1.启用1433端口 S1:执行“配置工具”下的“SQL Server配置管理器”。打开如下窗口: S2:右击“SQL Server网络配置”右边的“TCP/IP”,从快捷菜单中选择“属性”,打开下图所示窗口

2.设置登录方式(使用SQL Server登录方式,而不是Windows方式) 打开“SQL Server Management Studio”,打开如下图所示快捷菜单,选择“属性”

MySql Oracle SqlServer三大数据库的数据类型列表

MySql Oracle SqlServer三大数据库的数据类型列表MySql数据类型

Oracle数据类型 一、概述 在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。 二、标量(SCALAR) 合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。 数字,它有三种基本类型--NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或实数,而PLS_INTEGER和BINARY_INTENER只能描述整数。 NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是NUMBER(P,S),P是精度,最大38位,S是刻度范围,可在-84...127间取值。例如:NUMBER(5,2)可以用来存储表示-999.99...999.99间的数值。P、S可以在定义是省略,例如:NUMBER(5)、NUMBER 等; BINARY_INTENER用来描述不存储在数据库中,但是需要用来计算的带符号的整数值。它以2的补码二进制形式表述。循环计数器经常使用这种类型。 PLS_INTEGER和BINARY_INTENER唯一区别是在计算当中发生溢出时,BINARY_INTENER型的变量会被自动指派给一个NUMBER型而不会出错,PLS_INTEGER型的变量将会发生错误。 字符,包括CHAR、VARCHAR2(VARCHAR)、LONG、NCHAR和NVARCHAR2几种类型。 CHAR,描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。它的声明方式如下CHAR(L),L 为字符串长度,缺省为1,作为变量最大32767个字符,作为数据存储在ORACLE8中最大为2000。 VARCHAR2(VARCHAR),描述变长字符串。它的声明方式如下VARCHAR2(L),L为字符串长度,没有缺省值,作为变量最大32767个字节,作为数据存储在ORACLE8中最大为4000。在多字节语言环境中,实际存储的字符个数可能小于L值,例如:当语言环境为中文(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)时,一个VARCHAR2(200)的数据列可以保存200个英文字符或者100个汉字字符。 LONG,在数据库存储中可以用来保存高达2G的数据,作为变量,可以表示一个最大长度为32760字节的可变字符串。 NCHAR、NVARCHAR2,国家字符集,与环境变量NLS指定的语言集密切相关,使用方法和CHAR、VARCHAR2相同。 行,包括RAW和LONG RAW两种类型。用来存储二进制数据,不会在字符集间转换。 RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。 LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节。 日期,只有一种类型--DATE,用来存储时间信息,站用7个字节(从世纪到秒),绝对没有“千年虫”问题。 行标识,只有一种类型--ROWID,用来存储“行标识符”,可以利用ROWIDTOCHAR函数来将行标识转换成为字符。 布尔,只有一种类型--BOOLEAN,仅仅可以表示TRUE、FALSE或者NULL。 可信,只有一种类型--MLSLABEL,可以在TRUSTED ORACLE中用来保存可变长度的二进制标签。在标准ORACLE 中,只能存储NULL值。 三、复合(COMPOSITE) 标量类型是经过预定义的,利用这些类型可以衍生出一些复合类型。主要有记录、表。 记录,可以看作是一组标量的组合结构,它的声明方式如下: TYPE record_type_name IS RECORD ( filed1 type1 [NOT NULL] [:=expr1] ....... filedn typen [NOT NULL] [:=exprn] ) 其中,record_type_name是记录类型的名字。(是不是看着象CREATE TABLE?......)引用时必须定义相关的变量,记录只是TYPE,不是VARIABLE。 表,不是物理存储数据的表,在这里是一种变量类型,也称为PL/SQL表,它类似于C语言中的数组,在处理方式上也相似。它的声明方式如下:

sqlserver_SQL触发器的使用及语法

定义:何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?比如,这么两个表: Create Table Student(--学生表StudentID int primary key,--学号.... ) Create T able BorrowRecord(--学生借书记录表BorrowRecord int identity(1,1),--流水号StudentID int ,--学号BorrowDate datetime,--借出时间ReturnDAte Datetime,--归还时间... ) 用到的功能有: 1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号); 2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。等等。 这时候可以用到触发器。对于1,创建一个Update触发器: Create Trigger truStudent On Student--在Student表中创建触发器for Update--为什么事件触发As --事件触发后所要做的事情 if Update(StudentID) begin Update BorrowRecord Set StudentID=i.StudentID

From BorrowRecord br , Deleted d ,Inserted i--Deleted和Inserted临时表Where br.StudentID=d.StudentID end 理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是:虚拟表Inserted虚拟表Deleted 在表记录新增时存放新增的记录不存储记录修改时存放用来更新的新记录存放更新前的记录删除时不存储记录存放被删除的记录 一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。 对于2,创建一个Delete触发器Create trigger trdStudent On Student for Delete As Delete BorrowRecord From BorrowRecord br , Delted d Where br.StudentID=d.StudentID 从这两个例子我们可以看到了触发器的关键:A.2个临时的表;B.触发机制。SQL触发器实例2 USE Master GO

MySql与MsSql性能对比

MySql与MsSql性能对比 对比前提:同一台服务器,记录总数都是:1317920条 表结构: CREATE TABLE `me_yarn_monthly_end_detail_stock` ( `MONTHLY_END_STOCK_ID` varchar(38) NOT NULL COMMENT '成纱库存期初ID', `MONTHLY_END_ID` varchar(38) DEFAULT NULL COMMENT '成纱月结ID', `CREATE_DATE` datetime DEFAULT NULL COMMENT '创建日期', `YARN_TYPE_CODE` varchar(50) DEFAULT NULL COMMENT '成纱类别', `SHADE_CODE` varchar(50) DEFAULT NULL COMMENT '色号代码', `GODOWN_CODE` varchar(50) DEFAULT NULL COMMENT '仓库', `YARN_LOT_NO` varchar(50) DEFAULT NULL COMMENT '批号', `NM` varchar(50) DEFAULT NULL COMMENT '支数', `QUALITY_CODE` varchar(50) DEFAULT NULL COMMENT '毛纱品质', `LOCATION_CODE` varchar(50) DEFAULT NULL COMMENT '货位', `ACCOUNT_CODE` varchar(50) DEFAULT NULL COMMENT '所属公司', `LAST_MONTHLY_QTY` decimal(15,2) DEFAULT NULL COMMENT '上月结存', `CHECK_QTY` decimal(15,2) DEFAULT NULL COMMENT '初始化数量', `IN_QTY` decimal(15,2) DEFAULT NULL COMMENT '入仓数量', `OUT_QTY` decimal(15,2) DEFAULT NULL COMMENT '出仓数量', `ADJUSTMENT_QTY` decimal(15,2) DEFAULT NULL COMMENT '调整数量', `TURNOVER_QTY` decimal(15,2) DEFAULT NULL COMMENT '转仓数量', `MONTHLY_IN_QTY` decimal(15,2) DEFAULT NULL COMMENT '本月进仓', `MONTHLY_OUT_QTY` decimal(15,2) DEFAULT NULL COMMENT '本月出仓', `QUANTITY` decimal(15,2) DEFAULT NULL COMMENT '库存量/kg', `REMARKS` varchar(800) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`MONTHLY_END_STOCK_ID`), KEY `YARN_TYPE_CODE` (`YARN_TYPE_CODE`,`SHADE_CODE`,`GODOWN_CODE`,`YARN_LOT_NO`,`NM`,`QUALITY_CODE`,` LOCATION_CODE`,`ACCOUNT_CODE`), KEY `MONTHLY_END_ID` (`MONTHLY_END_ID`), KEY `CREATE_DATE` (`CREATE_DATE`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1、有关联取总记录数的性能对比 MySql:81秒 MsSql:7秒 2、有联的查询 开始条数查询条数MySql用时MsSql用时 5000 10 3秒不到1秒 10000 10 8秒24秒 20000 10 78秒15秒 40000 10 76秒27秒 50000 10 126秒14秒

SQLServer触发器的使用

触发器建立的代码 Create Trigger TG_ProjectName On table1 After Update As Update table2 Set[工程名]=b.工程名 from table2 a,inserted b where a.ProjID=b.ID 关于触发器中Inserted和Deleted的解释。 inserted触发器语句中使用了两种特殊的表:deleted 表和inserted 表。Microsoft? SQL Server 2000 自动创建和管理这些表。可以使用这两个临时的驻留内存的表测试某些数据修改的效果及设置触发器操作的条件;然而,不能直接对表中的数据进行更改。 inserted 和deleted 表主要用于触发器中: ◆扩展表间引用完整性。 ◆在以视图为基础的基表中插入或更新数据。 ◆检查错误并基于错误采取行动。 ◆找到数据修改前后表状态的差异,并基于此差异采取行动。 Deleted 表用于存储DELETE 和UPDATE 语句所影响的行的复本。在执行DELETE 或UPDATE 语句时,行从触发器表中删除,并传输到deleted 表中。Deleted 表和触发器表通常没有相同的行。Inserted 表用于存储INSERT 和UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。 更新事务类似于在删除之后执行插入;首先旧行被复制到deleted 表中,然后新行被复制到触发器表和inserted 表中。 在设置触发器条件时,应当为引发触发器的操作恰当使用inserted 和deleted 表。虽然在测试INSERT 时引用deleted 表或在测试DELETE 时引用inserted 表不会引起任何错误,但是在这种情形下这些触发器测试表中不会包含任何行。 说明 如果触发器操作取决于一个数据修改所影响的行数,应该为多行数据修改(基于SELECT 语句的INSERT、DELETE 或UPDATE)使用测试(如检查@@ROWCOUNT),然后采取相应的对策。 SQL Server 2000不允许AFTER 触发器引用inserted 和deleted 表中的text、ntext 或image 列;然而,允许INSTEAD OF 触发器引用这些列。有关更多信息,请参见CREATE TRIGGER。 在INSTEAD OF 触发器中使用inserted 和deleted 表 传递到在表上定义的INSTEAD OF 触发器的inserted 和deleted 表遵从与传递到AFTER 触发器的inserted 和deleted 表相同的规则。inserted 和deleted 表的格式与在其上定义INSTEAD OF 触发器的表的格式相同。inserted 和deleted 表中的每一列都直接映射到基表中的列。 有关引用带INSTEAD OF 触发器的表的INSERT 或UPDATE 语句何时必须提供列值的规则与表没有INSTEAD OF 触发器时相同: 不能为计算列或具有timestamp 数据类型的列指定值。 不能为具有IDENTITY 属性的列指定值,除非该列的IDENTITY_INSERT 为ON。当IDENTITY_INSERT 为ON 时,INSERT 语句必须提供一个值。INSERT 语句必须为所有无DEFAULT 约束的NOT NULL 列提供值。 对于除计算列、标识列或timestamp 列以外的任何列,任何允许空值的列或具有DEFAULT 定义的NOT NULL 列的值都是可选的。

SqlServer触发器的原理及案例

SqlServer触发器的原理及案例合理的选用触发器会让你的系统更高效 2010 Ssc

目录 第1章何为触发器 (3) 1.1 触发器的'本质' (3) 1.2 这样做带来的'功能': (3) 1.3 触发器的作用 (3) 1.4 说明: (3) 第2章对触发器3种操作的分析 (4) 2.1 创建触发器 (4) 2.2 学习案例 (5) 2.2.1 建立表 (5) 2.2.2 触发器练习1 (5) 2.2.3 触发器练习2: (6) 第3章图形化操作触发器 (7) 3.1 查看触发器情况 (7) 第4章触发器中的变量操作 (11) 第5章SQL触发器语法参考 (11)

第1章何为触发器 1.1触发器的'本质' 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录、更改记录或者删除记录时,当事件发生时,才被自动地激活。 1.2这样做带来的'功能': 触发器可以用来对表实施复杂的完整性约束,保持数据的一致性,当触发器所保护的数据发生改变时,触发器会自动被激活,响应同时执行一定的操作(对其它相关表的操作),从而保证对数据的不完整性约束或不正确的修改。触发器可以查询其它表,同时也可以执行复杂的T-SQL语句。触发器和引发触发器执行的命令被当作一次事务处理,因此就具备了事务的所有特征。 注意:'事务具备什么特征?在触发器中的作用?' 如果发现引起触发器执行的T-SQL语句执行了一个非法操作,比如关于其它表的相关性操作,发现数据丢失或需调用的数据不存在,那么就回滚到该事件执行前的SQL SERVER数据库状态。 1.3触发器的作用 触发器可以对数据库进行级联修改,这一点刚才已经说过了。需要说明的是:'触发器和约束的关系和区别' (1)一般来说,使用约束比使用触发器效率更高。 (2)同时,触发器可以完成比CHECK约束更复杂的限制。 1.4说明: 1.与CHECK约束不同,在触发器中可以引用其它的表。 2.触发器可以发现改变前后表中数据的不一致,并根据这些不同来进行相应的操作。

sqlserver 触发器

SQL Server 触发器创建、删除、修改 推荐揪错烈火学院> 网络编程> SQL SERVER > 阅读文章正文 一﹕触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。 二﹕SQL Server为每个触发器都创建了两个专用表﹕Inserted表和Deleted表。这两个表。 一﹕触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。 二﹕SQL Server为每个触发器都创建了两个专用表﹕Inserted表和Deleted表。这两个表由系统来维护﹐它们存在于内存中而不是在数据库中。这两个表的结构总是与被该触发器作用的表的结构相同。触发器执行完成后﹐与该触发器相关的这两个表也被删除。Deleted表存放由于执行Delete或Update语句而要从表中删除的所有行。 Inserted表存放由于执行Insert或Update语句而要向表中插入的所有行。 三﹕Instead of 和After触发器 SQL Server2000提供了两种触发器﹕Instead of 和After 触发器。这两种触发器的差别在于他们被激活的同﹕ Instead of触发器用于替代引起触发器执行的T-SQL语句。除表之外﹐Instead of 触发器也可以用于视图﹐用来扩展视图可以支持的更新操作。 After触发器在一个Insert,Update或Deleted语句之后执行﹐进行约束检查等动作都在

mysql和sqlserver比较

Mysql和sqlServer命令比较 按语句功能划分,依次讲解 目录 一数据定义 (2) 1 数据库操作基本命令 (2) 2 CREATE TABLE --创建一个数据库表 (2) 2.1PRIMARY KEY 约束(主键)区别解析: (2) 2.1.1 创建primary key (2) 2.1.2 撤销PRIMARY KEY 约束 (3) 2.1.3 创建外健约束 (3) 2.1.4 撤销外健约束 (4) 2.2UNIQUE 约束(唯一的,独一无二的)区别解析 (4) 2.2.1 创建UNIQUE约束 (4) 2.2.2 撤销UNIQUE 约束 (5) 2.3CHECK 约束 (5) 2.3.1 创建CHECK约束 (5) 2.3.2 撤销CHECK约束 (6) 2.4DEFAULT 约束(系统默认值) (6) 2.4.1 创建DEFAULT约束 (6) 2.4 .2 撤消DEFAULT约束 (7) 2.5索引区别 (7) 2.6主键自动增加的区别 (7) 2.7MySQL支持enum,和set类型,SQL Server不支持 (8) 2.7.1枚举enum (8) 2.7.2集合set (9) 2.8MySQL不支持nchar,nvarchar,ntext类型 (10) 3DROP TABLE –删除一个数据库表 (10) 4显示库表 (11) 5alter 修改库表 (11)

二数据操作 (12) 2.1 limit和top (12) 2.2 ISNULL()函数 (12) 2.3 select查询 (12) 2.4 insert 插入 (12) 2.6 update 修改 (12) 2.7 delete 删除 (13) 三语法定义 (13) 3.1 注释符区别 (13) 3.2 识别符的区别 (13) 3.3存储过程的区别(未经验证,从网上找的) (13) 3.4字符串连接 (14) 四函数和数据类型的区别 (14) 4.1 Date 函数 (14) 五性能比较 (15) 一数据定义 1 数据库操作基本命令 Mysql: create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒– 2 CREATE TABLE --创建一个数据库表 2.1PRIMARY KEY 约束(主键)区别解析: 2.1.1 创建primary key Mysql:

SqlServer触发器的原理及案例

触发器 ?触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化(INSERT、 UPDATE 或DELETE)时自动执行 ?触发器可以查询其它表,并可以包含复杂的Transact-SQL 语句 ?主要用于强制复杂的业务规则或要求 优点 ?自动执行 ?实现相关表层叠修改,实现多个表之间数据的一致性和完整性 ?实现比check约束更复杂的限制,可以引用其他表中的列 触发器的类型 ?AFTER触发器:在数据变动(INSERT、UPDATE、DELETE操作)完成后激发,只能在表 上定义,同一个表中可以有多个AFTER触发器 ?INSTEAD OF触发器:在数据变动以前被激发,并取代变动数据(INSERT、UPDATE、 DELETE操作),转而去执行触发器定义的操作,可以定义在表或视图上,每个update、insert和delete语句最多可以定义一个INSTEAD OF触发器。 创建触发器 ?CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [, ][DELETE]} AS sql_statement [...n ] } 触发器示例: ?CREATE TRIGGER reminder ON titles FOR INSERT, UPDATE AS RAISERROR (50009, 16, 10) 指定触发器何时激发 ?AFTER 触发器在触发操作(INSERT、UPDATE 或DELETE)后和处理完任何约束后激 发。可通过指定AFTER 或FOR 关键字来请求AFTER 触发器。 ?INSTEAD OF 触发器代替触发动作进行激发,并在处理约束之前激发。 ?对于每个触发操作(UPDATE、DELETE 和INSERT),每个表或视图只能有一个 INSTEAD OF 触发器。而一个表对于每个触发操作可以有多个AFTER 触发器。 触发器示例: create TRIGGER reminder ON titles FOR INSERT, delete,update AS --修改操作 if (select count(*) from inserted) > 0 and (select count(*) from deleted) >0 begin RAISERROR ('修改成功', 16, 10) end

SQLServer数据库入门学习总结

SQL Server数据库入门学习总结 经过一段时间的学习,也对数据库有了一些认识。 数据库基本是由表,关系,操作组成;对于初学者首先要学的: 1.数据库是如何存储数据的 表,约束,触发器 2.数据库是如何操作数据的 insert,update,delete T-sql 函数存储过程触发器 3.数据库是如何显示数据的 select SQLServer数据库学习总结 1.SQL基础 SQL Server2000安装、配置,服务器启动、停止,企业管理器、查询分析器 第一代数据库--网状数据库和层次数据库;第二代数据库--关系数据库 数据库(DB);数据库管理系统(DBMS);数据库系统(DBS) SQL Server 2000 提供了不同版本:企业版、标准版、个人版、开发版 SQL Server中的数据类型:整数:int,smallint,tinyint,bigint;浮点数:real,float,decimal;二进制:binary,varbinary;逻辑:bit;字符:char,nchar,varchar,nvarchar;文本和图形:text,ntext,image;日期和时间:datetime,smalldatetime;货币:money,smallmoney 数据库的创建和删除;数据库表的创建、修改和删除 数据完整性:实体完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;参照完整性:Foreign Key,Check,Triggers,Procedure;用户定义完整性:Rule,Triggers,Procedure;Create Table中得全部列级和表级约束 SQL Server中有5种约束:主键约束(Primary Key Constraint)、默认约束(Default Constraint)、检查约束(Check Constraint)、唯一性约束(Unique Constraint)、外键约束(Foreign Key Constraint). 关系图 数据库设计的步骤:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护 两个实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n) 实体关系模型-- E-R图

SQLSERVER和MYSQL语法和关键字的区别详解

SQL Server和MySql语法和关键字的区别 ——用于SQLServer到MySql的转换 对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL and SQL Server。这两者最基本的相似之处在于数据存储和属于查询系统。你可以使用SQL来访问这两种数据库的数据,因为它们都支持ANSI-SQL。还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度。同时,二者也都提供支持XML的各种格式。除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在这二者之间你是如何选择的?让我们看看这两个产品的主要的不同之处,包括发行费用,性能以及它们的安全性。 ◆根本的区别是它们遵循的基本原则 二者所遵循的基本原则是它们的主要区别:开放vs保守。SQL服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同。虽然你可以使用SQL服务器的Sybase引擎,但MySQL能够提供更多种的选择,如MyISAM,Heap,InnoDB,and Berkeley DB。MySQL不完全支持陌生的关键词,所以它比SQL服务器要少一些相关的数据库。同时,MySQL也缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能。 ◆发行费用:MySQL不全是免费,但很便宜 当提及发行的费用,这两个产品采用两种绝然不同的决策。对于SQL服务器,获取一个免费的开发费用最常的方式是购买微软的Office或者Visual Studio的费用。但是,如果你想用于商业产品的开发,你必须还要购买SQL Server Standard Edition。学校或非赢利的企业可以不考虑这一附加的费用。 ◆性能:先进的MySQL 纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式 MyISAM。MyISAM数据库与磁盘非常地兼容而不占用过多的CPU和内存。 MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX 系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。 因为MySQL在内部里很多时候都使用64位的整数处理。Yahoo!商业网站就使用MySQL作为后台数据库。 当提及软件的性能,SQL服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件和软件不能充分支持SQL服务器,我建议你最好选择其他如DBMS数据库,因为这样你会得到更好的结果。 ◆安全功能

sqlserver 建立学生表上触发器代码

--⒁在学生成绩表中,显示存在有 85 分以上成绩的课程号,并统计各门课程不及格人数在 10 人以上的课程数量。 SELECT course_id FROM stud_grade WHERE grade>85 GO select count(*) from ( SELECT course_id 课程号,count(course_id) 人数 FROM stud_grade WHERE grade<60 GROUP BY course_id HAVING count(course_id) >=10 ) -(7) 首先显示“计算机工程系”、“计算机网络技术专业”、班全体学生的基本信息,然后再统计“计算机工程系”、“计算机网络技术专业”、班的学生人数。 SELECT substring(stud_id,3,6)专业编号,count(*)人数 FROM stud_info WHERE substring(stud_id,3,6)=( select substring(speccode,3,6)+'02' from dbo.specialty_code where specname='计算机应用技术') --(9)在学生成绩表中,显示最低分大于60,最高分小于80 的stud_id 列。 select stud_id from dbo.stud_grade group by stud_id having max(grade)<80 and min(grade)>60 --(17)显示课程号为“”、课程成绩高于“”课程的学生的课程名、学号和姓名,并按成绩从高到低次序排列。 select course_name,g1.stud_id,g1.[name] from dbo.lesson_info,dbo.stud_grade as g1,dbo.stud_grade as g2 where dbo.lesson_info.course_id=g1.course_id and g1.stud_id=g2.stud_id and g1.course_id='0401010103' and g2.course_id='0401010104'and g1.grade>g2.grade order by g1.grade

SQLServer数据库基本介绍

SQLServer数据库基本介绍 数据库用于存储结构化数据。数据的组织有多种数据模型,目前主要的数据模型是关系数据模型,以关系模型为基础的数据库就是关系数据库。一,数据库的概述1)关系数据库术语 表:用于存储数据,它以行列式方式组织,可以使用SQL从中获取、修改和删除数据库。表是关系数据库的基本元素记录:记录是指表中的一行,在一般情况下,记录和行的意思是相同的。字段:字段是表中的一列,在一般情况下,字段和列所致的内容是相同的。关系:关系是一个从数学中来的概念,在关系代数中,关系是指二维表,表既可以用来表示数据,也可以用来表示数据之间的联系索引:索引是建立在表上的单独的物理结构,基于索引的查询使数据获取更为快捷。索引是表中的一个或多个字段,索引可以是唯一的,也可以是不唯一的,主要是看这些字段是否允许重复。主索引是表中的一列和多列的组合,作为表中记录的唯一标识。外部索引是相关联的表的一列或多列的组合,通过这种方式来建立多个表之间的联系。视图:视图是一个真实表的窗口,视图不能脱离表。视图和表的区别是,表是实际存在的(需要存储在计算机中,占用存储空间),而视图是虚拟表(仅存储真实表的视图表现形式),它用于限制用户可以看到和修改的数据量,以简化数据的表达。存储过程:存储过程是一个编译过的SQL程序。在该过程中,可以嵌入条件逻辑、传递参数、定义变量和执行其他编程任务。 2)数据库管理系统提供的功能数据库管理系统简称为DBMS,是一种操作和管理数据库的大型软件,用于建立、使用维护数据库。基本功能如下

数据定义功能:定义数据库结构数据存取功能:提供数据操纵语言,实现对数据库数据的 基本存储操作数据库运行管理功能:提供数据控制功能,即数据的安全性,完整性和并发控制等对数据库运行进行有效的控制和管理数据库的建立和维护功能:包括数据库初始数据的嵌入,数据库的转储、恢复、重组织、系统性能监视、分析等功能数据库的传输:实现用户程序与DBMS之间的通信 3)数据库的存储结构 数据库文件主数据文件(Primary):是数据库的关键文件,用来存放数据,包含数据库启 动信息,每个数据库都必须包含也只能包含一个主数据文件,默认扩展名是.mdf次数据文件(Secondary):又称辅助文件,包含除主数据文件外的所有数据文件。次数据文件是可选的,有些数据库没有次数据文件,有些数据库则包含多个次数据文件.默认扩展名是.ndf事务日志 文件(Transaction Log):用来存放事务日志信息。事务日志记录了SQL Sever所有的事务 和由这些事务引起的数据库的变化。SQL Sever遵循先写日志再进行数据库修改的规则,所以 数据库中数据的任何变化在写到磁盘之前,这些改变先在事务日志中做了记录,每个数据库至 少有一个事务日志文件Lof File,也可以不止一个。默认扩展名是.ldf数据库文件组主文件组:包含主数据文件和所有没有被包含在其他文件组里的文件用户定义文件组:默认文件组:

oraclesqlservermysql与db2的比较 - oracle 开发

ORACLE、SQLSERVER、MYSQL与DB2的比较- Oracle 开发 比较SQL Server与Oracle、DB2 出处:不祥 关键词:Sql Server, Oracle, 其他1.选择一个好的数据库是非常重要的。2.如何选择一个好的数据库开放性: SQL Server 只能在windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时. Oracle 能在所有主流平台上运行(包括windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。DB2 能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%. 可伸缩性,并行性 SQL server

DB2 并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。Oracle 平行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要, 用户可以把数据库移到UNIX中。DB2 DB2具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境. 数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日 志。数据库分区有时被称为节点或数据库节点安全性 SQL server 没有获得任何安全证书。Oracle Server 获得最高认证级别的ISO标准认证。DB2 获得最高认证级别的ISO标准认证。性能 SQL Server 多用户时性能不佳Oracle 性能最高,保持windowsNT下的TPC-D和TPC-C的世界记录。DB2 适用于数据仓库和在线事物处理性能较高。客户端支持及 应用模式

sqlserver 触发器示例

sqlserver 触发器示例 1--检查当前触发器是否已存在 2IF exists(SELECT*FROM sysobjects WHERE xtype='TR'AND [name]='TR_INSERTUserInfo_LoginLog') 3--存在即删除该触发器 4DROP TRIGGER TR_INSERTUserInfo_LoginLog 5go 6--触发器创建在UserInfo表上当对UserInfo表执行INSERT操作后自动执行触发器中的SQL语句 7CREATE TRIGGER TR_INSERTUserInfo_LoginLog 8ON UserInfo 9FOR INSERT 10AS 11BEGIN 12--定义接受新建用户ID的参数 13DECLARE@userID VARCHAR(50); 14--查询INSERTED临时表获取新建用户ID 15SELECT@userID=UserID FROM Inserted 16--向用户登录日志表中添加新建用户登录日志 17INSERT INTO LoginLog VALUES(@userID,getDate()) 18END 19GO 20 21IF EXISTS(SELECT*FROM sysobjects WHERE xtype='TR'AND [name]='TR_Update_UserInfo_ManagerLog') 22DROP TRIGGER TR_Update_UserInfo_ManagerLog 23GO 24CREATE TRIGGER TR_Update_UserInfo_ManagerLog 25ON UserInfo 26FOR UPDATE 27AS 28--接受被更新用户信息的ID

五大主流数据库比较 (DB2 Oracle MySQL SyBase SQLServer)

一、开放性 1. SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows 平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据库。 2. Oracle 能在所有主流平台上运行(包括windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。Oracle数据库是以结构化查询语言为基础的大型关系数据库,他是用方便逻辑管理的语言来操纵大量有规则的数据的集合,是目前最流行的客户—服务器体系结构的数据库之一。 oracle 的特点: 1),支持多用户,大事务量的事务处理 2),数据安全性和完整性控制 3),提供对于数据库操作的接口 4),支持分布式事务处理 5),可移植性,可兼容性和可连接性 3. Sybase ASE 能在所有主流平台上运行(包括windows)。但由于早期Sybase与OS集成度不高,因此VERSION11.9.2以下版本需要较多OS和DB级补丁。在多平台的混合环境中,会有一定问题。 4. DB2 能在所有主流平台上运行(包括windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。

5.MySQL Mysql 能在所有主流平台上运行(包括windows)。 二、可伸缩性,并行性 1. SQL server 并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 2. Oracle 并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要,用户可以把数据库移到UNIX 中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。 3. Sybase ASE 虽然有DB SWITCH来支持其并行服务器,但DB SWITCH在技术层面还未成熟,且只支持版本12.5以上的ASE SERVER。DB SWITCH技术需要一台服务器充当SWITCH,从而在硬件上带来一些麻烦。 4. DB2 具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。数据库分区有时被称为节点安全性。 5.Mysql 较强的伸缩性 三、安全认证 1. SQL server

相关主题
文本预览
相关文档 最新文档