---------------------- http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发、
http://edu.csdn.net"target="blank">.Net培训、期待与您交流! ----------------------
一、什么是数据库?
1、广义:数据库(Database)按一定顺序分类存放数据的仓库;
2、狭义:数据库管理系统(Database Management System):例如DB2(大型数据库)、Oracle(大型数据库)、MSSQLServer(与.net结合比较好)、Sybase、Access(数据文件)Mysql(速度快,但不是很安全)、SQLite(轻量级数据库)。其中数据文件指的是安全软件就可以使用的数据库例如(Access、SQLite),但是大部分数据库都需要数据库服务器才能运行。在学习或者开发时,一般连接到的是本机的服务器,但是在实际项目上线运行时,连接的是单独的服务器。
3、数据库管理员(DBA)database administrator
4、SQL(语言)、MSSQLServer与SQLServer
SQL是一门专门为数据库设计的结构化查询语言(Structrued Query Lanager)。
而SQLServer与MSSQLServer是不同的数据库管理软件。
SQLServer:
MSSQLServer:微软Sqlserver。
二、DBMS简介
(1)Windows身份验证与Sqlserver身份验证
Windows身份验证是“信任连接”根据登录到操作系统的用户的权限来进行身份验证,而远程是无法连接到的,因此比较安全。
而sqlserver身份验证是“不信任连接”是根据判断用户名和密码,而通过远程只要是输入正确的用户名和密码就可以访问数据库了。
(2)数据库的组成:
不同类型的数据应放到不同的数据库中。我们所说的关系型数据库中所谓的“关系”指的就是表。
1、表:每一个数据库都可以由一个或多个表组成。
1)表中的每一行数据称为一个记录。
2)表中的每一列称为一个字段或列。
对象关系模型:每一个表代表一个类,每一条完整记录代表类的实例,每一列代表类的字段。
2、表中的主键(PrimaryKey):数据行的唯一标识(不重复的列才能当主键)(表都设置主键被称为第一范式)
主键的使用策略:
业务主键:主键里的数据与整条记录的数据地位相同,就是有业务意义的主键,即使主键,又是记录里的一个成员。
逻辑主键:没有实际意义的数字,单独设置的一列,专门用来唯一标示数据,不与表中的记录有任何关系。(为保证数据唯一,推荐使用业务主键)
联合主键:把表中的两个字段的成员联合起来设置成的主键。
3、表间关联、外键
为了防止表的数据冗余,可以使用外键。(相对而言,如果一个表有一列数据,这列数据恰好是另一个表的主键,则称为外键。
4、数据库的完整性
数据库的完整性是指数据逻辑上的一致性和准确性。
约束:为了防止数据的乱修改,赋值等等一系列的操作,而形成的约束。
1、非空约束:主键约束(PK)primary key唯一且不为空
2、唯一约束:(UK)unkque constraint唯一,可以出现一次空
3、默认约束:(DF)default constraint 默认值
4、检查约束:(CK)check constraint范围及格式限制
5、外键约束:(FK)foreign key引用表关系的约束
(1)实体完整性:每一条记录或每一行的完整性
实体完整性的实现:设置主键(primary key)或者设置unique属性或者identity来唯一标识每一行数据。
Primary Key :每一个表中,只能有一个主键,但是,可以由一个字段或多个字段的值来定义。并且,该列不能出现NULL。
Unique:每一个表中,可以有多个定义为unique的列,可以出现一次NULL值。
Identity:设定自动标识列,不用为该字段赋值,每次由该字段自动按照定义的值来一次增加,只需设定初始值和自动增长值即可。
(2)域完整性:每一列的完整性(每一列的有效性)
域完整性的实现:限制数据类型、格式和取值范围(check、default、not null)等。
数据类型:只能数据指定的数据类型的数据。
Check:检查数据是否符合标准。
Default :如果没有为该字段赋值,则自动为默认的值。
Not null :约束该字段不能为空值。
(3)参照完整性:引用的完整性
参照完整性的实现:定义外键(foreign key)
外键:该列字段是另一张表的主键字段。(外键表应用的主键表的列一定要设置成主键。)
5、用设计器添加约束
(1)主键约束:在表的设计模式下,选中要设置主键的列,右键,选择“设置主键”。在设置主键的同时,默认的允许为空也空自动取消。
(2)唯一约束:在表的设计模式下,任意地方点击鼠标右键,选择“索引/键”,弹出对话框后,选择左侧“添加”按钮,在右边找到“(常规)”下面有个“类型”,把“索引”改成“唯一键”,把下面的“列”属性,改成要设置唯一的列名。
(3)默认约束:在表的设计模式下,选中要添加默认值的列,下面会自动显示出该列的属性,在“默认值或绑定”里面输入给定的值,如果在插入数据时,不给出该列的值,系统就会自动将默认值加入到数据中,如果给定了值,就添加用户给定的值。
(4)检查约束:在表的设计模式下,在任意地方点击鼠标右键,选择“CHECK约束(O)”
在对话框左侧选择“添加”,可以修改名称,也可是使用默认名称,在“表达式”后面写入check约束的表达式。
(5)外键约束:给表添加外键,在表的设计模式下,在任意地方点击鼠标右键,在弹出的对话框中,选择“关系(H)”,在左下角选择“添加”,在右边的“表和列规范”中,外键表就是已打开的要添加外键的表,主键表就是要关联的表,选中该表的主键,在外键表中,选择要建立外键的列,在主键表中选择引用表的主键。
三、数据库的特点
(1)可以存储大量数据(在数据库管理系统中有序的存储大量的数据)
(2)实现迸发问题控制(可以让多个人同时访问和修改)
(3)对数据进行快速查找、更新(利用一系列算法进行数据查询)
(4)数据安全(根据权限进行数据访问)
(5)数据完整(用主键、外键和约束等保护数据的完整性)
四、SQLServer的管理:
在安装了Visual Studio后,可以通过自带的SQLserver进行管理,也可以使用SQLServer Management Studio 进行管理。
五、数据库的基本操作
(1)创建数据库:
登录到SQLserver Management Studio后,选中数据库鼠标右键,选择“新建数据库”,出现了一个对话框,输入数据库的名称,这时就出现了两个文件,一个主文件,一个日志文件,这是可以设置文件的初始大小、自动增长、文件存储路径等属性,还可以点击添加,加入多个文件,但是主文件只能有一个,其他的都是辅助文件。(创建数据库时不能直接放入C盘,但是可以放入C盘子目录中。)
(2)创建表
展开所创建的数据库,选中表点击鼠标右键,选择“新建表”,建好表之后,写出字段名、数据类型、是否允许为空等属性。(如果定义字段与关键字冲突,则为了区分关键字,将字段名定义在[]中,例如【char】说明是字段名,不是关键字。)在填入表的字段信息是,可以给主键定义标识,可以让主键值自动增长。
(3)分离、附加数据库
如果要一个数据库断开连接,则需要分离,方法是选中要分离的数据库,点击右键,选择任务并点击,再选择分离,出现对话框,点击确定就可以了。
如果再次使用数据库时,需要附加,选中“数据库”右键附加,弹出“附加数据库”对话框,点击添加按钮,选择要添加的数据库,点击确定。
六、数据库数据类型
(1)Image:用来存储图像,属于二进制类型
(2)Char :固定长度非Unicode字符数据(ASCII编码,一个字母占一个字节)。属于文本数据类型,不足的自动补空格
(3)Varchar:可变长度非Unicode数据(ASCII编码,一个字母占一个字节)。属于文本数据类型
(4)Nchar:固定长度的Unicode数据,属于文本数据类型(一个字符占一个字节),自足的自动补空格。
(5)Nvarchar:可变长度的Unicode数据,属于文本数据类型(一个字符占一个字节)
(6)Text:存储长文本信息(Varchar(max)),属于文本数据类型
(7)Ntext:(Nvarchar(max)),属于文本数据类型
(8)Datetime:日期和时间
(9)Int :整数
(10)Smallint:整数
(11)Float:数字(浮点数,带小数点)
(12)Real:数字
(13)Money:货币数据类型
(14)Bit:布尔数据类型
七、数据库操作容易出现的问题
(1)设置主键时,如果选用标识来定义主键的自动增长,该字段的数据类型不能是字符类型,一定是数字类型。
(2)SQLServer2005与SQLServer2008由于权限的问题,在SQLServer2008中,如果修改
已存在的表,修改之后,有时会弹出一个对话框,保存不上,这时,在“工具”选项卡
中,选择“选项”这时中文版的选择“设计器”英文版的可能是“designer”,这时,
右边的“表选项”中,有一项“阻止保存要求重新创建表的更改(S)”把前面的“√”去掉就可以修改了。
(3)SQLserver2008中的数据库,不能在SQLserver2005中打开。
(4)数据库有时因为权限问题,附加不上去,这是WindowsXP系统,选择“文件夹选择”,把“简单文件共享”前面的“√”去掉。数据文件就可以点击鼠标右键,选择属性,在“安全”选项卡中,写入一个Everyone,在选中Everyone,选中“完全控制”就可以附加了。而Windows 7则不会出现这个问题。
(5)一旦给表中的主键设置标识列,就在该字段不能输入数据了
(6)在编辑表的时候Null 与什么都不写的区别:NULL在数据库中是一个对象,可以进行运算,但是操作系统不知道或不确定该字段数据,而什么都不写代表是一个空字符串。
八、系统数据库文件
(1)master数据库:主数据库,记录了SQLServer实例的全部信息。
(2)Model数据库:模板数据库。
(3)Msdb数据库:用于调度任务,和发出警报。
(4)Tempdb数据库:相当于一个临时缓存。
---------------------- http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发、
http://edu.csdn.net"target="blank">.Net培训、期待与您交流! ----------------------