欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>SQL SERVER的浮点数类型

SQL SERVER的浮点数类型

2023-06-21 08:32:37 收藏本文 下载本文

“少吃不会死”通过精心收集,向本站投稿了6篇SQL SERVER的浮点数类型,以下是小编帮大家整理后的SQL SERVER的浮点数类型,仅供参考,大家一起来看看吧。

SQL SERVER的浮点数类型

篇1:SQL SERVER的浮点数类型

SQL SERVER:

float 与 real

7位数或15位数,这里说的位数,不是指小数位,而是包括整数和小数在内的位数。

float的位数是多少,要看float[(n)]里的n数值是多少。

n value 精度 存储大小

1-24

7 位数

4 字节

25-53

15 位数

8 字节

注意:

SQL Server 将 n 视为下列两个可能值之一。如果 1<=n<=24,则将 n 视为 24。如果 25<=n<=53,则将 n 视为 53。

(是不是很怪异)

如果不写这个n,默认n是53,即15位。

real 的 ISO 同义词为 float(24),也就是7位了。

[sql]

declare @f float(18) = 12345.0123456789

,@f2 float(18) = 1234567.0123456789

,@f3 float(18) = 123456789.0123456789

,@f4 float(53) = 123456789.01234567890123456789;

declare @r real = 1234567.01234567890123456789;

select @f as [f],@f2 as [f2],@f3 as [f3],@f4 as [f4],@r as [real];

f         f2         f3             f4                 real

12345.01 1234567 1.234568E+08 123456789.012346 1234567

decimal和numeric

带固定精度和小数位数的数值数据类型。

decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )]

固定精度和小数位数,

使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。

p(精度)

最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。

s (小数位数)

小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。

精度 存储字节数

1 - 9

5

10-19

9

20-28

13

29-38

17

www.dnzg.cn

可见,decimal和numeric可以指定小数位数。如果不指定,默认是不带小数。

[sql]

declare @d decimal = 12.0123456789,@d2 decimal(5,3) = 12.0123456789;

select @d as [d],@d2 as [d2];

d d2

12 12.012

money和smallmoney

代表货币或货币值的数据类型。

数据类型 范围 存储

money

-922,337,203,685,477.5808 到 922,337,203,685,477.5807

8 字节

smallmoney

-214,748.3648 到 214,748.3647

4 字节

注释

money 和 smallmoney 数据类型精确到它们所代表的货币单位的万分之一。

也就是说,money和smallmoney的小数位固定是4位。

[sql]

declare @m money = 123456789.0123456789;

select @m as [money];

money

123456789.0123

篇2:SQLServer数据库文件碎片

SQLServer数据库文件碎片整理

SQLServer数据库在使用时间久之后,往往数据文件及日志文件会变得很大,有时候甚至高达十几G,这个时候一般做法是裁断日志以缩小日志文件、归档历史记录到新数据库或备份文件以便释放空间,然后执行收缩数据库命令来缩小数据文件大小,然而收缩命令经常并不会有太大的作用,因为收缩是以区为单位进行的,并不会对页进行整理,如果数据库上有很多碎片,如一个可容纳8个页的区实际上只存放1个页,就会造成大量磁盘空间浪费并且无法收缩。

SQLServer磁盘碎片整理的目的在于,通过重建聚集索引或重建堆自增列的方式,以页为单位进行磁盘空间整理,然后再使用收缩命令收缩数据库文件,真正意义上实现了数据库的完全收缩。

以下存储过程在MSSQL上测试通过,由于需要读写操作和表锁定,请避免在数据库繁忙时段运行。

Sql代码

/* 读取磁盘分区信息 */

CREATE PROCEDURE SP_ExtentInfo

AS

DBCC ExtentInfo(0)

GO

/* SQLServer磁盘碎片整理 */

CREATE PROCEDURE SP_ShrinkSpaces

(

@UsagePercent numeric(2,2) = 0.60

--整理小于指定使用率的表空间,1为100%使用率无需整理

)

AS

BEGIN

--创建保存分区信息的临时表

Create Table #ExtentInfo

(

fileid smallint,

pageid int,

pg_alloc int,

ext_size int,

obj_id int,

index_id int,

partition_number int,

partition_id bigint,

iam_chain_type varchar(50),

pfs_bytes varbinary(10)

)

insert into #ExtentInfo exec SP_ExtentInfo

--使用游标,对小于指定空间使用率的表进行整理

declare @Table sysname

declare @Index sysname

declare @IdentityName sysname

declare @sql varchar(1000)

declare cs cursor for

select (select name from sysobjects where id=obj_id and xtype='u'),  --xtype='u'的记录为数据表

(select name from sysindexes where id=obj_id and indid=1)  --indid=1的记录为聚集索引

from #ExtentInfo group by obj_id

having sum(pg_alloc)*1.0/max(ext_size)/count(*)<=@UsagePercent

open cs

fetch next from cs into @Table,@Index

while @@FETCH_STATUS=0

begin

if @Table is not null

begin

if @Index is not null

begin

--重建聚集索引

set @sql = 'alter index ' + @Index + ' on ' + @Table + ' rebuild'

