第4章创建和使用表new_第1页
第4章创建和使用表new_第2页
第4章创建和使用表new_第3页
第4章创建和使用表new_第4页
第4章创建和使用表new_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4.1.1 4.1.1 什么是表什么是表 SQL Server SQL Server中的数据库由表的集合组成,这些表用于中的数据库由表的集合组成,这些表用于存储一组特定的结构化数据。表中包含行(也称为记录或元存储一组特定的结构化数据。表中包含行(也称为记录或元组)和列(也称为属性)的集合。组)和列(也称为属性)的集合。 SQL Server SQL Server提供了很多种数据类型,还可以根据需要用提供了很多种数据类型,还可以根据需要用户自已定义新的数据类型,户自已定义新的数据类型,SQL ServerSQL Server中常用的数据类型如表中常用的数据类型如表4.14.1所示。所示。数据类型

2、数据类型说明说明number(p)number(p)整数(其中整数(其中p p为精度)为精度)decimal(p,s)decimal(p,s)浮点数(其中浮点数(其中p p为精度,为精度,d d为小数位数)为小数位数)char(n)char(n)固定长度字符串(其中固定长度字符串(其中n n为长度)为长度)varchar(n)varchar(n)可变长度字符串(其中可变长度字符串(其中n n为最大长度)为最大长度)datetimedatetime日期和时间日期和时间 空值是列的一种特殊取值,用空值是列的一种特殊取值,用NULLNULL表示。空值既不是表示。空值既不是charchar型或型或va

3、rcharvarchar型中的空字符串,也不是型中的空字符串,也不是intint型的型的0 0值。它值。它表示对应的数据是不确定的。表示对应的数据是不确定的。 表中主键列必须有确定的取值(不能为空值),其余列表中主键列必须有确定的取值(不能为空值),其余列的取值可以不确定(可以为空值)。的取值可以不确定(可以为空值)。4.1.2 4.1.2 表中数据的完整性表中数据的完整性数据完整性包括规则、默认值和约束等。数据完整性包括规则、默认值和约束等。1. 1. 规则规则 规则是指表中数据应满足一些基本条件。例如,学生规则是指表中数据应满足一些基本条件。例如,学生成绩表中分数只能在成绩表中分数只能在0

4、 0100100之间,学生表中性别只能取之间,学生表中性别只能取“男男”或或“女女”之一等。之一等。2. 2. 默认值默认值默认值是指表中数据的默认取值。例如,学生表中默认值是指表中数据的默认取值。例如,学生表中性别的默认可以设置为性别的默认可以设置为“男男”。3.3.表的约束表的约束 约束是指表中数据应满足一些强制性条件,这些条件通约束是指表中数据应满足一些强制性条件,这些条件通常由用户在设计表时指定。常由用户在设计表时指定。(1 1)非空约束()非空约束(NOT NULLNOT NULL):):非空约束是指数据列不非空约束是指数据列不接受接受NULLNULL值。例如,学生表中学号通常设定为

5、主键,不能接值。例如,学生表中学号通常设定为主键,不能接受受NULLNULL值。值。(2 2)检查约束()检查约束(CHECKCHECK约束):约束):检查约束是指限制输入检查约束是指限制输入到一列或多列中的可能值。例如,学生表中性别约束为只能到一列或多列中的可能值。例如,学生表中性别约束为只能取取“男男”或或“女女”值。值。(3 3)唯一约束()唯一约束(UNIQUEUNIQUE约束):约束):唯一约束是指一列或唯一约束是指一列或多列组合不允许出现两个或两个以上的相同的值。例如,学多列组合不允许出现两个或两个以上的相同的值。例如,学生成绩表中,学号和课程号可以设置为唯一约束,因为一个生成绩表

6、中,学号和课程号可以设置为唯一约束,因为一个学生对应一门课程不能有两个或以上的分数。学生对应一门课程不能有两个或以上的分数。(4 4)主键约束()主键约束(PRIMARY KEYPRIMARY KEY约束):约束):主键约束是指定主键约束是指定义为主键(一列或多列组合)的列不允许出现两个或两个以义为主键(一列或多列组合)的列不允许出现两个或两个以上的相同值。例如,若将学生表中的学号设置为主键,则不上的相同值。例如,若将学生表中的学号设置为主键,则不能存在两个学号相同的学生记录。能存在两个学号相同的学生记录。(5 5)外键约束()外键约束(FOREIGN KEYFOREIGN KEY约束):约束

