《数据库中的表》PPT课件.ppt

上传人:壹****1 文档编号:568640105 上传时间:2024-07-25 格式:PPT 页数:33 大小:521KB
返回 下载 相关 举报
《数据库中的表》PPT课件.ppt_第1页
第1页 / 共33页
《数据库中的表》PPT课件.ppt_第2页
第2页 / 共33页
《数据库中的表》PPT课件.ppt_第3页
第3页 / 共33页
《数据库中的表》PPT课件.ppt_第4页
第4页 / 共33页
《数据库中的表》PPT课件.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《《数据库中的表》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库中的表》PPT课件.ppt(33页珍藏版)》请在金锄头文库上搜索。

1、第第4章章 数据库中的表数据库中的表SQLServer2005SQLServer2005中的数据类型中的数据类型中的数据类型中的数据类型 十进制类型需要自己定义精度和小数位数,其他的均不十进制类型需要自己定义精度和小数位数,其他的均不需要定义。但是其他的可能把有效位数丢失。需要定义。但是其他的可能把有效位数丢失。1、数值类型、数值类型整型:整型:bigint、int、smallint、tinyint位型:位型:bit货币型:货币型:mony、smallmony十进制:十进制:decimal和和numeric(需要规定精度和小数位数)(需要规定精度和小数位数)近似数字:近似数字:float、re

2、al数据类型最大的存储容量说明Char8000B固定长度的非Unicode的字符数据,最长为8000个字符Varchar8000B可变长度的非Unicode的字符数据,最长为8000个字符Text2GB可变长度的非Unicode的字符数据,最长为231-1个字符Nchar8000B固定长度的Unicode的字符数据,最长为4000个字符Nvarchar8000B可变长度的Unicode的字符数据,最长为4000个字符Ntext2GB可变长度的Unicode的字符数据,最长为230-1个字符2.字符数据类型字符数据类型字符型数据可以表示文字、数字或其他特殊符号,在字符型数据可以表示文字、数字或其

3、他特殊符号,在定义字符型数据时,必须指定一个数值,用来表示字符型定义字符型数据时,必须指定一个数值,用来表示字符型数据的长度。数据的长度。一个非Unicode的字符(最前面没有n)数据所占的存储容量为1字节,而一个Unicode的字符(最前面有n)数据所占的存储容量为2字节。对于固定长度(无var)的字符型数据,当实际的字符长度小于指定大小时,它将会自动在字符后面补空格填满整个长度,使数据长度固定可变长度(有var)的字符型数据可以随着存放的字符长度大小自动调整其占用的存储空间,当实际的字符长度小于指定大小时,它不会在字符后面补空格,而是以实际存入的字符长度保存。当存储在字段中的字符长度经常变

4、化时,可变长度的字符型数据将是较好的选择,它可以减少不必要的空间浪费,有效地节省空间 3. 日期时间数据类型日期时间型数据是可以用来存储日期和时间的组合数据。当要在字段中存放日期/时间信息,如出生日期、进货时间等,就可以将字段定义为日期时间数据类型。在SQL Server中定义了两种日期时间数据类型,分别是smalldatetime和datetime,且日期和时间一起存放的,没有单独存放日期或时间的。数据类型存储容量数值范围精度smalldatetime4 B1900年1月1日到2079年6月6日一分钟datetime8 B1753年1月1日到9999年12月31日百分之三秒4. 二进制数据类

5、型二进制数据类型是一些用十六进制数来表示的数据。在SQL Server中提供了三种数据类型来存储二进制数据,分别是binary,varbinary和image使用image数据类型可以来存储图片或影像数据,或者是存放特殊格式化的文件数据,如Word,Excel,PDF文件等。数据类型最大的存储容量说明binary8000B固定长度的二进制数据varbinary8000B可变长度的二进制数据image2GB可变长度的二进制数据41 创建表创建表表是数据库中的重要组成部分,创建了数据库之后就应表是数据库中的重要组成部分,创建了数据库之后就应创建表。创建数据表主要有两种方法,分别是利用图形界创建表。

