SQL Server 应用开发(四)

 

第2章 SQL SERVER 数据库表管理

一、表相关的几个基本概念
(一)数据完整性
   1、定义:数据的完整性是指,在数据库中存储的数据必须是准确的,准备性是通过数据库表的设计和约束来实现的

   2、SQL SERVER 中存在的五种约束:
      主键约束、外键约束、检查约束、默认约束和唯一约束

   3、SQL SERVER 中提供的四种类型的约束(Constraint):
      1)实体完整性约束:要求表中的每一行数据都反映不同的实体,不能存在相同的数据行,一般通过索引、唯一约束、主键约束或标识列属性来实现

      2)域完整性约束:指给定列的输入有效性,一般通过数据类型、检查约束、输入格式、外键约束、默认值、非空约束等方法实现

      3)引用完整性约束:在输入或删除数据行时,引用完整性约束用来保持表之间已定义的关系。

学员信息表
学号姓名地址
0010012李山山东定陶
0010013吴兰湖南新田

学员成绩表
科目学号分数
数学001001288
数学001001374

      在上面二个表中已经存在了关系,学员成绩表中“学号”字段中的值必须存在于学员信息表中的“学号”字段中,学员信息表是“主表”,学员成绩表是“子表”,也叫“相关表”。

      在强制引用完整性时,SQL SERVER 禁止用户进行如下操作:
        A.当主表中没有关联的记录时,将记录添加到相关表中,即学员成绩表中不能出现学员信息表中不存在的学员

        B.更改主表中的值并导致相关表中的记录孤立。如果学员信息表中的学员改变了,学员成绩表中的学号也应当随之改变

        C.从主表中删除记录,但仍存在与该记录匹配的相关记录。如果学员信息表中的学号被删除了,则该学员学号不能出现在学员成绩表中

      4)自定义完整性约束:用户自己定义的完整性约束

(二)主键(Primary Key)和外键(Foreign Key)
   1、主键:
     1)定义:表中有一列或几列组合的值能用来唯一地标识表中的每一行,这样的列或者多列的组合叫做表的主键

     2)主键的值不能重复且不能为空(NULL),在一个表中只能定义一个主键,尽管表中也可以没有主键,但通常情况下应该为表设置主键

     3)定义主键的原则:
      A.最少性:在可以同时选择单一主键和组合主键(即用几列的组合来标识唯一行)时,尽管采用单一主键
      B.稳定性:被定义为主键的列,其数据应该想对稳定,不需要经常进行更新,最好永远不会改变

   2、外键:
      外键是对应于主键而言的,就是“子表”中对应于“主表”的列,在子表中称为外键或者引用键,它的值要求与主表的主键或唯一键相对应,外键用来强制引用完整性。一个表可以有多个外键

二、建立数据库表

(一)在企业管理器中建立数据库表
   1、系统表“sysFiles”和“sysUsers”的功能:
     1)“sysFiles”表:用于保存当前数据库的物理文件的信息
     2)“sysUsers”表:用于保存当前数据库的用户信息

   2、如何创建数据库表:     在当前数据库下,右击“表”项目,并在快捷菜单中选择“新建表”,就会进入到数据库表的设计对话框中,在这里可以对数据类型及相关约束进行设置

(二)确定列的数据类型
   1、SQL SERVER 中常用的数据类型:
分类备注和说明数据类型说明
二进制数据类型用来存储非字符和文本的数据Binary固定长度的二进制数据
Varbinary可变长度的二进制数据
Image可用来存储图像
文本数据类型字符数据包括任意字母、符号或数字字符的组合Char固定长度的非Unicode字符数据,最大长度为8000个字符
Varchar可变长度的非Unicode数据
Nchar固定长度的Unicode数据
Nvarchar可变长度的Unicode数据
Text存储长文本信息
Ntext存储可变长度的长文本信息
日期和时间日期和时间在单引号内分别输入Datetime时期和时间
数字类型该数据仅包含数字,包括正数、负数以及分数int整数
smallint
tinyint
bigint
float数字
real
货币数据类型货币数据类型用于十进制货币值,并且精确到小数点后四位数字Money 
Bit数据类型表示是/否的数据,只有两种选择,1表示是,0表示否Bit存储布尔数据类型

   2、在创建表的时候,选择字符数据类型,还需要输入长度信息(text除外),选择数字数据类型不再需要输入长度信息