7、):一个表的外键通一个表的外键通常指向另一个表的候选主键,所谓外键约束是指输入的外键常指向另一个表的候选主键,所谓外键约束是指输入的外键值必须在对应的候选码中存在。例如,学生成绩表中的学号值必须在对应的候选码中存在。例如,学生成绩表中的学号列是外键,对应于学生表的学号主键,外键约束是指输入学列是外键,对应于学生表的学号主键,外键约束是指输入学生成绩表中的学号值必须在学生表的学号列中已存在。生成绩表中的学号值必须在学生表的学号列中已存在。SQL Server SQL Server 提供了两种方法创建数据库表,第一种方法提供了两种方法创建数据库表,第一种方法是是利用利用SQL ServerSQL

8、Server管理控制器建立表管理控制器建立表;另一种方法是;另一种方法是利用利用T-T-SQLSQL语句中的语句中的create tablecreate table命令建立表命令建立表。本章只介绍采用前一。本章只介绍采用前一种方法建表,后一种方法将在下一章介绍。种方法建表,后一种方法将在下一章介绍。 【例例4.14.1】使用使用SQL ServerSQL Server管理控制器在管理控制器在schoolschool数据库中数据库中建立建立studentstudent表(学生表)、表(学生表)、teacherteacher表(教师表)、表(教师表)、coursecourse表表(课程表)和(课程

9、表)和scorescore表(成绩表)。表(成绩表)。操作步骤启动启动SQL ServerSQL Server管理控制器,展开管理控制器,展开“LCB-PCLCB-PC”服务器节服务器节点。点。展开展开“数据库数据库”节点。选中数据库节点。选中数据库“schoolschool”,展开,展开schoolschool数据库。数据库。选中选中“表表”,单击鼠标右键,在出现的快捷菜单中选择,单击鼠标右键,在出现的快捷菜单中选择“新建表新建表”命令,如图命令,如图4.14.1所示。所示。此时打开表设计器窗口,在此时打开表设计器窗口,在“列名列名”栏中依次输入表的列栏中依次输入表的列名,并设置每个列的数据

10、类型、长度等属性。输入完成后名,并设置每个列的数据类型、长度等属性。输入完成后的结果如图的结果如图4.24.2所示。所示。l名称:名称:指定列名称。指定列名称。l长度:长度:数据类型的长度。数据类型的长度。l默认值或绑定:默认值或绑定:在新增记录时,如果没有在新增记录时,如果没有把值赋予该字段,则此默认值为字段值。把值赋予该字段,则此默认值为字段值。l数据类型:数据类型:列的数据类型,用户可以单击列的数据类型,用户可以单击该栏,然后单击出现的下三角按钮,即可该栏,然后单击出现的下三角按钮,即可进行选择。进行选择。l允许空:允许空:指定是否可以输入空值。指定是否可以输入空值。lRowGuidRo

11、wGuid:可以让可以让SQL ServerSQL Server产生一个全局产生一个全局唯一的列值,但列类型必须是唯一的列值,但列类型必须是uniqueidentifieruniqueidentifier。有此属性的列会自动。有此属性的列会自动产生列值,不需要用户输入(用户也不能产生列值,不需要用户输入(用户也不能输入)。输入)。l排序规则:排序规则:指定该列的排序规则。指定该列的排序规则。在在“学号学号”列上右击鼠标,在出现的快捷菜单中选择列上右击鼠标,在出现的快捷菜单中选择“设设置主键置主键”命令,如图命令,如图4.34.3所示,从而将所示,从而将“学号学号”列设置为列设置为该表的主键,此

