数据库应用基础第三章数据表的建立讲解材料

上传人:yulij****0329 文档编号:139440433 上传时间:2020-07-21 格式:PPT 页数:52 大小:284KB
返回 下载 相关 举报
数据库应用基础第三章数据表的建立讲解材料_第1页
第1页 / 共52页
数据库应用基础第三章数据表的建立讲解材料_第2页
第2页 / 共52页
数据库应用基础第三章数据表的建立讲解材料_第3页
第3页 / 共52页
数据库应用基础第三章数据表的建立讲解材料_第4页
第4页 / 共52页
数据库应用基础第三章数据表的建立讲解材料_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《数据库应用基础第三章数据表的建立讲解材料》由会员分享,可在线阅读,更多相关《数据库应用基础第三章数据表的建立讲解材料(52页珍藏版)》请在金锄头文库上搜索。

1、1,第三章 数据表的建立,2,复习,数据库的文件与文件组? SQL Server2005数据库具有3种类型的文件 1. 主要数据文件 2. 次要数据文件 3. 事务日志文件,3,数据库的创建,CREATE DATABASE database_name ON PRIMARY ,n ,n LOG ON,n COLLATE collation_name WITH ;,4,本章主要内容,数据表的概念 表的创建、修改与删除 思考题 创建数据库之前应该先确定什么? 练习 创建表(请同学们利用课余时间提前将所需代码程序输入保存在WORD文档中,以供实验课所需),6,3.1表的概念,数据表是数据库中最重要的对

2、象之一.表是存储数据的场所。 创建表的实质就是定义表结构及约束等属性。 定义表结构包括:确定表的名字、所包含的列名、列的数据类型、长度、是否可为空值、默认值、列的标识属性等内容。,7,数据库表记录字段属性,字段,记录,8,设计数据库步骤,确定数据库所需的表 每个表中数据的类型 可以访问每个表的用户,9,数据类型 列数 哪些列允许空值 是否要使用以及何处使用约束、默认值和规则 所需索引的类型,10,创建表的方法,创建一个基表-添加数据,11,3.2 SQL Server 的数据类型,预备知识 精度:指数值数据中所存储的十进制数据的总位数。 小数位数:指数值数据中小数点右边可以有的数字位数的最大值

3、。例如数值数据3890.587的精度是7,小数位数是3。 长度:指存储数据所使用的字节数。,注:在SQL中,精确数值类型的长度不包括小数点,与以往的 程序语言中的规定有所不同。,12,使用SQL Server 2008 系统数据类型 创建基于系统数据类型的别名数据类型 从在Microsoft .NET Framework公共语言运行时创建的用户定义类型,指定数据类型的方法?,13,需要定义数据类型的情况?,建立表格字段 申请局部变量 申请存储过程中的局部变量 转换数据类型,14,数据类型,二进制型 binary(n), varbinary(n),image,字符型 char(n),varcha

4、r(n),text,日期及时间 datetime, smalldatetime,精确数值型 decimal(p,s),numeric(p,s),近似数值型 float(n),Real,货币型 money, smallmoney,特殊类型 bit,timestamp,15,二进制数,binary,varbinary,存储空间固定的数据类型,指定长度8000,binary的存取速度比varbinary快,当表中数据长度很固定时,应考虑用binary类型。,存储空间可变化的数据类型,8KB时,image数据,16,由单引号括起来,由字母、符号和数字的任意组合组成,字符数据,char(n):列大小固定

5、,varchar(n):列大小不固定,8KB的ASCII字符,text数据,查询速度较快,输入字符长度n时,自动补空字符,17,text和image数据类型,text:最多为231-1个符号,存文字 image:最多为231-1个binary数据,存图形,text字段专用于存储字符(非Unicode)数据,image字段专用于存储二进制数据,每条记录的text字段或image字段均有一个或多个存储页(2KB)存放它的值,两者均是可变长度的数据类型,占较多空间,18,日期及时间型数据,datetime,Smalldatetime,数字 分隔符 数字 分隔符 数字 时间 时间,斜杠、连字符、句号,

6、dym: 15/1996/04,19,p:精度值 s:小数位数 4.5,20,Unicode字符数据 使用Unicode数据类型,列可存储由Unicode标准定义的任何字符,包含由不同字符集定义的所有字符 nvarchar 列大小不固定 4000个字符数,21,特殊类型数据,bit:存放1或0的逻辑类型数据,对于0以外的值,一律以1表示,User-Defined DataType: SQL Server还允许用户依据系统数据类型自定义数据类型,22,关于自定义数据类型,sp_addtype typename, phystype,nulltype,用户自定义数据类型的名称,SQL Server提

7、供的数据类型名称,是否允许用户自定义数据类型为NULL值,把zipcode作为自定义数据类型,长度为6 EXEC sp_addtype zipcode , char(6) 删除自定义的数据类型zipcode EXEC sp_droptypezipcode,23,xml数据类型,xml数据类型允许用户在SQL Server数据库中存储XML文档和片段,24,3.3 数据库中表的操作,在SQL Server中创建数据库可以通过Microsoft SQL Server Management Studio图形化界面和在SQL查询分析器输入T-SQL语言,假定已经建好三个数据库My_DB1、My_DB2

