数据库应用基础第三章数据表的建立

上传人:xiao****1972 文档编号:74533049 上传时间:2019-01-28 格式:PPT 页数:52 大小:411.31KB
返回 下载 相关 举报
数据库应用基础第三章数据表的建立_第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文档中,以供实验课所需),5,3.1表的概念 3.2SQL Server

2、的数据类型 3.3数据库中表的操作,6,3.1表的概念,数据表是数据库中最重要的对象之一.表是存储数据的场所。 创建表的实质就是定义表结构及约束等属性。 定义表结构包括:确定表的名字、所包含的列名、列的数据类型、长度、是否可为空值、默认值、列的标识属性等内容。,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(

4、n), varbinary(n),image,字符型 char(n),varchar(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,由单

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

6、atetime,数字 分隔符 数字 分隔符 数字 时间 时间,斜杠、连字符、句号,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, p

7、hystype,nulltype,用户自定义数据类型的名称,SQL Server提供的数据类型名称,是否允许用户自定义数据类型为NULL值,把zipcode作为自定义数据类型,长度为6 EXEC sp_addtype zipcode , char(6) 删除自定义的数据类型zipcode EXEC sp_droptype zipcode,23,xml数据类型,xml数据类型允许用户在SQL Server数据库中存储XML文档和片段,24,3.3 数据库中表的操作,在SQL Server中创建数据库可以通过Microsoft SQL Server Management Studio图形化界面和在

8、SQL查询分析器输入T-SQL语言,假定已经建好三个数据库My_DB1、My_DB2和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 CONSTRAI

9、NT perid_chk NOT NULL PRIMARY KEY, name nvarchar(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

10、-90-90-90-9) NOT NULL,约束名,28,例4-2:在My_DB1数据库中创建一张表,包含:学年度、学号,数学、英语、计算机、化学和物理等成绩,本例是一个多字段内容组合作为主键的例子。创建的新表名字为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 num

11、eric(4,1) CHECK (comp_score=0 and comp_score=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的表用于图书馆书籍信息管

12、理,包括的信息有: 图书编号 图书名称 作者、出版社、ISBN、简介、语言 价格、图书分类编号 书架号等,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, la

13、nguage nvarchar(20) NOT NULL, price money NOT 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 NOCHE

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

15、。该列的属性为nvarchar(5),缺省值为汉族,ALTER TABLLibrary_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,由于默认值约束的存在使删除该列失败。这就需要在删除该列之前,先将其上的约束删除,可

16、以手动将字段dormitory上的默认值删除,然后再运行上述命令,39,(2) INSERT命令,通过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

展开阅读全文
相关资源
相关搜索

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

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