12、时,该列名前面会出现一个钥匙图标。该表的主键,此时,该列名前面会出现一个钥匙图标。单击工具栏中的保存按钮,出现如图单击工具栏中的保存按钮,出现如图4.44.4所示的对话所示的对话框,输入表的名称框,输入表的名称“student”student”,单击,单击“确定确定”按钮。此按钮。此时便建好了时便建好了studentstudent表(表中没有数据)。表(表中没有数据)。依照上述步骤,再创建依照上述步骤,再创建3 3个表:个表:teacherteacher表(教师表)、表(教师表)、coursecourse表(课程表)和表(课程表)和scorescore表(学生成绩表)。表的结表(学生成绩表)。

13、表的结构分别如图构分别如图4.74.7图图4.94.9所示。所示。采用采用SQL ServerSQL Server管理控制器修改和查看数据表结构十分简管理控制器修改和查看数据表结构十分简单,修改表结构与创建表结构的过程相同。单,修改表结构与创建表结构的过程相同。 【例例4.24.2】使用使用SQL ServerSQL Server管理控制器,先在管理控制器,先在studentstudent表中增加一个民族列(其数据类型为表中增加一个民族列(其数据类型为char(16)char(16)),然后进),然后进行删除。行删除。操作步骤启动启动SQL ServerSQL Server管理控制器,管理控制

14、器,展开展开“LCB-PCLCB-PC”服务器节点。服务器节点。展开展开“数据库数据库”节点。选中节点。选中“schoolschool”,将其展开,选中,将其展开,选中“表表”,将其展开,选中表,将其展开,选中表“dbo.studentdbo.student”,单击鼠标,单击鼠标右键,在出现的快捷菜单中选右键,在出现的快捷菜单中选择择“设计设计”命令。命令。在班号列前面增加民族列,其操作是,在打开的表设计在班号列前面增加民族列,其操作是,在打开的表设计器窗口中,用鼠标右击班号列,然后在出现的快捷菜单器窗口中,用鼠标右击班号列,然后在出现的快捷菜单中选择中选择“插入列插入列”命令。命令。在新插入

15、的列中,输入在新插入的列中,输入“民族民族”,设置数据类型为,设置数据类型为charchar,长度为长度为1616,如图,如图4.104.10所示。所示。现在删除刚增加的民族列。用鼠标右击现在删除刚增加的民族列。用鼠标右击“民族民族”列,然后列,然后在出现的快捷菜单中选择在出现的快捷菜单中选择“删除列删除列”命令,如图所示,这命令,如图所示,这样就删除了民族列。样就删除了民族列。单击工具栏中的保存单击工具栏中的保存 按钮,保存所进行的修改。按钮,保存所进行的修改。说明:说明:本例操作完毕后,本例操作完毕后,studentstudent表保持原有的表结构不变。表保持原有的表结构不变。一个数据库中

16、可能有多个表,表之间可能存在着关联关系,一个数据库中可能有多个表,表之间可能存在着关联关系,建立这种关联关系的图示称为数据库关系图。建立这种关联关系的图示称为数据库关系图。4.4.1 4.4.1 建立数据库关系图建立数据库关系图【例例4.34.3】建立建立schoolschool数据库中数据库中4 4个表的若干外键关系。个表的若干外键关系。操作步骤启动启动SQL ServerSQL Server管理控制器,展开管理控制器,展开“LCB-PCLCB-PC”服务器节服务器节点。点。展开展开“数据库数据库”节点,选中节点,选中“schoolschool”,将其展开。,将其展开。选中选中“数据库关系图

17、数据库关系图”,单击鼠标右键,在出现的快捷菜,单击鼠标右键,在出现的快捷菜单中选择单中选择“新建数据库关系图新建数据库关系图”命令,如图命令,如图4.114.11所示。所示。此时出现此时出现“添加表添加表”对话框,由于要建立对话框,由于要建立schoolschool数据库数据库中中4 4个表的关系,所以选中每一个表,并单击个表的关系,所以选中每一个表,并单击“添加添加”按按钮,添加完毕后,单击钮,添加完毕后,单击“关闭关闭”按钮返回到按钮返回到SQL ServerSQL Server管理控制器。在管理控制器。在“关系图关系图”中任意空白处单击鼠标右键,中任意空白处单击鼠标右键,在出现的快捷菜单