print @sql

exec(@sql)

end

else

begin

--对于堆,清空并重新写表或给自增列加聚集索引(128代表自增列)

select @IdentityName=name from syscolumns where id=OBJECT_ID(@Table) and status=128

if @@ROWCOUNT=0

set @sql = 'select * into #ExtentTable from ' + @Table + ' truncate table ' + @Table + ' insert ' + @Table + ' select * from #ExtentTable'

else

set @sql = 'create clustered index ExtentOperaPrimaryKey on ' + @Table + '(' + @IdentityName + ') drop index ' + @Table + '.ExtentOperaPrimaryKey'

print @sql

exec(@sql)

end

end

fetch next from cs into @Table,@Index

end

close cs

deallocate cs

--收缩当前数据库

DBCC SHRINKDATABASE(0)

--重新获取分区信息

truncate table #ExtentInfo

insert into #ExtentInfo exec SP_ExtentInfo

--显示当前分区信息

select fileid,obj_id,index_id,partition_id,ext_size,

object_name(obj_id) as '对象名',

count(*) as '实际区数', sum(pg_alloc) as '实际页数',

ceiling(sum(pg_alloc)*1.00/ext_size)*ext_size as '最大可用页数',

ceiling(sum(pg_alloc)*1.00/ext_size*100.00/count(*)) as '表空间使用比率'

from ExtentInfo

group by fileid,obj_id,index_id,partition_id,ext_size

order by partition_id,obj_id,index_id,fileid

--删除临时表

drop table #ExtentInfo

END

GO

篇3:SQLSERVER命令总结

SQL SERVER命令总结

查询语句:

SELECT [ALL/DISTINCT][TOP]

<目标列>[as 别名][,<目标列1>as 别名]…

FROM <表名或视图名>[as 别名]…

[WHERE 条件表达式…]

[GROUP BY <列名1>[HAVING<条件表达式>]]

[ORDER BY<列名2>[ASC/DESC]]

应该注意:SELECT语句的顺序:

SELECT-->FROM-->WHERE-->GROUP BY-à HAVING àORDER BY

SELECT INTO:生成新表格

DISTINCT:唯一

GROUP BY:分组汇总

ORDER BY:排序,默认情况下为升序.

ASC:升序

DESC:降序

AS:起别名

HAVING:筛选分组汇总后的行

SELECT TOP nFROM<表名>:表示查询前N行

SELECT TOP n PERCENT*FROM<表名>:表示按一定的百分比提取

LIKE:模糊查询,仅于CHAR或是VERCHAR以及通配符连用

其他模糊查询:

IN:用于返回给定的值与列表中的值相匹配的行

BETWEEN…AND…:在..之间查询

IS NOT NULL:查询不为空的数据

查询中使用的常量:一般与 “+”连用.起到一个组合的目的

注意

1. SELECT后面的字段如果不包括聚合函数,必须参加分组(GROUP BY

2. GROUP BY后面不能使用聚合函数

3. 查询时,可以使用2个聚合函数

使用INSERT插入数据

ü 添加完整记录:

INSERT [INTO]<目标表名>VALUES

VALUES:字段值列表(顺序与建表的顺序必须一样)

ü 添加不完整记录:

INSERT [INTO]<目标表名>(字段名列表)VALUES<字段值列表>

特别的记住:字段名列表和字段值列表是一一对应的.即后面的字段值随着前面的字段名的改变而改变.

另一种方法:

语法:INSERT<表名>SELECTFROM<表名2>

还可以将数据有选择性的添加到另一个表中

语法:INSERT INTO Sales(Stor_id)SELECT stor_id FROM Stores

UPDATE语句

更新一行:

UPDATE<新表名>SET<目标列 值=“值”>[WHERE<条件>](范围)

更新多行:

UPDATE<表名>SET<目标列 值=“值”>;{<---没有WHERE}

更新一行和更新多行的区别在于有没有WHERE的存在

DELETE语句

1:删除一行:

语法:DELETE FROM<表名>[WHERE<条件>]

2:删除多行:

语法:DELETE FROM<表名>

删除一行和删除多行区别在于有没有WHERE的存在

3:TRUNCATE TABLE

用于删除表中所有行的命令.DROP删除表

与DELETE的区别在于:TRUNCATE不写日值文件,无法恢复数据

JOIN语句 联接信息:

Table_a AS table_alias_a JOIN table_b AS table_alias_b

On

table_alias_a .=table_alias_b.< common_field>

?--------------------公共字段---------------------------à

A:内联接

INNER JOIN:查询两个表中的公共部分

B:外联接

左外联接:left OUTER JOIN

右外联接:right OUTER JOIN

完整联接:FULL OUTER JOIN

C:自联接

创建表的结构

1.名称:表名 字段名

2.数据类型: 系统定义的

用户定义的: exec sp_addtype 用户定义的数据类型名 , 数据类型(系统有的),not null(是否允许为空)

3.大小:

4.约束:

主键约束 PRIMARY KEY create table 表名(字段 数据类型 primary key /

primary key(字段…))

唯一约束 UNIQUE create table 表名(字段数据类型 unique)

默认约束DEFAULT create table 表名(字段 数据类型 default ‘值/表达式’)

检查约束 CHECK create table 表名(字段 数据类型 check (字段的表达式)

外键约束 FOREIGN KEY create table表名(字段 数据类型 foreign key references(应用) 另一个表名(字段))

更新表的结构

1.修改数据类型:alter table 表名 alter column 列名 数据类型

2.添加一列: alter table 表名 add 列名数据类型

3.删除一列: alter table 表名 drop column 列名

4.增加约束: alter table 表名 add constraint 约束名 约束表达式

主键约束: primary key(列名列表)

唯一约束: unique(列名)

默认约束: default ‘值’for 列名

检查约束: check (列的检查约束表达式)

外键约束: foreign key(列名)references 表名(列名)

删除表的结构

drop table 表名

子查询

Select 字段 from 表(select查询)

子查询就是内层查询产生一个用于外层查询的条件

子查询经常使用的是条件运算符(>,<,<=,>=,=,!=)

子查询与in联合使用经常用于判断一列数据

子查询与exists联合使用经常用于判断一张表的字段

触发器

1,触发器:是一种特殊存储过程,它能对有触发器的表中的数据进行保护.

2。触发器主要通过操作事件(insert,update,delete)进行触发而被自动执行,

不能被调用,也不能传递参数

3。a)触发器根据数据修改语句可分为:insert触发器,update触发器,delete触发器

b)根据引起触发时刻可分为after触发器,instead触发器。

