First commit, 已上架的電子書
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 274 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,155 @@
|
||||
1、說明:創建資料庫
|
||||
CREATE DATABASE database-name
|
||||
|
||||
2、說明:刪除資料庫
|
||||
drop database dbname
|
||||
|
||||
4、說明:創建新表
|
||||
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
|
||||
5、說明:刪除新表
|
||||
drop table tabname
|
||||
|
||||
6、說明:增加一個列
|
||||
Alter table tabname add column col type
|
||||
ALTER TABLE MEMBER ADD COLUMN NEWFIELD VARCHAR(20) DEFAULT ''
|
||||
7、說明:添加主鍵: Alter table tabname add primary key(col)
|
||||
說明:刪除主鍵: Alter table tabname drop primary key(col)
|
||||
|
||||
8、說明:創建索引:
|
||||
create [unique] index idxname on tabname(col….)
|
||||
刪除索引:drop index idxname
|
||||
注:索引是不可更改的,想更改必須刪除重新建。
|
||||
|
||||
9、說明:創建視圖:
|
||||
create view viewname as select statement
|
||||
刪除視圖:drop view viewname
|
||||
|
||||
CREATE PROCEDURE CreateDemoData()
|
||||
BEGIN
|
||||
DECLARE i INT DEFAULT 1;
|
||||
WHILE (i<=1000) DO
|
||||
INSERT INTO member (memberid) VALUES (LPAD(LTRIM(CAST(i AS CHAR)),10,'0'));
|
||||
|
||||
SET i=i+1;
|
||||
END WHILE;
|
||||
END;
|
||||
|
||||
MySQL Call CreateDemoData
|
||||
MS-SQL EXEC CreateDemoData
|
||||
|
||||
|
||||
|
||||
|
||||
10、說明:幾個簡單的基本的sql語句
|
||||
選擇:select * from table1 where 範圍
|
||||
插入:insert into table1(field1,field2) values(value1,value2)
|
||||
刪除:delete from table1 where 範圍
|
||||
更新:update table1 set field1=value1 where 範圍
|
||||
查找:select * from table1 where field1 like ’%value1%’ ---like的語法很精妙,查資料!
|
||||
排序:select * from table1 order by field1,field2 [desc]
|
||||
總數:select count as totalcount from table1
|
||||
求和:select sum(field1) as sumvalue from table1
|
||||
平均:select avg(field1) as avgvalue from table1
|
||||
最大:select max(field1) as maxvalue from table1
|
||||
最小:select min(field1) as minvalue from table1
|
||||
|
||||
11、說明:幾個高級查詢運算詞
|
||||
A: UNION 運算子
|
||||
UNION 運算子通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重複行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重複行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
|
||||
B: EXCEPT 運算子
|
||||
EXCEPT 運算子通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重複行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重複行。
|
||||
C: INTERSECT 運算子
|
||||
INTERSECT 運算子通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重複行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重複行。
|
||||
注:使用運算詞的幾個查詢結果行必須是一致的。
|
||||
12、說明:使用外連接
|
||||
A、left (outer) join:
|
||||
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
|
||||
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
|
||||
B:right (outer) join:
|
||||
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
|
||||
C:full/cross (outer) join:
|
||||
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
|
||||
12、分組:Group by:
|
||||
一張表,一旦分組 完成後,查詢後只能得到組相關的資訊。
|
||||
組相關的資訊:(統計資訊) count,sum,max,min,avg 分組的標準)
|
||||
在SQLServer中分組時:不能以text,ntext,image類型的欄位作為分組依據
|
||||
在selecte統計函數中的欄位,不能和普通的欄位放在一起;
|
||||
|
||||
二、提升
|
||||
1、說明:複製表(只複製結構,源表名:a 新表名:b) (Access可用)
|
||||
法一:select * into b from a where 1<>1(僅用於SQlServer)
|
||||
法二:select top 0 * into b from a
|
||||
|
||||
2、說明:拷貝表(拷貝資料,源表名:a 目標表名:b) (Access可用)
|
||||
insert into b(a, b, c) select d,e,f from b;
|
||||
4、說明:子查詢(表名1:a 表名2:b)
|
||||
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
|
||||
5、說明:顯示文章、提交人和最後回復時間
|
||||
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
|
||||
6、說明:外連接查詢(表名1:a 表名2:b)
|
||||
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
|
||||
7、說明:線上視圖查詢(表名1:a )
|
||||
select * from (SELECT a,b,c FROM a) T where t.a > 1;
|
||||
8、說明:between的用法,between限制查詢資料範圍時包括了邊界值,not between不包括
|
||||
select * from table1 where time between time1 and time2
|
||||
select a,b,c, from table1 where a not between 數值1 and 數值2
|
||||
9、說明:in 的使用方法
|
||||
select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)
|
||||
10、說明:兩張關聯表,刪除主表中已經在副表中沒有的資訊
|
||||
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
|
||||
11、說明:四表聯查問題:
|
||||
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
|
||||
12、說明:排程提前五分鐘提醒
|
||||
SQL: select * from 排程 where datediff('minute',f開始時間,getdate())>5
|
||||
13、說明:一條sql 語句搞定資料庫分頁
|
||||
select top 10 b.* from (select top 20 主鍵欄位,排序欄位 from 表名 order by 排序欄位 desc) a,表名 b where b.主鍵欄位 = a.主鍵欄位 order by a.排序欄位
|
||||
具體實現:
|
||||
關於資料庫分頁:
|
||||
declare @start int,@end int
|
||||
@sql nvarchar(600)
|
||||
set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’
|
||||
exec sp_executesql @sql
|
||||
注意:在top後不能直接跟一個變數,所以在實際應用中只有這樣的進行特殊的處理。Rid為一個識別欄位,如果top後還有具體的欄位,這樣 做是非常有好處的。因為這樣可以避免 top的欄位如果是邏輯索引的,查詢的結果後實際表中的不一致(邏輯索引中的資料有可能和資料表中的不一致,而查詢時如果處在索引則首先查詢索引)
|
||||
14、說明:前10條記錄
|
||||
select top 10 * form table1 where 範圍
|
||||
15、說明:選擇在每一組b值相同的資料中對應的a最大的記錄的所有資訊(類似這樣的用法可以用於論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)
|
||||
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
|
||||
16、說明:包括所有在 TableA 中但不在 TableB和TableC 中的行並消除所有重複行而派生出一個結果表
|
||||
(select a from tableA ) except (select a from tableB) except (select a from tableC)
|
||||
17、說明:隨機取出10條數據
|
||||
select top 10 * from tablename order by newid()
|
||||
18、說明:隨機選擇記錄
|
||||
select newid()
|
||||
19、說明:刪除重複記錄
|
||||
1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
|
||||
2),select distinct * into temp from tablename
|
||||
delete from tablename
|
||||
insert into tablename select * from temp
|
||||
評價: 這種操作牽連大量的資料的移動,這種做法不適合大容量但資料操作
|
||||
3),例如:在一個外部表中導入資料,由於某些原因第一次只導入了一部分,但很難判斷具體位置,這樣只有在下一次全部導入,這樣也就產生好多重複的欄位,怎樣刪除重複欄位
|
||||
alter table tablename
|
||||
--添加一個自增列
|
||||
add column_b int identity(1,1)
|
||||
delete from tablename where column_b not in(
|
||||
select max(column_b) from tablename group by column1,column2,...)
|
||||
alter table tablename drop column column_b
|
||||
20、說明:列出資料庫裡所有的表名
|
||||
select name from sysobjects where type='U' // U代表用戶
|
||||
21、說明:列出表裡的所有的列名
|
||||
select name from syscolumns where id=object_id('TableName')
|
||||
22、說明:列示type、vender、pcs欄位,以type欄位排列,case可以方便地實現多重選擇,類似select 中的case。
|
||||
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
|
||||
顯示結果:
|
||||
type vender pcs
|
||||
電腦 A 1
|
||||
電腦 A 1
|
||||
光碟 B 2
|
||||
光碟 A 2
|
||||
手機 B 3
|
||||
手機 C 3
|
||||
|
||||
23、說明:初始化表table1
|
||||
TRUNCATE TABLE table1
|
||||
24、說明:選擇從10到15的記錄
|
||||
select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,298 @@
|
||||
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
|
||||
适用于数据仓库和在线事物处理性能较高。
|
||||
|
||||
|
||||
客户端支持及应用模式
|
||||
SQL Server
|
||||
C/S结构,只支持windows客户,可以用ADO,DAO,OLEDB,ODBC连接.
|
||||
|
||||
Oracle
|
||||
多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接
|
||||
|
||||
DB2
|
||||
跨平台,多层结构,支持ODBC,JDBC等客户
|
||||
|
||||
|
||||
操作简便
|
||||
SQL Server
|
||||
操作简单,但只有图形界面.
|
||||
|
||||
Oracle
|
||||
较复杂, 同时提供GUI和命令行,在windowsNT和unix下操作相同
|
||||
|
||||
DB2
|
||||
操作简单,同时提供GUI和命令行,在windowsNT和unix下操作相同
|
||||
|
||||
|
||||
使用风险
|
||||
SQL server
|
||||
完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容早期产品。使用需要冒一定风险。
|
||||
|
||||
Oracle
|
||||
长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。
|
||||
|
||||
DB2
|
||||
在巨型企业得到广泛的应用,向下兼容性好。风险小。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DB2: 关系型数据库, 适用于大型的分布式应用系统, 确实是非常非常好的数据库, 无论稳定性, 安全性, 恢复性等等都无可挑剔, 而且从小规模到大规模的应用都非常适合, 但是使用起来觉得非常繁琐, 首先安装的时候要求颇多, 很多软件都可能和DB2产生冲突, 因为一般DB2都是安装在小型机或者服务器上的, 所以在PC上安装很费事儿. 新建一个库需要设置很多东西, 分配各种各样的存储空间, 我们在讲DB2的时候没有将多少应用, 几乎整节课都是在配置它.
|
||||
|
||||
Oracle: 关系型数据库, 是目前市场占有率最大的数据库, 我在学习SSH的时候用的就是Oracle, 安装起来很繁琐, 而且居然程序文件有3G之多... 用起来非常方便, 对于我这样的初学者, 有很简单的配置, 对于要求很高的企业级应用, 也有很复杂的配置和管理方法, 有很强大的数据字典, 可以说是最实用的数据库了, 但是查了一下, 价格不菲...
|
||||
|
||||
MS SQL: 不知道你想了解的是2000 还是2005, 这两个版本差了很多, 2000的数据库做的不错, 程序很小, 操作简单, 功能较全, 算是各方面都很中庸的数据库吧, 是中型数据库, 我的毕业设计就是用MS SQL 2000做的. 2005中加入了很多功能, 复杂多了, 有大型数据库的风范了, 而且价格也变高了, 个人觉得除非用的是Window Server 系统或者针对Microsoft产品, 否则不如用Oracle好.
|
||||
|
||||
MYSQL: 不知道你为什么没有问MYSQL, 这是一个很好的关系型数据库, 免费, 而且功能很全, 程序又小, 安装简单, 现在很多网站都用MYSQL, 在字段约束上做的差了点儿, 其他的都不错, 和MS SQL 用着差不多.
|
||||
|
||||
Access: 典型的桌面数据库, 觉得做个单机系统, 比如记账, 记事儿什么的还成, 在局域网里跑个小系统都够呛, 数据源连接很简单, 因为是Office的数据库, 所以Windows自带数据源.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1.正如Office方便性和易使用性一样,Access 是设计中小企业所用数据库的良好工具,利用Access的动态页面能力,可以比较容易地达到用它来构造WWW应用环境的目标.
|
||||
|
||||
2.Sql server,Oracle等大型数据库存储容量比较大,安全性比较强,并且对数据库中数据的恢复和可以同时支持更多用户对数据库进行访问等都有一定的优势。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。
|
||||
|
||||
SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。
|
||||
|
||||
SQL Server数据库的特征及其与Access数据库的区别
|
||||
|
||||
内 容
|
||||
Access特征
|
||||
MS SQL特征
|
||||
|
||||
版本
|
||||
桌面版
|
||||
网络版,可支持跨界的集团公司异地使用数据库的要求
|
||||
节点
|
||||
一人工作,要锁定,其他人无法使用 节点多,支持多重路由器
|
||||
|
||||
管理权限
|
||||
否
|
||||
管理权限划分细致,对内安全性高
|
||||
|
||||
防黑客能力
|
||||
否
|
||||
数据库划分细致,对外防黑客能力高
|
||||
|
||||
并发处理能力
|
||||
100人或稍多
|
||||
同时支持万人在线提交,在其它硬件例如网速等条件匹配的情况下可完全实现
|
||||
导出XML格式
|
||||
可以,需要单作程序
|
||||
可导出成为XML格式,与Oracle数据库和DB2数据库通用,减少开发成本
|
||||
|
||||
数据处理能力
|
||||
一般
|
||||
快
|
||||
|
||||
是否被优化过
|
||||
否
|
||||
是
|
||||
|
||||
SQL Server 2005—数据库管理10个最重要的特点
|
||||
1.数据库镜像
|
||||
通过新数据库镜像方法,将记录档案传送性能进行延伸。您将可以使用数据库镜像,通过将自动失效转移建立到一个待用服务器上,增强您SQL服务器系统的可用性。
|
||||
|
||||
2.在线恢复
|
||||
|
||||
使用SQL2005版服务器,数据库管理人员将可以在SQL服务器运行的情况下,执行恢复操作。在线恢复改进了SQL服务器的可用性,因为只有正在被恢复的数据是无法使用的,而数据库的其他部分依然在线、可供使用。
|
||||
|
||||
3.在线检索操作
|
||||
|
||||
在线检索选项可以在指数数据定义语言(DDL)执行期间,允许对基底表格、或集簇索引数据和任何有关的检索,进行同步修正。例如,当一个集簇索引正在重建的时候,您可以对基底数据继续进行更新、并且对数据进行查询。
|
||||
|
||||
4.快速恢复
|
||||
|
||||
新的、速度更快的恢复选项可以改进SQL服务器数据库的可用性。管理人员将能够在事务日志向前滚动之后,重新连接到正在恢复的数据库。
|
||||
|
||||
5.安全性能的提高
|
||||
|
||||
SQL Server 2005包括了一些在安全性能上的改进,例如数据库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。
|
||||
|
||||
6.新的SQL Server Management Studio
|
||||
|
||||
SQL Server 2005引入了SQL Server Management Studio,这是一个新型的统一的管理工具组。这个工具组将包括一些新的功能,以开发、配置SQL Server数据库,发现并修理其中的故障,同时这个工具组还对从前的功能进行了一些改进。
|
||||
|
||||
7.专门的管理员连接
|
||||
|
||||
SQL Server 2005将引进一个专门的管理员连接,即使在一个服务器被锁住,或者因为其他原因不能使用的时候,管理员可以通过这个连接,接通这个正在运行的服务器。这一功能将能让管理员,通过操作诊断功能、或Transact—SQL指令,找到并解决发现的问题。
|
||||
|
||||
8.快照隔离
|
||||
|
||||
我们将在数据库层面上提供一个新的快照隔离(SI)标准。通过快照隔离,使用者将能够使用与传统一致的视野观看数据库,存取最后执行的一行数据。这一功能将为服务器提供更大的可升级性。
|
||||
|
||||
9.数据分割
|
||||
|
||||
数据分割 将加强本地表检索分割,这使得大型表和索引可以得到高效的管理。
|
||||
|
||||
10.增强复制功能
|
||||
|
||||
对于分布式数据库而言,SQL Server 2005提供了全面的方案修改(DDL)复制、下一代监控性能、从甲骨文(Oracle)到SQL Server的内置复制功能、对多个超文本传输协议(http)进行合并复制,以及就合并复制的可升级性和运行,进行了重大的改良。另外,新的对等交易式复制性能,通过使用复制,改进了其对数据向外扩展的支持。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
对于程序开发人员而言,目前使用最流行的两种后台数据库即为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数据库,因为这样你会得到更好的结果。
|
||||
|
||||
安全功能
|
||||
|
||||
MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。
|
||||
|
||||
在SQL服务器中,你也可以记录SQL的有关查询,但这需要付出很高的代价。
|
||||
|
||||
安全性
|
||||
|
||||
这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的IP端口,但是有时候很不幸,这些IP也会被一些黑客闯入。当然,你也可以自己设置这些IP端口。
|
||||
|
||||
恢复性:先进的SQL服务器
|
||||
|
||||
恢复性也是MySQL的一个特点,这主要表现在MyISAM配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。然而,对于SQL服务器而言就表现得很稳键。SQL服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。
|
||||
|
||||
根据需要决定你的选择
|
||||
|
||||
对于这两种数据库,如果非要让我说出到底哪一种更加出色,也许我会让你失望。以我的观点,任一对你的工作有帮助的数据库都是很好的数据库,没有哪一个数据库是绝对的出色,也没有哪一个数据库是绝对的差劲。我想要告诉你的是你应该多从你自己的需要出发,即你要完成什么样的任务?而不要单纯地从软件的功能出发。
|
||||
|
||||
如果你想建立一个.NET服务器体系,这一体系可以从多个不同平台访问数据,参与数据库的管理,那么你可以选用SQL服务器。如果你想建立一个第三方站点,这一站点可以从一些客户端读取数据,那么MySQL将是最好的选择。
|
||||
|
||||
这两者数据库都能够在.NET或J2EE下运行正常,同样,都能够利用RAID。
|
||||
|
||||
|
||||
1,优点分析:MYSQL短小精悍,容易上手,操作简单,免费供用的。相对其它数据库有特色又实用的语法多一些。SQL怎么也算是大型数据库,稳定,能做一般大系统的数据仓库,运行速度明显比MYSQL快N多(海量数据下这个优势显而易见)。
|
||||
2,缺点分析:MYSQL难担当大系统的数据仓库,运行速度慢,不够稳定,有掉线的情况。SQL SERVER价格贵(当然没说5元盗版),使用起来比MYSQL要难一些,毕竟东西大了说道多点。
|
||||
3,按你的补充(如何登录):MySQL自己有文字界面客户端,用起来咋说也没鼠标点方便(不过习惯了也好),当然配对MYSQL有专业的客户端软件,我是用SQLYOG519版的,各种操作真的是很方便的说。SQL SERVER 就用自带的查询分析器登录了:) 两者的前提是数据库服务都带打开,而且你得知道安装时的用户名密码哦:)
|
||||
|
||||
|
||||
SQL-Server 2000 是微软公司开发的中型数据库,它的可视化方面做得很好,在安全性等方面功能非常强大,并且有微软的强大技术支持,当然价格比较昂贵,适合应用于中型系统。
|
||||
MySQL是 MySQL·AB开发的小型数据库,基本上具有了数据库所需的所有功能,但是功能没有SQL-Server强大,技术支持也跟不上,但是价格便宜,在满足它的许可协议的情况下可以免费使用,适合于小型系统。
|
||||
语言都是一样的(SQL)是结构化查询语言.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1. 平台。Oracle走的是多平台兼容的道路,Oracle的产品可以运行于各种主流的操作系统平台,而SQL Serve 2005深深植根在Widows平台上。Oracle在兼并了RDB后更是提供了对VMS环境的支持,而SQL Server仅仅支持Windows操作系统,但它与windows天衣无缝的结合,将其性能发挥到了极致,这是windows平台下的Oracle无法比拟的。<o:p></o:p>
|
||||
|
||||
2. 操作易用性。Oracle由于有了各类Java GUI的支持,迅速弥补了这一方面与SQL Server的差距,但在易用性上仍不如SQL Server 2005,SQL Server是公认最好用的数据库产品。由于SQL Server 2005操作相对简单,必然会赢得很大一部分客户的支持,这也是SQL Server 2005市场份额增长如此迅速的重要原因之一。<o:p></o:p>
|
||||
|
||||
3. 客户端支持。在数据库连接方面,SQL Server 2005有ADO、OLE DB、DAO、ODBC和新加入的ADO.NET、Native Client支持;Oracle有JDBC、ODBC、OLE DB、OCI的支持,并且提供了NET版的Oracle Client Provider。但在前台开发工具中, SQL Server 2005与Visual Studio 2005有着天衣无缝的结合,而且C#可以在SQL Server 2005开发中使用,这必然为前台开发人员提供了很大的便利。<o:p></o:p>
|
||||
|
||||
4. Oracle在<st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="10" negative="False" numbertype="1" w:st="on" unitname="g">10G</st1:chmetcnv>中对Java的支持非常强大,而SQL Server 2005增加了对CLR的支持,也可以内嵌C#语言。SQL Server 2005基本上实现了一个“完整版的Hibernate”,不仅仅是存储过程、触发器、视图,而是整个SQL Server 2005环境的对象化支持。<o:p></o:p>
|
||||
|
||||
5. 国际化、本地化方面双方的支持都非常完备,难分伯仲。<o:p></o:p>
|
||||
|
||||
6. 对移动设备的支持。双方均有移动设备版的产品,可以嵌入到各种移动设备中使用。由于微软有自己的嵌入式操作系统Windows CE,基于该平台上的开发工具Visual Studio CE,再加上微软的嵌入式SQL Server,可以为用户得供一套高效、可靠、方便的嵌入式开发环境。<o:p></o:p>
|
||||
|
||||
7. 增强的Reporting Service和Notification Service。SQL Server 2005与Oracle 1Og在报表服务和通知服务两个方面平分秋色。<o:p></o:p>
|
||||
|
||||
8. 对XML的支持。SQL Server 2005对XML的支持异常强大,不仅支持XML存储,而且还新增一种XML数据类型,用户可以通过XML函数可对XML数据类型进行方便的操作,同时也可以利用XQuery等来操作XML数据。在对XML的支持上,SQL Server 2005与Oracle <st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="10" negative="False" numbertype="1" w:st="on" unitname="g">10G</st1:chmetcnv>可以说是旗鼓相当,都很强大。<o:p></o:p>
|
||||
|
||||
9. 数据挖掘。Oracle <st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="10" negative="False" numbertype="1" w:st="on" unitname="g">10G</st1:chmetcnv>提供的数据挖掘工具data miner提供了多种算法,而且以API的形式提供给用户调用。SQL Server 2005提供了9大类数据挖掘算法,有Report Service和Analysis service作为支持,并且前台还有XML/A来显示结果,其数据挖掘功能也是异常强大。在数据挖掘方面,两者各有优势,难分高低。<o:p></o:p>
|
||||
|
||||
10. 空间数据库的开发。Oracle在<st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="10" negative="False" numbertype="1" w:st="on" unitname="g">10g</st1:chmetcnv>中提供了一个完整的2-D,3-D数据开发平台,而SQL Server 2005中没有对应的产品,这是SQL Server 2005的缺点。<o:p></o:p
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user