6、创建数据表主要有两种方法,分别是利用图形界面方式创建表和利用面方式创建表和利用SQL命令方式创建表。命令方式创建表。411使用管理器创建表使用管理器创建表在建立表之前先要分析表的结构,即表名、表中的字在建立表之前先要分析表的结构,即表名、表中的字段及类型等。段及类型等。 步骤步骤步骤步骤2 2:在:在“表表”处击右键选择处击右键选择“新建表新建表”,弹出如下窗,弹出如下窗口。口。 步骤步骤步骤步骤1 1:展开至要建立表的数据库节点,即展开某个数据:展开至要建立表的数据库节点,即展开某个数据库前的库前的“”。 步骤步骤步骤步骤2 2:在:在“表表”处击右键选择处击右键选择“新建表新建表”,弹出如

7、下窗,弹出如下窗口。口。输入字段名选择数据类型并输入长度设置是否允许为空字段的其他属性设置注意:注意:注意:注意: 1、建立表后要保存。、建立表后要保存。 2、不是我们建立的系统表不能删除。、不是我们建立的系统表不能删除。 3、建立表后双击它可以查看它的属性,在该表上击右、建立表后双击它可以查看它的属性,在该表上击右键选择键选择“修改修改”可以修改表的结构。可以修改表的结构。 4、在该表上击右键选择、在该表上击右键选择“重命名重命名”可以重命名表。但可以重命名表。但是建立表以后不要轻易对表进行重命名,因为重命名存储是建立表以后不要轻易对表进行重命名,因为重命名存储过程、视图等无效,所以重命名表

8、要慎重。过程、视图等无效,所以重命名表要慎重。 5、输入数据的方法:在表上击右键选择、输入数据的方法:在表上击右键选择“打开表打开表”。设置主键的方法设置主键的方法:右击要设置为主键字段前的按钮处选:右击要设置为主键字段前的按钮处选择择“设置主键设置主键”。如果是多个字段作为主键那么就需要先按。如果是多个字段作为主键那么就需要先按住住Ctrl键选中多个字段。键选中多个字段。设置标识种子和默认值。设置标识种子和默认值。 (1) 标识种子:标识种子: 作用:作用:在我们输入数据时,有些数值是按照一定的规律增在我们输入数据时,有些数值是按照一定的规律增长的,比如编号是长的,比如编号是1、2、3,那么

9、这些规律的数据就可以,那么这些规律的数据就可以作为标识种子而不需要手工输入。作为标识种子而不需要手工输入。 方法:方法:在表设计器中,定位到对应的字段在表设计器中,定位到对应的字段(一般都是整型或一般都是整型或数值型数值型),在下部分列属性的,在下部分列属性的“标识规范标识规范”的的“(是标识是标识)”处选处选择择“是是”,“标识种子标识种子”处输入数字的起始值,在处输入数字的起始值,在“种子递增种子递增量量”处输入数字每次增长的数值数。处输入数字每次增长的数值数。 注意:注意:一般是在设计表时直接设置好。一般是在设计表时直接设置好。 (2) 默认值:默认值: 作用:作用:在某些字段的值中,有

10、些数值是大部分记录都有在某些字段的值中,有些数值是大部分记录都有的,比如说民族中的的,比如说民族中的“汉族汉族”,性别中的,性别中的“男男”等等,那么等等,那么可以为这些字段添加上默认值,即:如果在本字段不输入值可以为这些字段添加上默认值,即:如果在本字段不输入值时,将默认填上对应的值而不是时,将默认填上对应的值而不是NULL。 方法:方法:在表设计器中,定位到对应的字段,在下部分列在表设计器中,定位到对应的字段,在下部分列属性的属性的“默认值或绑定默认值或绑定”处填上对应的默认值。处填上对应的默认值。412 使用使用SQL命令方式创建表命令方式创建表 一、Create Table的格式的格式