i.after触发器是在执行数据操作之后激发

ii.instead of 触发器是在执行数据操作之前激发

iii.一个表可以建立多个after触发器,可以建立一个instead of触发器

触发器中的inserted表和deleted表

1。触发器运行后在内存中自动创建。

2。他们用于对触发器执行后某些数据的测试条件

3。用户不能直接操作2个表

4。delete触发器将删除的内容放在deleted表中。

insert触发器将添加的内容存在inserted表中。

update触发器将替换前的内容放在deleted表中,将替换后的新内容放在inserted表中。

创建触发器:

CREATE TRIGGER 触发器名

ON 表名/视图名

FOR 触发器类型

AS

……T-SQL语句

例如:

/*如果被删除的学生有考试成绩的话,就不允许删除这个学生*/

create trigger t_stu

on tbl_stu

for delete

begin

declare @id int

select @id = stuid from deleted

if exists(select * from tbl_cj where stuid = @id)

begin

print '学生有成绩,不可删除!!'

rollback transaction

end

end

delete tbl_stu where stuid = 1007—当删除时,看消息框提示

删除触发器:drop trigger 触发器名

例如:drop trigger t_stu

修改触发器:将创建触发器的create关键字更换成alter

存储过程

存储过程:是存储在salserver服务器中的一组预编译过的t-sql语句,当第一次调用后,就驻留在内存中,以后调用时不必再进行编译。优点在于一次编写,多次调用。调用过程在服务器端执行,执行速度快。

存储过程分为:系统存储过程,系统存储过程。

存储过程语法:

create procedure 存储过程名 @参数 参数类型

as

任意数量的T-SQL语句

例如:

create procedure stu_name @stuname char(10)

as

select * from stu

调用存储过程 exec 存储过程名 参数

例如:exec stu_name 'aa'

事务

--显示事务

Create table aaa

(

Aid int ,

Aname char(10),

Asex char(2) check(asex in (‘m’,’n’))

)

Set xact_abort on

Begin transaction

Intsert into aaa values(101,’aa’,’n’)

Intsert into aaa values(102,’bb’,’m’)

Intsert into aaa values(103,’cc’,’n’)

Intsert into aaa values(104,’dd’,’a’)

Intsert into aaa values(105,’ee’,’m’)

If @@error = 0

Commit

Else

Rollback

Go

Select * from aaa

Drop table aaa

--隐性事务

Set xact_abort on

Set implicit_transactions on

Create table aaa

(

Aid int ,

Aname char(10),

Asex char(2) check(asex in (‘m’,’n’))

)

Intsert into aaa values(101,’aa’,’n’)

Intsert into aaa values(102,’bb’,’m’)

Intsert into aaa values(103,’cc’,’n’)

Intsert into aaa values(104,’dd’,’a’)

Intsert into aaa values(105,’ee’,’m’)

Commit

--默认提交事务

Create table aaa

(

Aid int ,

Aname char(10),

Asex char(2) check(asex in (‘m’,’n’))

)

Intsert into aaa values(101,’aa’,’n’)

Intsert into aaa values(102,’bb’,’m’)

Intsert into aaa values(103,’cc’,’n’)

Intsert into aaa values(104,’dd’,’a’)

Intsert into aaa values(105,’ee’,’m’)