18、中选择在出现的快捷菜单中选择“添加表添加表”命令即可出现命令即可出现“添添加表加表”对话框。对话框。此时此时SQL ServerSQL Server管理控制器右边出现如图管理控制器右边出现如图4.124.12所示的所示的“关系图关系图”对话框。对话框。现在建立现在建立studentstudent表中学号列和表中学号列和scorescore表中学号列之间的表中学号列之间的关系:选中关系:选中scorescore表中的学号列,按下鼠标左键不放,拖表中的学号列,按下鼠标左键不放,拖动到动到studentstudent表上学号列上,放开鼠标左键,立即出现如表上学号列上,放开鼠标左键,立即出现如图图4.

19、134.13所示的所示的“表和列表和列”对话框,表示要建立对话框,表示要建立studentstudent表表中学号列和中学号列和scorescore表中学号列之间的关系(用户可以从主表中学号列之间的关系(用户可以从主键表和外键表组合框中选择其他表,也可以选择其他列键表和外键表组合框中选择其他表,也可以选择其他列名),这里保持表和列不变,关系名也取默认值,单击名),这里保持表和列不变,关系名也取默认值,单击“确定确定”按钮。按钮。出现如图出现如图4.144.14所示的所示的“外键关系外键关系”对话框,单击对话框,单击“确定确定”按钮返回到按钮返回到SQL ServerSQL Server管理控制

20、器。管理控制器。采用同样的过程建立采用同样的过程建立coursecourse表中课程号列(主键)和表中课程号列(主键)和scorescore表中课程号列(外键)之间的外键关系。表中课程号列(外键)之间的外键关系。采用同样的过程建立采用同样的过程建立teacherteacher表中编号列(主键)和表中编号列(主键)和coursecourse表中任课教师编号列(外键)之间的外键关系。表中任课教师编号列(外键)之间的外键关系。最终建好的关系图如图最终建好的关系图如图4.164.16所示。单击工具栏中的保存所示。单击工具栏中的保存 按按钮来保存关系。钮来保存关系。 通过数据库关系图建立的关系反映在各个

21、表的键中,如通过数据库关系图建立的关系反映在各个表的键中,如图图4.174.17所示是所示是scorescore表的键列表,其中表的键列表,其中PK_scorePK_score键是通过设键是通过设置主键建立的,而置主键建立的,而FK_score_courseFK_score_course和和FK_score_studentFK_score_student两两个键是通过上例建立的。个键是通过上例建立的。8.4.2 8.4.2 删除关系和数据库关系图删除关系和数据库关系图通过数据库关系图删除关系通过数据库关系图删除关系 当不再需要时,可以通过数据库关系图删除表之间的当不再需要时,可以通过数据库关系

22、图删除表之间的外键关系。其操作是:进入建立该外键关系的数据库关系外键关系。其操作是:进入建立该外键关系的数据库关系图,选中该外键关系连线,单击鼠标右键,在出现的快捷图,选中该外键关系连线,单击鼠标右键,在出现的快捷菜单中选择菜单中选择“从数据库中删除关系从数据库中删除关系”命令,在出现的对话命令,在出现的对话框中选择框中选择“是是”即可。即可。2. 2. 删除数据库关系图删除数据库关系图 当不再需要数据库关系图后,可以选中当不再需要数据库关系图后,可以选中“数据库关系数据库关系图图”列表中的某个数据库关系图(如列表中的某个数据库关系图(如dbo.Diagram_0dbo.Diagram_0),

23、单),单击鼠标右键,在出现的快捷菜单中选择击鼠标右键,在出现的快捷菜单中选择“删除删除”命令即可。命令即可。 删除某个数据库关系图后,其包含的外键关系仍然保删除某个数据库关系图后,其包含的外键关系仍然保存在数据库中,不会连同该数据库关系图一起被删除。若存在数据库中,不会连同该数据库关系图一起被删除。若某数据库关系图被删除了,还需要删除其外键关系,只有某数据库关系图被删除了,还需要删除其外键关系,只有进入各表的键列表中进入各表的键列表中, ,一个一个将不需要的外键删除掉。一个一个将不需要的外键删除掉。4.5.1 4.5.1 表的更名表的更名【例例4.44.4】将数据库将数据库schoolscho

