博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔6

Posted on 2009-03-21 16:46  Aimee  阅读(106)  评论(0)    收藏  举报

***************************************

2月14  sql server2005
****************************************
数据库的分离和附加
从外围中导入数据
nvarchar: 双字节,Unicode存储
varchar:单字节,节省空间,如果只涉及英文字符,使用varchar,主键设置用varchar(10),一般用英文作主键
ntext:存储文本
 
SQL2005 数据类型
序号     类别      SQLServer         C#           备注
1        整数       bit                     Boolean     True转换为1False转换为0
2                       tinyint               Byte        C#数据类型在System命名空间
3                       smallint          Int16       
4                       int                    Int32       
5                       bigint              Int64       
6                     smallmoney    Decimal       
7                      money              Decimal       
8                      numeric           Decimal       
9                      decimal            Decimal       
10     浮点数    float              Double       
11                     real                  Single       
12 日期和时间   smalldatetime DateTime       
13                  datetime          DateTime       
14                  timestamp         DateTime       
15      字符串   char                  String       
16               text                     String       
17                 varchar              String       
18                 nchar                 String       
19                 ntext                   String       
20                 nvarchar           String       
21   二进制数据 binary            Byte[]       
22                    varbinary        Byte[]       
23                    image            Byte[]       
24       其他    uniqueidentifier Guid       
25                  Variant             Object  

一些细节:

1、在Microsoft SQL Server 2005系统中,提供了CHAR、VARCHAR、TEXT、NCHAR、NVARCHAR、NTEXT等6种数据类型。前3种

数据类型是非Unicode字符数据,后3种是Unicode字符数据。

2、char与varchar的区别
char,不变长度的字符串,速度快。
varchar,可变长度字符串,节省储存空间,但是存取速度慢。
如果你定义长度为10位,输入一个A
对于char, 数据库存的为'A ', A+9个空格
对于varchar, 数据库存的为'A'
从空间上考虑,用Varchar没错,
从效率上考虑,用char没错

3、DATETIME与SMALLDATETIME的区别

DATETIME数据类型可以表示的范围是1753年1月1日至9999年12月31日,时间精确度是3.33毫秒。SMALLDATETIME数据类型可以表示

的范围是1900年1月1日至2079年12月31日,时间精确度是1分钟。

4、二进制

二进制数据类型包括BINARY、VARBINARY、IMAGE等3种数据类型,可以用于存储二进制数据。
BINARY可以用于存储固定长度的二进制数据,VARBINARY用于存储可变长度的二进制数据。
微软建议使用VARBINARY(MAX)代替IMAGE数据类型 。

5、其他

除了前面介绍的数据类型之外,Microsoft SQL Server 2005系统还提供了CURSOR、SQL_VARIANT、TABLE、TIMESTAMP、

UNIQUEIDENTIFIER、XML等数据类型。使用这些数据类型可以完成特殊数据对象的定义、存储和使用。


6、BLOB

BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob

、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。

MySQL的四种BLOB类型

类型     大小(单位:字节)
TinyBlob     最大 255
Blob     最大 65K
MediumBlob     最大 16M
LongBlob     最大 4G

实际使用中根据需要存入的数据大小定义不同的BLOB类型。
需要注意的是:如果你存储的文件过大,数据库的性能会下降很多
--------------------------------------------------------------------------------------------------
@主键的选取
有意义的主键:
无意义的主键:

粗粒度,低频度:返回的数据要多,操作的次数要少
模糊查询:like % +@var+%

视图:逻辑上的数据
动态表不适合使用索引
备份,还原,导入外围数据
--------------------------------------------------------------------------------------------------
存储过程:
功能强大,网络的传输量小,方便管理,一次编译多次执行。
@参数
usp_Account_QueryByCreateDate:用户的存储过程_所使用的类_功能
存储过程调用存储过程
实例存储过程的功能:生成一个自定义的主键的唯一值
Declare @customerID varchar(10)
execute usp_GetEnity(..)
sp_executesql (Transact-SQL)  : 执行可以多次重复使用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语句或批处理可以

包含嵌入参数。(方法调用方法 )