/*-------------------------------------------------------------------

Commit :提交事务中的一切操作,使得事务对数据库的修改有效

Rollback:回滚事务中的一切操作,使得事务对数据库的操作无效

--------------- ---------------------------------------------------

事务控制语句

1. 设置隐性事务模式

1) set implicit_transactions on启动隐性事务模式

2) set implicit_transactions off 关闭隐性事务模式

2. 设置自动回滚模式

1) set xact_abort on 当事务中任意一条语句产生运行时错误,整个事物将中止,并整体回滚,

2) set xact_abort off 当事务中语句产生运行时错误,将中止本条语句并且回滚本条语句。

注意:set xact_abort 的设置是在执行或运行时设置,而不是在分析时设置。

--------------------------------------------------------------

首次执行下列语句都会自动启动一个隐性事务:

Alter table,create,delete,drop,fetch(读取),grant(授予),insert,open,revoke(撤销),select,truncate table,update

事务中不可以使用的语句:

1. 数据库创建:create database

2. 数据库修改:alter database

3. 数据库删除:drop database

4. 数据库备份:dump database,backup database

5. 数据库还原:load database,restore database

6. 事务日志备份:dump transaction,backup log

7. 事务日志还原:load transcation,restore log

8. 配置:reconfigure

9. 磁盘初始化:disk init

10. 更新统计数据:updata statistics

11. 显示或设置数据库选项:sp_dboptin

游标

游标:允许用户能够从select语句查询的结果集中,逐条访问纪录,可以根据用户需要逐行的显示、修改、删除这些记录的数据访问处理机制。(游标就是数据表上的指针)

使用游标的步骤:

(1) 声明游标

declare 游标名 cursor for select 语句

(2) 打开游标

open 游标名

1) 当游标被打开时,指针会自动指在第一行;

2) 打开游标后,如果@@error=0表示游标打开操作成功;

3) 打开游标后,可以用@@cursor_rows返回纪录行数;

(3) 处理数据:

a) 移动到当前行并读取数据

fetch游标名

b) 删除当前行数据

delete from 表名/视图名 where current of游标名

c) 修改当前行数据

update from表名/视图名 set 列名=表达式 where current of 游标名

(4) 关闭游标

close 游标名

(5) 释放游标

deallocate 游标名

游标类型:

(1)static:静态,当用户A察看表中记录的同时,如果有用户B修改表中记录,A用户将不会看到B修改的纪录,只看A使用open打开表时所看到的纪录。

(2)Dynamic:动态,当用户A察看表中记录的同时,如果有用户B修改表中记录,A用户将看到B修改的纪录,也就是表中记录会不断的刷新,但是会耗费较大的系统资源。

(3)Forward Only:仅向前,游标仅能向前滚动。

(4)Scroll:滚动,游标可以前后左右滚动。

select * from student

/*打开游标,读取数据*/

declare c_stu cursor keyset for select * from student

open c_stu

if @@error = 0

print '学生总数' + convert(char(5),@@cursor_rows)

else

print '读取学生数出错!'

close c_stu

deallocate c_stu

---------------------------------------------------------------------------------------------------------

--keyset:键集游标,当游标打开时,在tempdb数据库中自动创建keyset表,用来记录游标读取的数据(仅纪录表示字段)

---------------------------------------------------------------------------------------------------------

/*使用游标处理数据*/

--使用游标,在表中逐行读取

select * from student

declare c_stu cursor for select * from student

open c_stu

fetch next from c_stu

while @@fetch_status = 0

fetch next from c_stu

close c_stu

deallcoate c_stu

-------------------------------------------------------------------------------------------------------

--fetch的使用

--1.first:移动到第一行,并作为当前行

--2.next:移动到下一行,并作为当前行

--3.prior:移动到上一行,并作为当前行

--4.last:移动到最后一行,并作为当前行

--5.absolute n:n>0时,从第一行开始,移动n行,作为当前行,n<0时,从最后一行倒数n行,作为当前行。

--6.relative n:n>0时,从当前行正数移动n行,作为当前行,n<0时,从当前行倒数n行,作为当前行。

--7.打开游标后第一次执行fetch next可以得到表中第一条数据,执行fetch prior得不到任何数据

--8.可用@@fetch_status返回执行fetch操作后游标的状态:

---- 0表示成功读取。

---- -1表示读取操作超出结果集。

---- -2表示行在表中不存在。

-------------------------------------------------------------------------------------------------------

--修改数据,将数据表中的第2行数据的姓名改成“张三”

select * from student

declare c_stu cursor for select * from student

open c_stu

fetch c_stu

fetch c_stu

update student set sname = '张三' where current of c_stu

close c_stu

deallocate c_stu

------------------------------------------------

--update student set sname = '张三' where current of c_stu

--如果去掉where current of c_stu,不进行指定,将更新表中所有字段

------------------------------------------------

--删除数据,将表中第2行数据删除

select * from student

declare c_stu cursor for select * from student

open c_stu

fetch c_stu

fetch c_stu

delete from student where current of c_stu

close c_stu

deallocate c_stu

函数

/*--------------------------------------

自定义函数的种类:

√ 1.标量函数

√ 2.内嵌表函数

3.多语句表值函数

---------------------

标量函数基本语法

create function 函数名

returns 返回的参数类型 as

begin

函数体

return 函数返回的标量值

end

--------------------------

内嵌表函数语法

create function 函数名

returns table as

return (select查询语句)

-------------------------------------*/

