《sqlserver教程第5章.ppt》由会员分享,可在线阅读,更多相关《sqlserver教程第5章.ppt(33页珍藏版)》请在三一办公上搜索。
1、淡 彩 的 黑 板,淡 彩 的 黑 板,第五章 表,Cocktail,学 习 目 标 1、了解SQL Server 2005中的常用数据类型。2、掌握表的创建,表定义的修改方法。3、掌握表数据的插入、删除和修改。4、掌握各类数据完整性约束的实现方法。5、学会使用SQL Server 2005向导工具导入导出数据。6、解决任务引入中提出的问题,通过实训项目巩固知识。表的创建和管理都可以使用Management Studio和Transact-SQL语句两种方法实现,知 识 框 架,任务引入,在上一章中我们学会了建立数据库,那么数据库相当于一个容器,我们要向中间填塞数据,这些数据以什么样的形式存在
2、呢,答案是“表”,那么怎样向表中填塞数据呢?表保存的数据之间有什么关系吗?有关系的话,这些关系如何在数据库中实现才不至于产生乱七八糟的数据或者一些无用的数据?,5.1 表,5.1.1 表的基本概念 表是数据库基本的逻辑存储单位,在关系数据库中都表现为二维表,由行和列组成,如下表所示。在数据库中实际建表之前,要充分考虑到以下几点:(1)数据库中应该有哪些基本表(2)表中有哪些列,列的名字,每列的数据类型和长度,该列能否为空等.(3)表中哪些列 需要约束等(4)表中的哪些列的数据有效范围需要限定,5.1.2 数据类型 SQL Server 2005提供了一系列系统定义的数据类型,它是数据库对象的一
3、个属性,选择正确的数据类型,是筛选进入表中的数据的第一层约束。数据类型主要有下面几部分构成。1、数据类别,例如字符类型,数据类型或二进制类型2、数据值的宽度和长度大小,如允许输入的字符最大值为20个字符3、数值的精度,比如商品价格一般小数部分是2或3位,整数部分几位由具体情况而定。,5.1 表,SQL Server 2005的常用数据类型 见表1 留意下边的【注意】!1.decimal和numeric带固定精度和小数位数的数值数据类型。2.近似数字数据类型用于表示浮点数值数据的大致数值数据类型。3.使用数值日期格式时,可在字符串中使用斜杠(/)、连字符(-)或句点(.)作为分隔符指定月、日和年
4、。4.如果列数据项的大小一致,则使用 binary。,5.1.3 创建表,学生成绩管理系统是针对学生选课和成绩管理设计的,依据第二章的关系模型我们可以得到该数据库至少包含学生表Student、学校的课程表Course、成绩登记表Score和班级信息表Class。创建表的方法主要有两种,使用Management Studio创建和使用Transact-SQL语句创建,下面分别来介绍这两种方法,表 5-1 学生表Student,所有列都添加好后结果如图5-3,2使用T-SQL语句创建表,创建表的基本语法格式如下:CREATE TABLE table_name(Column name col_pro
5、pertiesColumn name col_properties,)说明:table_name:定义表名Column name:列名col_properties 列属性,包括列的数据类型,是否为空,约束等等,【例5.3】用T-SQL语句创建班级表Class。,编辑SQL语句完成建表;,Use CJGLGo-创建班级表Class-Create Table Class(ClaNo smallint IDENTITY(001,1)NOT NULL,-班级编号从“001”开始自动生成 ClaName nvarchar(20)NOT NULL,Department nvarchar(20)NULL,N
6、umber smallint NULL),IDENTITY标识列,【注意】IDENTITY属性的一般语法格式如下IDENTITY(seed,increment)参数seed 装载到表中的第一个行使用的值。increment 与前一个加载的行的标识值相加的增量值。必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值(1,1)。,【思考练习】以下给出选课表Score的逻辑模型如下表5-4所示。读者试着自己给出相应的T-SQL脚本语句。,管理表,ALTER TABLE table-修改的表名称 ALTER COLUMN column_name-修改已有的列名 new_data_ty
7、pe(precision,scale)-新的数据类型|ADD-添加新列-添加列的定义|DROP-删除列 COLUMN column,.n-要删除列的列名,5.2表数据操作,1.向表中插入数据 a.使用INSERT INTO语句插入数据 INSERT INTO(column_list)/表名(列1,列2,列3,)VALUES(DEFAULT|NULL|expression,.n)b.使用INSERTSELECT语句输入数据【例5.9】c.使用SELECT INTO子句插入数据到临时表,SELECT column 1,column 2,INTO new tableFROM table nameWH
8、ERE,2.修改表中数据,修改数据的T-SQL语句的一般语法格式如下:UPDATE table_name SET column_name=expression|DEFAULT|NULL-修改原来的值为新值、默认值或空值FROM,.n WHERE-选择部分满足条件的记录【例5.11】【例5.12】,3.删除表中数据,DELETE语句的简单语法格式如下:DELETE table WHERE【例5.13】使用TRUNCATE语句删除数据 TRUNCATE TABLE Name【比较】TRUNCATE与DELETE 语句比较,5.3 表数据完整性的实现,约束主要有五种类型,包括主键约束、唯一性约束、检
9、查约束、默认约束和外键约束(参照性约束)。5.3.2 主键约束(PRIMARY KEY)【例5.17】ALTER TABLE Score ADD CONSTRAINT PK_Score PRIMARY KEY(StuNo,CouNo),5.3 表数据完整性的实现,CREATE TABLE Score(StuNo nvarchar(10)NOT NULL,CouNo nvarchar(10)NOT NULL,Grade smallint NULL,CONSTRAINT PK_Score PRIMARY KEY(StuNo,CouNo)【思考】如果在定义列后直接写上“PRIMARY KEY”(如5
10、.3.1节综合实例中)和上面两种有何区别。,5.3.3 唯一性约束(UNIQUE),【例5.18】ALTER TABLE Course ADD CONSTRAINT UN_CouName UNIQUE(CouName);删除该约束的语句 ALTER TABLE Course DROP CONSTRAINT UN_CouName;【思考】添加了唯一性约束的列,该列允许取空值吗?如果可以,那么可以取多少个空值呢?,5.3.4 检查约束(CHECK),【例5.20】ALTER TABLE Student ADD CONSTRAINT CK_Sex CHECK(Sex=男OR Sex=女);【注意】C
11、HECK关键字后的表达式一定要跟上小括号,否则要出错。ALTER TABLE Course ADD CONSTRAINT CK_Credit CHECK(Credit=0 AND Credit=10)自学【例5.21】,5.3.5 默认约束(DEFAULT),DEFAULT(expression|null)FOR column_name【例5.23】ALTER TABLE Student ADD CONSTRAINT DE_Sex DEFAULT(男)FOR Sex【例5.24】ALTER TABLE Score ADD CONSTRAINT DE_Grade DEFAULT(NULL)FOR
12、 Grade,5.3.6外键约束(FOREIGN KEY),在弹出的窗口中设置主键和外键关系,重点是设置主键表和外键表,5.3.6外键约束(FOREIGN KEY),创建外键的一般语法格式如下:ALTER TABLE table1_nameADD CONSTRAINT constraint_name FOREIGN KEY(col 1_name)REFERENCES table2_name(col2_name)参数:table1_name 外键表名 constraint_name 约束名称 col 1_name 外键列名 table2_name 主键表名 col2_name 主键列名,5.3.
13、6外键约束(FOREIGN KEY),【例5.26】ALTER TABLE Score ADD CONSTRAINT FK_Score_Course FOREIGN KEY(CouNo)REFERENCES Course(CouNo)【例5.27】-添加职工表的外键关系ALTER TABLE Employe ADD CONSTRAINT FK_Employe_Employe FOREIGN KEY(ManagerNo)REFERENCES Employe(EmpNo);,5.4 本章小结 本章主要介绍表的相关操作,读者要重点掌握表的创建,表的修改,表数据的操作包括插入、删除和更新,表数据完整性的实现包括五种约束的实现,主键约束、唯一性约束、CHECK约束、默认约束和外键约束。,感 谢 您 的 关 注!,