11、 : CREATE TABLE 数据库名数据库名.所有者所有者.表名表名( 字段名字段名 数据类型数据类型 (字段大小字段大小) NULL|NOT NULL ,n)create tablecreate table 部门部门 (4-1)(4-1)( ( 顺序号顺序号 intint primary key identity(1,1) not nullprimary key identity(1,1) not null, , 部门编号部门编号 intint, , 部门名称部门名称 varchar(100)varchar(100), , 创建日期创建日期 smalldatetimesmalldatet

12、ime default default getdategetdate()() )说明:说明: 1. 1. 如果在表名前省略如果在表名前省略“数据库名数据库名. .所有者所有者”,那么默认的是在当前,那么默认的是在当前所有者,默认所有者为所有者,默认所有者为dbodbo。 2. 2. 如果允许为空如果允许为空nullnull可以省略,但是不允许为空时可以省略,但是不允许为空时not null not null 不能不能省略。省略。 3. 3. 除开字符类型和精确型数值以外,其他的均不能设置类型的字除开字符类型和精确型数值以外,其他的均不能设置类型的字段大小。段大小。 4. primary key

13、 4. primary key 为设置成主键,为设置成主键, identity(1,1) identity(1,1) 为标识种子,且为标识种子,且primary keyprimary key、identity(1,1)identity(1,1)、not nullnot null可以互换位置。可以互换位置。 5. default5. default为设置默认值,为设置默认值, getdategetdate()()为设置默认值为当前日期和为设置默认值为当前日期和时间。时间。usexsgl(4-2)gocreatetablekc(课程号课程号char(4)notnull,课程名课程名char(16)

14、notnull,学分学分smallint,学时数学时数smallint)go例例4-1usexsgl(4-3)gocreatetablecj(学号学号char(10)notnullprimarykey,课程号课程号char(4)notnull,成绩成绩numeric(5,2)go例例4-242 表管理和维护表管理和维护当表创建完成之后,我们可以查看、修改或删除已经存在当表创建完成之后,我们可以查看、修改或删除已经存在的表。例如可以查看表的定义信息,修改表的结构、内容等。的表。例如可以查看表的定义信息,修改表的结构、内容等。421查看表的属性查看表的属性(了解了解)1使用使用SQLServerM

15、anagementStudio查看表的属查看表的属性。性。在在“对象资源管理器对象资源管理器”中右击要查看属性的数据表,然后中右击要查看属性的数据表,然后选择选择“属性属性”即可。即可。2使用存储过程查看表结构信息使用存储过程查看表结构信息格式:格式:EXECUTEsp_help表名表名【例例4.3】查看查看kc表的结构。表的结构。EXECsp_helpkc422 修改表结构修改表结构1、使用管理器修改表结构、使用管理器修改表结构在数据库的在数据库的“表表”节点,右击要修改的表。在弹出节点,右击要修改的表。在弹出的快捷菜单中选择的快捷菜单中选择“修改修改”命令。在弹出的命令。在弹出的“设计表设

16、计表”窗口中,即可以完成修改表结构的操作窗口中,即可以完成修改表结构的操作(删除字段、修改删除字段、修改字段、添加字段、添加/追加字段追加字段),操作方法与创建表时相同。,操作方法与创建表时相同。422 修改表结构修改表结构2 2、使用、使用T- SQLT- SQL语句修改表结构语句修改表结构分三种情况修改:分三种情况修改:(1) 增加字段增加字段 :格式格式格式格式:alter table 表名表名 add 字段名字段名 类型类型 其他属性设置其他属性设置【例例4.4】向向xs表增加如下两个字段。表增加如下两个字段。USE xsgl (4-4)GOALTER TABLE xsADD 电话 C

17、HAR(8)NULLALTER TABLE xsADD 电子邮件 CHAR(40) NULLGO(2) 修改现有字段修改现有字段 :格式格式格式格式: alter table 表名表名 alter column 字段名字段名 类型类型 其他属性设置其他属性设置 【例例4.5】将将xs表中的电子邮件字段的列长改为表中的电子邮件字段的列长改为20。ALTERTABLExs(4-5)ALTERCOLUMN电子邮件电子邮件CHAR(20)NULL【例例4.6】将将xs表中的电话列删除。表中的电话列删除。ALTERTABLExs(4-6)DROPCOLUMN电话电话(3) 删除字段删除字段 :格式格式格

18、式格式: alter table 表名表名 drop column 字段名字段名423 删除数据表删除数据表删除表就是将表的数据和表的结构从数据库中永久的移删除表就是将表的数据和表的结构从数据库中永久的移除。也就是说,一个表一旦被删除,则该表的数据、结构定除。也就是说,一个表一旦被删除,则该表的数据、结构定义、约束、索引等都被永久删除,就无法恢复,除非还原数义、约束、索引等都被永久删除,就无法恢复,除非还原数据库。因此执行此操作时应该慎重。据库。因此执行此操作时应该慎重。方法方法1:在:在SQLServerManagementStudio的的“对对象资源管理器象资源管理器”中,选择要删除的数据

19、表,单击右键,在弹中,选择要删除的数据表,单击右键,在弹出的快捷菜单中选择出的快捷菜单中选择“删除删除”。2、使用、使用DROPTABLE命令命令格式:格式:DROPTABLE表名表名,.n【例例4.8】删除删除xsgl数据库中的数据库中的cj表。表。USExsgl(4-8)GODROPTABLEcjGO在使用DROP TABLE语句删除数据库表时,需注意以下几点。(1)DROP TABLE语句不能删除系统表。(2)DROP TABLE语句不能删除正被其他表中的外键约束参考的表。当需要删除这种有外键约束参考的表时,必须先删除外键约束,然后才能删除表。(3)当删除表时,属于该表的约束和触发器也会

20、自动被删除。如果重新创建该表,必须注意创建相应的规则、约束和触发器等。(4)使用DROP TABLE命令一次可以删除多个表,多个表名之间用逗号分开。43 表数据的操作表数据的操作表创建以后,往往只是一个没有数据的空表。因此,向表表创建以后,往往只是一个没有数据的空表。因此,向表中输入数据应当是创建表之后首先要执行的操作。无论表中中输入数据应当是创建表之后首先要执行的操作。无论表中是否有数据,都可以根据需要向表中添加数据,如果表中的是否有数据,都可以根据需要向表中添加数据,如果表中的数据不再需要,则可以删除这些数据。数据不再需要,则可以删除这些数据。431图形界面方式操作表数据图形界面方式操作表

21、数据在在“在对象资源管理窗口在对象资源管理窗口”中右击要操作数据的表选择中右击要操作数据的表选择“打开表打开表”即可追加、删除和修改记录。即可追加、删除和修改记录。注意:注意:在编辑表中数据的过程中,输入的各列的内容一在编辑表中数据的过程中,输入的各列的内容一定要和所定义的数据类型一致,如果有其他定义或约束等要定要和所定义的数据类型一致,如果有其他定义或约束等要求,也一定要符合,否则将出现错误。求,也一定要符合,否则将出现错误。432 使用使用INSERT命令向表中添加数据命令向表中添加数据insert语句格式语句格式: insert into 表名表名字段字段1,字段字段2, values(

22、值值1,值值2, ) 要求:值要求:值1、值、值2的顺序与表中字段的顺序一致的顺序与表中字段的顺序一致,如果不一致或不完如果不一致或不完整整,需要在需要在“表名表名”后用圆括号把要插入字段的名字括起来后用圆括号把要插入字段的名字括起来.如:如:create table 成绩成绩 ( 姓名姓名 varchar(8), 语文语文 numeric(5,2), 数学数学 numeric(5,2), 英语英语 numeric(5,2) )insert into 成绩成绩 values(张三张三,88,85,92)insert into 成绩成绩(姓名姓名,语文语文,英语英语)values(李四李四,85

23、,77)select * from 成绩成绩建立建立“成绩成绩”表表添加添加2条记录条记录显示表中的所有记录显示表中的所有记录【例例4.9】向向xs表中插入记录。表中插入记录。USExsgl(4-9)GOINSERTxs(学号学号,姓名姓名,性别性别,出生时间出生时间,专业专业,总学分总学分,照片照片,备注备注)VALUES(2006030101,王林王林,男男,88/02/03,NULL,20,NULL,NULL)INSERTxsVALUES(2006030102,程明程明,男男,88/05/15,NULL,20,NULL,NULL)INSERTxs(学号学号,姓名姓名,性别性别,出生时间出

24、生时间,专业专业,总学分总学分)VALUES(2006030103,王燕王燕,女女,87/08/22,NULL,20)GO433 使用使用UPDATE修改表中的数据修改表中的数据 当我们需要更改表中的记录时当我们需要更改表中的记录时,可以采用在图形界面方式可以采用在图形界面方式中直接更改的方法,但是如果更改的数量比较多或更改某一条中直接更改的方法,但是如果更改的数量比较多或更改某一条件的记录,那么手工改写的方法比较麻烦,又不能保证一致性。件的记录,那么手工改写的方法比较麻烦,又不能保证一致性。所以采用所以采用update方法既快速有保证一致性。方法既快速有保证一致性。 使用使用update语句

25、对目标表中的一行、多行或所有行记录进语句对目标表中的一行、多行或所有行记录进行更新:行更新:格式:格式: update 目标表名目标表名 set 字段名字段名=表达式表达式 where 例:将例:将kc表中表中“课程号课程号”为为A002的的“课程名课程名”改为改为“高等高等数学数学”。updatekc(4-10)set课程名课程名=高等数学高等数学where课程号课程号=A002 例:将例:将cj表中将学号为表中将学号为2006030101的成绩减去的成绩减去10分。分。select*fromcjwhere学号学号=2006030101(4-11)updatecjset成绩成绩=成绩成绩-1

26、0where学号学号=2006030101select*fromcjwhere学号学号=2006030101 例:将例:将xs表中学号为表中学号为2006030110的性别改为的性别改为“男男”并且将专业改为并且将专业改为“网络工程网络工程” 。update xs (4-12) set 性别=男,专业=网络工程where 学号=2006030110【例例4.10】将将xs表中所有学生的专业设为表中所有学生的专业设为“信管信管”。UPDATExs(4-13)SET专业专业=信管信管【例例4.11】将将xs表中所有男学生专业名称改写为表中所有男学生专业名称改写为“信信息管理息管理”。说明:说明:不

27、使用不使用where表示对所有的记录进行修改。表示对所有的记录进行修改。UPDATExs(4-14)SET专业专业=信息管理信息管理WHERE性别性别=男男434 使用DELETE或TRANCATE TABLE删除表中的数据随着实际情况的变化,表中的一些记录可能需要被删随着实际情况的变化,表中的一些记录可能需要被删除,以提高数据查询的质量。删除表中数据用除,以提高数据查询的质量。删除表中数据用DELETE语语句来完成。使用句来完成。使用T-SQL中的中的DELETE语句可以删除数据表语句可以删除数据表中的中的个或多个记录。其基本语法格式如下。个或多个记录。其基本语法格式如下。DELETEFRO

28、M表名表名WHERE注意:注意:若在若在DELETE语句中没有给出语句中没有给出WHERE子句,则子句,则删除表中所有记录。删除表中所有记录。例例4.12】将将xs表中学号为表中学号为“2006030102”的同学记录的同学记录删除。删除。USExsgl(4-15)GODELETExsWHERE学号学号=2006030102GO删除表中所有记录也可以使用删除表中所有记录也可以使用TRUNCATETABLE语句。语句。其语法格式如下。其语法格式如下。TRUNCATETABLE表名表名该语句的功能是删除表中的所有记录,与不带该语句的功能是删除表中的所有记录,与不带WHERE子子句的句的“DELETE表名表名”功能相似,不同的是功能相似,不同的是DELETE语句在删语句在删除每一行时都要把删除操作记录到日志中,而除每一行时都要把删除操作记录到日志中,而TRUNCATETABLE语句则是通过释放表数据页面的方法来删除表中的数语句则是通过释放表数据页面的方法来删除表中的数据(一次全部删除),它只将对数据页面的释放操作记录到据(一次全部删除),它只将对数据页面的释放操作记录到日志中,所以日志中,所以TRUNCATETABLE语句执行速度快。语句执行速度快。 如:TRUNCATE TABLE kc

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号