/*----------------------------------------

注意:函数是可以带参数的,但是参数不可以是:

1.时间戳(timestamp)

2.游标(cursor)

3.表(table)

----------------------------------------*/

/*------------------------------------------------------------------------

标量函数

create function chinacode(@str varchar(255))

returns char(2) as

begin

declare @i int,@j int

set @i = len(@str)

set @j = 1

while (@j<=@i)

begin

if(unicode(substring(@str,@j,1))<256)

return '否'

set @j = @j + 1

end

return '是'

end

select dbo.chinacode('我是中国人')

select dbo.chinacode('我,是中国人')

select dbo.chinacode('ilovechina')

-------------------------------------------------------

substring(expression , start , length ) 字符串截取函数

expression :字符串

start :是一个整数,表示截取的位置

length :是一个整数,表示一次截取的长度

-------------------------------------------------------

-------------------------------------------------------------------------*/

/*------------------------------------------------------------------------

内嵌表函数

-------------------------------------------------------------------------

1.内嵌表

create function age(@maxage int,@minage int)

returns table as

return(select * from tbl_stu where stuage < @maxage and stuage >@minage)

select * from age(13,11)

------------------------------------------------------------------------

2.内嵌视图

create function grade(@ss float)

returns table as

return(select * from stu_cj_view where sumscore >@ss)

select * from grade(200)

-------------------------------------------------------------------------*/

/*---------------------------------------

修改函数

把create function写成alter function

删除函数

drop function 函数名

----------------------------------------*/

篇4:Java连SqlServer

驱动是一个exe的文件,运行之后,会提示选择解压目录,选择之后,点击解压(Unzip),解压完成后,会在解压目录(或者是其中的子目录)中找到两个.jar文件。将这两个文件在eclipse中add External Jars,然后输入下面的代码,即可运行。如果报错提示版本问题(比如必须使用jdbcsql4之类的),可以将两个.jar文件中,版本较低的一个删掉即可。(也就是说只在add External Jars中add一个jdbcsql4.jar文件。)

[java]

import java.sql.*;

public class Try

{

public static void main(String[] args)

{

String JDriver = “com.microsoft.sqlserver.jdbc.SQLServerDriver”;// SQL数据库引擎

String connectDB = “jdbc:sqlserver://10.77.20.xx:1433;DatabaseName=braV6”;// 数据源注意IP地址和端口号,数据库名字!可以将ip改成localhost(如果数据库在本机的话)

try

{

Class.forName(JDriver);// 加载数据库引擎,返回给定字符串名的类

} catch (ClassNotFoundException e)

{

// e.printStackTrace;

System.out.println(“加载数据库引擎失败”);

System.exit(0);

}

System.out.println(“数据库驱动成功”);

try

{

String user = “sa”;// 你自己创建的用户名字和密码!!!!!!!!!!!!

String password = “sa427”;

Connection con = DriverManager.getConnection(connectDB, user,

password);// 连接数据库对象

System.out.println(“连接数据库成功”);

Statement stmt = con.createStatement();// 创建SQL命令对象

// 创建表

System.out.println(“查询”);

System.out.println(“开始读取数据”);

ResultSet rs = stmt.executeQuery(“SELECT * FROM dbo.Author”);// 返回SQL语句查询结果集(集合)

// 循环输出每一条记录 www.dnzg.cn

int i=0;

while (rs.next())

{

// 输出每个字段

System.out.println(rs.getString(“ID”) + “\t”);

if(i<100)

i++;

else

break;

}

System.out.println(“读取完毕”);

// 关闭连接

stmt.close();// 关闭命令对象连接

con.close();// 关闭数据库连接

} catch (SQLException e)

{

e.printStackTrace();

// System.out.println(“数据库连接错误”);

System.exit(0);

}

}

}

篇5:sqlserver集群配置

Windows server + sql server 集群配置安装

一:环境

软硬件环境

虚拟3台windows server 2003主机,其中一台做域控DC,另外两台作为节点win1 win2.

域控DC网络设置:

Hostname

Private网卡

Public网卡

adtest

192.168.9.176

节点主机网络设置

Hostname

Private网卡

Public网卡

Win1

10.0.0.173

192.168.9.173

Win2

10.0.0.174

192.168.9.174

二:建域test.com

在域控主机192.168.9.176上安装域

1 设置DC的ip 192.168.9.176

INCLUDEPICTURE \d “blog.itpub.net/attachment/08/11/29500582_1407739037lWe2.png” \* MERGEFORMATINET

2 在DC中使用DCPROMO命令创建域 (后面的步骤中需要更新windows组件,必须先挂载安装盘)

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077391708Ti6.jpg” \* MERGEFORMATINET

3 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739247Oq09.jpg” \* MERGEFORMATINET

4 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739274XN5X.jpg” \* MERGEFORMATINET

5 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077393012nbo.png” \* MERGEFORMATINET

6 选择新林中的域

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739354rKwn.png” \* MERGEFORMATINET

7 填入所要创建域的完整的域名

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739377CMKf.png” \* MERGEFORMATINET

8 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739509vRI0.png” \* MERGEFORMATINET

9 选择AD数据库和日志文件的存放位置

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739565AxuX.png” \* MERGEFORMATINET