8、和My_DB3,25,3.3.1表的创建,create table database. owner.table_name ( col_name column_properties constraintconstraint | ,constraint ,next_col_name|next_constraint ) ON segment_name,表所在的数据库,表的所有者,列名,列属性,26,CREATE TABLE Library_DB.dbo. borrower _info (id int CONSTRAINT perid_chk NOT NULL PRIMARY KEY, name nv

9、archar(6) NOT NULL, birthday date, gender nchar(1), address nvarchar(20) NOT NULL, telcode char(12) NOT NULL,约束名,例4-1:在数据库Library_DB中创建一张用于借阅人员信息管理表borrower_info表,表中包括:借阅者编号、姓名、出身年月、地址、电话号码、邮编等。,27,zipcode char(6) CONSTRAINT zip_chk CHECK(zipcode LIKE0-90-90-90-90-90-9) NOT NULL,约束名,28,例4-2:在My_DB1数

10、据库中创建一张表,包含:学年度、学号,数学、英语、计算机、化学和物理等成绩,本例是一个多字段内容组合作为主键的例子。创建的新表名字为stud_score:,29,CREATE TABLE My_DB1.dbo. stud_score ( year int NOT NULL, stud_id int NOT NULL, math_score numeric(4,1) CHECK (math_score=0 and math_score=0 and engl_score=100),30,comp_score numeric(4,1)CHECK (comp_score=0 and comp_scor

11、e=0 and chem_score=0 and phys_score=100), CONSTRAINT pk_chk PRIMARY KEY(year,stud_id) ),31,本例中的主键定义为 primary key(year,stud_id) 以year和stud_id的组合作为主键,一个表只能 有一个主键 且值唯一,需要多列 组合作为主键 时要把作为主 键的列用括号 组合起来,32,带有参照性约束的表的创建,例4-3:在数据库Libray_DB中建一个名为book_info的表用于图书馆书籍信息管理,包括的信息有: 图书编号 图书名称 作者、出版社、ISBN、简介、语言 价格、图书

12、分类编号 书架号等,33,CREATE TABLE Library_DB. dbo.book_info (book_id varchar(15) CONSTRAINT bookid_chk NOT NULL PRIMARY KEY, name nvarchar(100) NOT NULL, author nvarchar(100) NOT NULL, publish nvarchar(20) NOT NULL, ISBN nvarchar(40) NOT NULL, Introduction text, language nvarchar(20) NOT NULL, price money N

13、OT NULL, Class_id int CONSTRAINT classid_chk NOT NULL REFERENCES class(class_id), Pressmark int NOT NULL,34,3.3.2 数据库中表的删除,USE library_DB go drop table admin go,删除borrower_info表:,35,3.3.3 数据库中表的修改,(1)ALTER 命令,ALTER TABLE database.owner.table_name WITH NOCHECK ADD column_name datatype column_constrai

14、nts |,table_constraint |,不指定此选项时(默认情况),增加的约束要对现有数据进行检查,若发现违反约束,ALTER TABLE语句将中止运行,ADD允许在现存的表中增加新数据项或者一个约束,36,指定删除数据库中的约束,DROP CONSTRAINTconstraint_name| COLUMN column_name ,.n ,DROP指定删除现存表中的一个字段或约束,指定删除数据库中的列,37,例4-4:向表borrower_info中加入字段名为ethnic的列,以记录该学生的民族。该列的属性为nvarchar(5),缺省值为汉族,ALTER TABLLibrary

15、_DB.dbo.borrow_info ADD ethnic nvarchar(5)NOT NULL DEFAULT(汉族),drop和add子句不一定要同时出现,38,值得注意的是:在删除某列时,基于该列的所有索引和约束必须首先被删除掉。,例如,如果用户运行下面的命令想删除新增加列时ethnic ,将出现错误。 ALTER TABLE Library_DB.dbo.borrow_info DROP COLUMN ethnic,由于默认值约束的存在使删除该列失败。这就需要在删除该列之前,先将其上的约束删除,可以手动将字段dormitory上的默认值删除,然后再运行上述命令,39,(2) INS

16、ERT命令,通过INSERT语句,可以向表中增添新的记录或在记录中插入部分字段的数据 INSERT命令的基本语法如下: INSERT INTO table_name (column1,column2) values(value1,value2),表名,字段列表,相应的值列表,40,例:4-5向Library_DB中的borrower_info 表插入记录,use Library_DB go INSERT borrow_info values(981123,张新, 12/15/1979, 北京市海淀区, 010-64572345, 100080) go INSERT borrow_info values(970890,赵红, 8/5/1979, 上海市浦东区,021-64897232, 201700),41,输入项的顺序和数据类型必须与表中字段的顺序和数据类型相对应 定义表结构时如果定义了缺省值,此时如对相应字段不输入值,则系统会用缺省值插入表中 如果插入的数据不能满足约束性条件,就出错,42,由于参照性约

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

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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