(三)是否允许为空值
     数据库中的列是否允许为空也是一项约束,如果该列允许为空,则在输入数据行的时候,这一项可以不输入,这项约束在“表设计”对话框中的“允许空”一项进行设置

(四)建立主键
     在“表设计”对话框中选定要设为主键的列,右击选择“设置主键”即可,设置组合键的,可以按住CTRL选取多列进行设置

(五)默认值
     表的默认值设置能定义一个值,每当用户没有在某一列中输入值时,将所定义的值提供给这一列。在“表设计”对话框中选定要设置默认值的列,在其下方的“默认值”文本框中输入即可

(六)标识列
   1、标识列的作用:
    “标识列”是为了特意对列进行区分,其本身没有具体的意义,不反映具体的信息,只用来区别不同的学员,例如:一个学校中有多位姓名相同的学员时,就不能以姓名作为“主键”来使用,这时使用“标识列”为主键,以达到区分的目的

   2、标识列的实现:
    A.如果一列的数据属于数字类型,才可以把该列定义为标识列
    B.定义成标识列之后,还需要分别指定“标识种子”和“标识递增量”,默认都是1
    C.定义了标识列后,在以后每次输入数据的时候,该列随数据行的增加自动增加数据,并且不会重复,第一次的数字就是“标识种子”值,以后每次按照“标识增量”增加数值,标识列通常也被定义为主键,通常所说的“自动编号”就是指标识列的数字自动增加。

   3、使用标识列时的注意事项:
    A.标识列中的数据是自动生成的,不能在该列上输入数据,使用SQL语句插入数据时,也不允许为标识列指定值
    B.对于定义有标识列的数据行进行删除操作时,不影响“标识列”的自动增长值,如:在学生表中将“学号”定义为标识列,有2名新生入学进行登记,向表中插入2条记录,学号分为1和2,后因2号学生转学,“学号”为2的记录被删除,此后又有一名新生入学,此时该新生的学号为3,而非2

三、建立表间关系
(一)建立表间关系实际上就是实施引用完整性约束,建立主表和子表的关系
(二)建立表间关系的方法:
      在“表设计”对话框空白处右击,选择“关系”,即可打开“属性”对话框,在“关系”选项卡中单击“新建”后,选择好要建立关系的主表及子表,还有它们的关系字段即可
(三)查看表间关系的方法:
      在指定数据库下,右击“关系图”,选择“新建关系图”,弹出“关系图向导”对话框,选择要查看关系的两个或多个表,点击下一步至完成即可

四、建立检查约束
    检查约束也叫Check约束,用于定义列中可接受的数据值或者格式

五、导入和导出数据
 1、功能:用于将SQL SERVER中的数据转换成其它格式的数据,例如,文本文件或EXCEL等

 2、导出数据的方法:
  A.右击“数据库”,选择“所有任务”--“导出数据”,打开“导入导出向导”后点击“下一步”

  B.在“选择数据源”对话框中,可以设置以下选项,设置好后点“下一步”
    a.数据源:即为SQL SERVER数据,保持默认
    b.服务器:数据源所在主机
    c.验证方式:选择哪种都可以
    d.数据库:数据源所在的数据库名称

  C.在“选择目的”对话框中可进行如下设置,完成后点“下一步”
    a.目的:即要转换成哪种类型的数据,这里以文本类型为例,选择“文本文件”
    b.文件名:目标文件的名称(要先建好)

  D.在“指定表复制或查询”对话框中,可进行选择:本例选择第一项,选好后点“下一步”
    a.“从源数据库复制表和视图”:选这项后,可在下面的步骤中选择要导出的数据表
    b.“用一条查询来导出所需要的数据”:选这项后,在下面的步骤中会要求输入SQL语句,将执行结果导出

  E.在“选择目的文件格式”对话框中,可进行如下设置,完成后单击“下一步”:
    a.源:选择要导出的表
    b.是否带有分隔符:设置导出数据的格式中是否运用分隔符
    c.分隔符的种类

  F.直接单击“下一步”直到“完成”

 3、导入数据的方法:与导出类似

六、删除表
    在指定的数据库中,右击想要删除的表格,点击“删除”即可,删除后不可恢复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值