10 存放SYSVOL的存放位置(注意:一定要放在NTFS的分区中)

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739603KBsU.png” \* MERGEFORMATINET

11 注意:AD是离不开DNS服务的,因为客户机加入域和登录域都需要把域名解析为IP地址,因为此时DC没有DNS服务器,所以选择第二项让系统在创建DC的同时把DNS服务随之一起安装上.当然你也可以安装DC后自己手动再安装和配置DNS服务器(当时是您给会正确配置DNS服务器),建议和DC一起让系统帮我们创建,因为省事

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739851kpky.png” \* MERGEFORMATINET

12 选择兼容的模式,为了以后可以方便windows和2003兼容

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407739883TU02.jpg” \* MERGEFORMATINET

13 设置AD的还原密码(为了以后对AD数据库做完备份,开机按F8进入AD还原模式需要的还原密码,如果在此设置了密码,一定切记):

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077399565Eoz.jpg” \* MERGEFORMATINET

14 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407740932ypMd.jpg” \* MERGEFORMATINET

15 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407741371FFnB.jpg” \* MERGEFORMATINET

16 需要挂载有关盘,才会自动安装DNS

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407741434D07d.jpg” \* MERGEFORMATINET

17 完成

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077425689rnx.jpg” \* MERGEFORMATINET

18 重启

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407742596D44S.jpg” \* MERGEFORMATINET

19 安装完重起系统后登录界面为使用域中的管理员和密码登录到域

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077426257kHs.png” \* MERGEFORMATINET

20 进入系统后查看计算机的状态

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407742652R7uD.png” \* MERGEFORMATINET

21查看管理工具会增加DNS和有关AD的工具,以及安全策略

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407742694MvtT.png” \* MERGEFORMATINET

22 点开用户和计算机域控管理界面 (创建域test.com完成)

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407742729f3b0.png” \* MERGEFORMATINET

三:配置节点win1 和 节点win2的网络,并添加到域中

1 网络配置

win1 网络配置

网卡1:

DNS需要配置DC的IP

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407742769IgEN.jpg” \* MERGEFORMATINET

网卡2

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407742840A6l3.jpg” \* MERGEFORMATINET

“高级”里面配置一下禁用NetBIOS 不勾选前面两项

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407742943Fy03.jpg” \* MERGEFORMATINET

Win2网络设置

网卡1:

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743537GJ7l.jpg” \* MERGEFORMATINET

网卡2

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077435693D38.png” \* MERGEFORMATINET

Win1 win2 进行相同的操作

2 更改计算机名,以及加入域test.com

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743633bYBe.png” \* MERGEFORMATINET

3 属于域控制账号密码

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743676gbuo.jpg” \* MERGEFORMATINET

4 完成后重启

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743709vOFZ.jpg” \* MERGEFORMATINET

5 域登录

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743759G5G5.png” \* MERGEFORMATINET

6 加入域后的计算机属性

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743787p33j.png” \* MERGEFORMATINET

Win2 也是一样的步骤加入到域中

6 在域控主机192.168.9.176中可以看到新添加的成员

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743817WsaU.png” \* MERGEFORMATINET

在步骤五中可能会提示报错指定域的名称或安全标识(SID)与该域的信任信息不一致 (因为指定域的名称或安全标识(SID)与该域的信任信息不一致)需要修改

修改方法:

1 .从安装盘中 support\tools\deploy.cab中提取sysprep.exe和setuppcl.exe 到桌面

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743850SDwD.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743871Py6C.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407743888vP01.png” \* MERGEFORMATINET

2 运行sysprep.exe“确定”开始重新封装

往下就是下一步下一步安装即可 (不能远程操作,封装一次即可,不作详述了)

四:安装win server2003集群

Win1节点上进行操作,关闭其他节点

1 依次单击“开始”、“所有程序”和“管理工具”,然后单击“群集管理器”

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077439293FFp.png” \* MERGEFORMATINET

2 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077440578D3X.png” \* MERGEFORMATINET

3 选择域(test.com),键入群集名win2003cluster。下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744070JRQx.png” \* MERGEFORMATINET

4 机器名输入 win1。下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744154ehw0.png” \* MERGEFORMATINET

5 这一步是检测硬件环境是否符合群集要求。如果这一步出现错误提示,可以点击“查看日志”,按照提示检查网络设置和磁盘阵列连接是否正确

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744230SSkp.gif” \* MERGEFORMATINET

1 通过下一步,输入集群的IP地址,操作系统虚拟服务器的IP 地址

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744249x6HR.gif” \* MERGEFORMATINET

6 输入域用户名和密码,这里使用的是域管理员administrator

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744263857b.gif” \* MERGEFORMATINET

说明:在项目实施时一定不能用域的管理员administrator。应该要求用户网络管理员提供一个专门管理

群集的新用户。这个新用户在各个群集节点中应该在本地管理员组(local administrator group)中。

7 点击“仲裁”按钮,在弹出的窗口中选择仲裁资源。我们选择磁盘Q(QDisk)作为仲裁盘

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744272ks9Q.gif” \* MERGEFORMATINET

