黑马程序员-------SQLServer数据库基础知识

来源:互联网 发布:怎么获得淘宝代金券 编辑:程序博客网 时间:2024/06/05 22:44

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>

<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

一、什么是数据库?

1、广义:数据库(Database)按一定顺序分类存放数据的仓库;

2、狭义:数据库管理系统(Database Management System):例如DB2(大型数据库)、Oracle(大型数据库)、MSSQLServer(与.net结合比较好)、SybaseAccess(数据文件)Mysql(速度快,但不是很安全)、SQLite(轻量级数据库)。其中数据文件指的是安全软件就可以使用的数据库例如(AccessSQLite),但是大部分数据库都需要数据库服务器才能运行。在学习或者开发时,一般连接到的是本机的服务器,但是在实际项目上线运行时,连接的是单独的服务器。

3、数据库管理员(DBAdatabase administrator

4SQL(语言)MSSQLServerSQLServer

SQL是一门专门为数据库设计的结构化查询语言(Structrued Query Lanager)。

SQLServerMSSQLServer是不同的数据库管理软件。

SQLServer

MSSQLServer:微软Sqlserver

二、DBMS简介

(1)Windows身份验证与Sqlserver身份验证

Windows身份验证是“信任连接”根据登录到操作系统的用户的权限来进行身份验证,而远程是无法连接到的,因此比较安全。

sqlserver身份验证是“不信任连接”是根据判断用户名和密码,而通过远程只要是输入正确的用户名和密码就可以访问数据库了。

(2)数据库的组成:

 不同类型的数据应放到不同的数据库中。我们所说的关系型数据库中所谓的“关系”指的就是表。

1、表:每一个数据库都可以由一个或多个表组成。

   1)表中的每一行数据称为一个记录。

   2)表中的每一列称为一个字段或列。

对象关系模型:每一个表代表一个类,每一条完整记录代表类的实例,每一列代表类的字段。

2、表中的主键(PrimaryKey):数据行的唯一标识(不重复的列才能当主键)(表都设置主键被称为第一范式)

主键的使用策略:

业务主键:主键里的数据与整条记录的数据地位相同,就是有业务意义的主键,即使主键,又是记录里的一个成员。

逻辑主键:没有实际意义的数字,单独设置的一列,专门用来唯一标示数据,不与表中的记录有任何关系。(为保证数据唯一,推荐使用业务主键)

联合主键:把表中的两个字段的成员联合起来设置成的主键。

3、表间关联、外键

为了防止表的数据冗余,可以使用外键。(相对而言,如果一个表有一列数据,这列数据恰好是另一个表的主键,则称为外键。

4、数据库的完整性

数据库的完整性是指数据逻辑上的一致性和准确性。

约束:为了防止数据的乱修改,赋值等等一系列的操作,而形成的约束。

1、非空约束:主键约束(PKprimary key唯一且不为空

2、唯一约束:(UKunkque constraint唯一,可以出现一次空

3、默认约束:(DFdefault constraint 默认值

4、检查约束:(CKcheck constraint范围及格式限制

5、外键约束:(FKforeign key引用表关系的约束

(1)实体完整性:每一条记录或每一行的完整性

实体完整性的实现:设置主键(primary key)或者设置unique属性或者identity来唯一标识每一行数据。

Primary Key :每一个表中,只能有一个主键,但是,可以由一个字段或多个字段的值来定义。并且,该列不能出现NULL

Unique:每一个表中,可以有多个定义为unique的列,可以出现一次NULL值。

Identity:设定自动标识列,不用为该字段赋值,每次由该字段自动按照定义的值来一次增加,只需设定初始值和自动增长值即可。

(2)域完整性:每一列的完整性(每一列的有效性)

域完整性的实现:限制数据类型、格式和取值范围(checkdefaultnot 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)SQLServer2005SQLServer2008由于权限的问题,在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数据库:相当于一个临时缓存。

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>

<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

0 0
原创粉丝点击