24、ol中中abcabc表(已创建)更名为表(已创建)更名为xyzxyz。操作步骤启动启动SQL ServerSQL Server管理控制器,展开管理控制器,展开“LCB-PCLCB-PC”服务器节点。服务器节点。展开展开“数据库数据库”节点,展开节点,展开“schoolschool”,选中,选中“表表”,将,将其展开。其展开。选中表选中表“dbo.abcdbo.abc”,单击鼠标右键,在出现的快捷菜单,单击鼠标右键,在出现的快捷菜单中选择中选择“重命名重命名”命令。命令。此时表名称变为可编辑的,直接将其修改成此时表名称变为可编辑的,直接将其修改成“xyzxyz”即可。即可。4.5.2 4.5.2

25、 删除表删除表【例例4.54.5】删除数据库删除数据库schoolschool中中xyzxyz表(已创建)。表(已创建)。操作步骤启动启动SQL ServerSQL Server管理控制器,展开管理控制器,展开“LCB-PCLCB-PC”服务器节服务器节点。点。展开展开“数据库数据库”节点,展开节点,展开“schoolschool”,选中,选中“表表”,将其展开。将其展开。选中表选中表“dbo.xyzdbo.xyz”,单击鼠标右键,在出现的快捷菜,单击鼠标右键,在出现的快捷菜单中选择单中选择“删除删除”命令。命令。此时出现此时出现“删除对象删除对象”对话框,直接单击对话框,直接单击“确定确定”

26、按钮按钮将将xyzxyz表删除了。表删除了。 记录的新增和修改与记录的表内容的查看的操作过程记录的新增和修改与记录的表内容的查看的操作过程是相同的,就是在打开表的内容窗口后,直接输入新的记是相同的,就是在打开表的内容窗口后,直接输入新的记录或者进行修改。录或者进行修改。 【例例4.64.6】输入输入schoolschool数据库中数据库中studentstudent、teacherteacher、coursecourse和和scorescore等等4 4个表的相关记录。个表的相关记录。操作步骤启动启动SQL ServerSQL Server管理控制器,展开管理控制器,展开“LCB-PCLCB-

27、PC”服务器节点。服务器节点。展开展开“数据库数据库”节点,选中节点,选中“schoolschool”,将其展开,选中,将其展开,选中“表表”,将其展开。,将其展开。选中表选中表“dbo.studentdbo.student”,单击鼠标右键,在出现的快捷,单击鼠标右键,在出现的快捷菜单中选择菜单中选择“编辑前编辑前200200行行”命令。命令。此时出现此时出现studentstudent数据表编辑对话框,用户可以在其中数据表编辑对话框,用户可以在其中各列中直接输入或编辑相应的数据,这里输入各列中直接输入或编辑相应的数据,这里输入6 6个学生个学生记录,如图记录,如图4.184.18所示。所示。

28、采用同样的方法输入采用同样的方法输入teacherteacher、coursecourse和和scorescore表中数据表中数据记录,分别如图记录,分别如图4.194.19图图4.214.21所示。所示。说明:说明:本例中输入的数据作为样本数据,在本书后面的本例中输入的数据作为样本数据,在本书后面的许多例子中用到。许多例子中用到。计算列计算列 计算列由可以使用同一表中的其他列的表达式计算得计算列由可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达是用一个或

29、多个运算符连接的上述元素的任意组合。表达式不能为子查询。式不能为子查询。 除非另行指定,否则计算列是未实际存储在表中的虚除非另行指定,否则计算列是未实际存储在表中的虚拟列。每当在查询中引用计算列时,都将重新计算它们的拟列。每当在查询中引用计算列时,都将重新计算它们的值。数据库引擎在值。数据库引擎在CREATE TABLECREATE TABLE和和ALTER TABLEALTER TABLE语句中使语句中使用用PERSISTEDPERSISTED关键字(持久的)来将计算列实际存储在表关键字(持久的)来将计算列实际存储在表中。如果在计算列的计算更改时涉及任何列,将更新计算中。如果在计算列的计算更改时涉及任何列,将更新计算列的值。列的值。 【例例4.74.7】在在s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论