8

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744294mA7n.gif” \* MERGEFORMATINET

9 完成

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744319FJ6n.gif” \* MERGEFORMATINET

10 群集 win2003cluster 已经配置成功。但是目前只有win1,我们需要将第二个节点加入,构建出容灾群集。

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744358n8K5.gif” \* MERGEFORMATINET

11 新建节点

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744371gd4L.gif” \* MERGEFORMATINET

12 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744385peeG.gif” \* MERGEFORMATINET

13 输入“win2”

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744396zcBj.png” \* MERGEFORMATINET

14 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744468rsZ5.gif” \* MERGEFORMATINET

15 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744481R038.gif” \* MERGEFORMATINET

16 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744502HRQ7.gif” \* MERGEFORMATINET

17 下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744520a8xd.gif” \* MERGEFORMATINET

Win2上的共享磁盘QDisk 和ClusterData 已经被win1 所独占,

这个警告不用理会

18 下一步,完成win2节点添加

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744536ppLl.gif” \* MERGEFORMATINET

19 操作系统容灾群集已经安装完毕。

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744552ya8d.gif” \* MERGEFORMATINET

20 配置群集网络通信 右键选择群集“属性”

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744587KWB4.gif” \* MERGEFORMATINET

21 本地连接2 -à属性

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744602x808.png” \* MERGEFORMATINET

22 专门用于群集节点内部通讯使用的

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077446226FNs.png” \* MERGEFORMATINET

23确保private 在public 上面(private 优先级更高)。确定完成网络设置。

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744651WcyM.jpg” \* MERGEFORMATINET

24 测试操作系统群集

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744660XhOo.gif” \* MERGEFORMATINET

25 点击移动组可以相互切换资源

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744686wgRC.png” \* MERGEFORMATINET

26为了测试群集的可用性,在win1 上右键选择“停止群集服务”

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744699WCOe.png” \* MERGEFORMATINET

27 Win2 接管了资源,成为目前群集的工作节点

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744712kFdi.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744730Lazx.png” \* MERGEFORMATINET

28 重新启动win1

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744745g883.jpg” \* MERGEFORMATINET

Windowns server2003集群完成配置

五 :配置SQL Server 2005 群集

1说明:如果群集环境不需要安装报表服务(SQL Server Reporting Services),可以忽略此步骤。

安装IIS

2 打开组件服务---计算机---我的电脑---属性—安全配置,选择administrator 用户登陆,输入administrator

的密码。

这一步是必须的,否则在安装SQL server 2005 的时候会出现COM+错误。

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077447844cHJ.gif” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077447977j94.gif” \* MERGEFORMATINET

3 配置MSDTC 到资源组中

进入 CMD 运行

net stop msdtc

msdtc –uninstall

msdtc –install

net start msdtc

此操作之后在群集组直接出现 MSDTC 资源

如果出现msdtc无法正常使用,也可以用此方法重新配置

一般性增加MSDTC资源方法:

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_140774481409IC.png” \* MERGEFORMATINET

“资源类型”选择“分布式事务协调器(DTC)”

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077448256dP6.gif” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744854jfNM.gif” \* MERGEFORMATINET

选择仲裁盘和群集名作为其依存资源。完成

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744867nQMJ.gif” \* MERGEFORMATINET

确定,完成MSDTC 配置。

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744885M46X.gif” \* MERGEFORMATINET

4 注意,在安装SQL server 2005 前, 如果主机是多核心的处理器,请修改boot.ini 文件,把CPU 核心数

改为1

.可以在msconfig 选项中直接选择修改 ,这个是2005 本身的bug,等完成安装后打SP3 或更高的补丁。

补丁打完之后可修改回正常核心数量

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744896HzT9.gif” \* MERGEFORMATINET

5安装SQL Server 2005

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744939QYbK.png” \* MERGEFORMATINET

下一步

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077449503Df3.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744968I81t.png” \* MERGEFORMATINET

下一步(步骤2处理不好,会出现com+错误)

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077449795J34.png” \* MERGEFORMATINET

开始安装必备组件

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407744989AIgW.png” \* MERGEFORMATINET

系统配置检查

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745003rYzQ.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077450180cuh.gif” \* MERGEFORMATINET

输入注册信息

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745031baoA.png” \* MERGEFORMATINET

选择要安装的组件

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745057vz41.png” \* MERGEFORMATINET

(所提供光盘只有SQL Server Database Services组件)

输入实例名:MSSQL2005

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745072podT.png” \* MERGEFORMATINET

输入虚拟服务器的名称:SH-sqldbc

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745107ArP0.png” \* MERGEFORMATINET

输入虚拟服务器名称,下一步(区别于集群虚拟服务器IP)

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745121U1uU.gif” \* MERGEFORMATINET

为虚拟服务器指定IP 地址,点击“添加”

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745126XcS5.gif” \* MERGEFORMATINET

为数据文件指定安装路径,请注意这里的S 盘是数据存储盘(ClusterData),千万不要把数据文件安装到仲裁盘(QDisk)上。

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745139mnRW.gif” \* MERGEFORMATINET

可以在集群管理器上分一下组

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745149zX6d.gif” \* MERGEFORMATINET

该用户其实应该是cluster,如果用administrator,会造成不能在远程计算机安装(后面述修改方法,也可以之前在域中建好用户)

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745155lTGS.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745190BL3x.gif” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077451973Bma.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745210d8k8.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077452234KZ9.png” \* MERGEFORMATINET

选择混合模式验证

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745234SblE.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745246Aqpq.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745262pPPB.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745273LV55.png” \* MERGEFORMATINET

开始安装

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745288YFsc.png” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745350t0Wp.png” \* MERGEFORMATINET

安装程序。

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745365spAH.png” \* MERGEFORMATINET

完成后在另一个节点安装。

六:解决远程不能安装问题,创建swg域用户,委托管理

1 打开域控制管理

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_14077453825h6y.png” \* MERGEFORMATINET

2 新建用户

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745628BIXb.png” \* MERGEFORMATINET

3 添加到组

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745724heZa.png” \* MERGEFORMATINET

4 添加到administrator组中

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745737U5xo.png” \* MERGEFORMATINET

5 查看属性

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745745VMv1.jpg” \* MERGEFORMATINET

6 win1 win2 节点上加用户权限

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745754s7Nj.jpg” \* MERGEFORMATINET

7 添加到swg组

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745762t1Z5.jpg” \* MERGEFORMATINET

8 最后全部用swg用户等test.com域上的主机win1,win2

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745778Klvg.jpg” \* MERGEFORMATINET

七:安装完成后测试

1 win1上查看增加的资源

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745798o54e.jpg” \* MERGEFORMATINET

2 停止其中win1节点,服务自动转移

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745807BB77.jpg” \* MERGEFORMATINET

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745813HCSC.jpg” \* MERGEFORMATINET

八:访问数据库,导入数据

1 右键“数据库” “附加”

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745821o56o.jpg” \* MERGEFORMATINET

2 导入整个数据库

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745830HtaT.jpg” \* MERGEFORMATINET

3 导入完成后,显示数据

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745846B7dG.jpg” \* MERGEFORMATINET

4 做故障转移时,数据库可以正常被访问

INCLUDEPICTURE \d “blog.itpub.net/attachment/201408/11/29500582_1407745935DEw2.jpg” \* MERGEFORMATINET

篇6:计算机中的定点数与浮点数

定点数与浮点数

在计算机中必须有一定的方法来表示和处理小数点,计算机只能识别0和1两种信息,如果用0和1来表示小数点,则势必和数字位相混淆。事实上,对小数点来说,重要的不是小数点本身,而是它的位置。

一个十进制数可写成一个纯小数乘上10的若干次方。相类似,一个二进制数可写成一个纯小数乘上2的若干次方,例如,11.01=22O.1101。一般地,任一二进制数N(2)可表示成N(2)=2Js,其中J为二进制整数,s为二进制纯小数。称J为数N的阶码,2为阶码的底,S为数N的尾数。

当用这样的形式表示数时,尾数5表示数Ⅳ的有效数字,阶码J指明了小数点的位置。前者是显然的。后者通过例子来说明。有两个数:N1=2010.1011,N2=2100.1011,它们的尾数一样,但阶码不等(此例中阶码为二进制表示)。计算可得N1=1.011,N2=10.1l,可见小数点的位置不同。这说明,两个数尾数相同、阶码不同,则小数点的位置就不同。换言之,尾数不变,阶码发生变化时,小数点的位置就要改变,即阶码指明了小数点的位置,

计算机在具体实现时,有两种不同的做法:一种是J固定,称为定点表示;另一种是J可变,称为浮点表示。

对于定点表示,常用两种方法。一是J取n(n为尾数的位数,即有效数字的位数),机器对写成2nS的数进行运算,即对纯整数进行运算,这时小数点固定在最低位数字后面。

另一种是J取0,机器对写成20s的数进行运算,即对纯小数进行运算,这时小数点固定在最高位数字的前面。

对于浮点表示,阶码、尾数都要表示出来,并且都要考虑符号。显然,尾数的符号就是整个浮点数的符号。尾数一般采用原码表示(也可以用补码表示)。为了方便阶码的比较和对阶(即让两个浮点数的阶码变成一致),阶码一般采用移码表示。对n位机器数,移码的定义为

[X]移码=X+2n-1,一2n-1X<2n-1

从这个定义可看到,移码实际是将数在数轴上平移了一段距离。

浮点数在表示时一般采用下面的形式:

阶码的底(2),因为对所有的浮点数都需要,所以不必表示出来。

和机器数的概念一样,上述小数点的处理方法主要是用于汇编语言编程。限于篇幅,这里仅引入了概念。若要应用,尚须深入学习,浮点数运算有许多细节。

【SQL SERVER的浮点数类型】相关文章:

1.诗歌类型

2.短语类型

3.审计报告类型

4.散文类型

5.从MDF文件恢复SqlServer数据库数据库

6.初中作文类型

7.英国留学签证类型

8.各类型建议书

9.短语结构类型

10.初中英语作文类型

下载word文档
《SQL SERVER的浮点数类型.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部