《表与表数据操作》PPT课件.ppt_第1页
《表与表数据操作》PPT课件.ppt_第2页
《表与表数据操作》PPT课件.ppt_第3页
《表与表数据操作》PPT课件.ppt_第4页
《表与表数据操作》PPT课件.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

3 1表结构和数据类型3 2表的完整性约束3 3创建和修改表3 4表的数据操作 第三章表与表数据操作 表3 1 学生 表 3 1表结构与数据类型 1 表和表结构 记录 字段 表有关的几个概念 1 表结构 组成表的各列的名称及数据类型 2 记录 表中的行数据 它们是表的 值 3 字段 表中的列 单列值为数据项 4 空值 空值 NULL 通常表示未知数据 5 关键字 表中能唯一标识记录的某一字段或字段组合 例3 1 学生表的表结构学生 学号 姓名 性别 出生时间 专业 总学分 备注 2 数据类型设计表结构 主要是设计字段 为字段指定数据类型 字段的数据类型决定了数据的取值 范围和存储格式 字段的数据类型取自系统数据类型和用户定义的数据类型 系统数据类型 int numeric moneychar varchar datetime 例3 2 AintA的值 50 128Bnumeric 5 2 B的最大值 999 99Cchar 6 C的值 acbC的长度 6Dvarchar 6 D的值 abcD的长度 3C B 表3 3XSB的表结构 3 表结构以学生管理系统的三个表 学生表 XSB 课程表 KCB 和成绩表 CJB 为例介绍如何设计表的结构 表3 4KCB的表结构 表3 5CJB的表结构 数据库的完整性 是指数据的正确性 有效性和相容性 完整性是为了防止数据库中存在不符合语义的数据 防止错误信息的输入和输出 数据库完整性约束条件 加在数据库数据之上的语义约束条件 完整性检查 在DBMS中检查数据是否满足完整性条件的机制 3 2表的完整性约束 1 数据完整性分类 1 实体完整性 行完整性 要求表中有一个主键 主键值不能为空且能唯一地标识记录实现方法 UNIQUE约束 PRIMARYKEY约束或IDENTITY属性 2 域完整性 列完整性 指给定列输入的有效性 如 定义列的类型 格式 取值范围实现方法 设定数据类型 CHECK约束 DEFALUT NOTNULL等 学号 char 6 课程号 char 3 成绩 int学号 课程号不为空学分的取值范围为0 100 3 参照完整性 表完整性 外键 如果一个表中的一个字段或若干个字段的组合值是另一个表的主键 则称该字段或字段组合值为该表的外键 2 实现完整性约束 1 创建表时定义完整性约束 2 修改表时定义完整性约束 3 定义规则和默认值 再将规则和默认值与字段捆绑 实现完整性约束 3 SQL的完整性约束PRIMARYKEY主键约束FOREIGNKEY外键约束CHECK检查条件约束NOTNULL NULL空值约束DEFAULT默认值约束UNIQUE唯一约束 3 3创建表和修改表 1 在SSMS中创建表操作步骤 1 启动SSMS 在 对象资源管理器 中 选择 数据库 demo 展开 数据库 选择 表 对象 创建表 快捷菜单新建表 使用表 选择表 XSB 修改表结构 快捷菜单修改查看并编辑记录 快捷菜单打开 2 使用T SQL命令创建表语法格式 CREATETABLE 例3 5 使用T SQL语句创建学生情况表XSB 该表的结构见表3 3 CREATETABLEXSB 学号char 6 NOTNULLPRIMARYKEY 姓名char 8 NOTNULL 性别bitDEFAULT 1 出生时间datetime 专业char 12 总学分intCHECK 总学分 0AND总学分 160 备注varchar 500 GO 例3 6 使用T SQL语句创建课程表KCB 该表的结构见表3 4 CREATETABLEKCB 课程号char 3 NOTNULLPRIMARYKEY 课程名char 16 NOTNULL 开课学期tinyintCHECK 开课学期 0AND开课学期 8 学时tinyint 学分tinyintNOTNULL GO 例3 7 使用T SQL语句创建成绩表CJB 该表的结构见表3 5 并建立XSB与CJB的参照关系 CREATETABLECJB 学号char 6 NOTNULL 课程号char 3 NOTNULL 成绩intCHECK 成绩 0AND成绩 100 PRIMARYKEY 学号 课程号 FOREIGNKEY 学号 REFERENCESXSB 学号 GO 例3 8 使用T SQL语句创建一个带计算列的表 表中包含课程的课程号 总成绩和学习该课程的人数以及课程的平均成绩 CREATETABLEPJCJ 课程号char 3 NOTNULLPRIMARYKEY 总成绩realNOTNULL 人数intNOTNULL 平均成绩AS 总成绩 人数 PERSISTED GO 数据表的参照关系 3 使用T SQL命令修改表语法格式 ALTERTABLE表名 ADD 完整性约束 ALTERCOLUMN DROP DROPCOLUMN 在表中添加新列或删除列 例3 9 在表XSB中增加奖学金等级列ALTERTABLEXSBADD奖学金等级tinyintGO 例3 10 在表XSB中删除奖学金等级列ALTERTABLEXSBDROPCOLUMN奖学金等级GO 在表中修改列属性 例3 11 修改表XSB中已有列的属性 将名为 姓名 的列长度由原来的8改为10 将名为 出生时间 的列的数据类型由原来的datetime改为smalldatetime ALTERTABLEXSBALTERCOLUMN姓名char 10 GOALTERTABLEXSBALTERCOLUMN出生时间smalldatetime 在表中增加完整性约束 例3 12 在表XSB中对性别列增加约束 性别取值只有 男 或 女 ALTERTABLEXSBADDCHECK 性别 1OR性别 0 GO 例3 13 对KCB增加主键约束ALTERTABLEXSBADDPRIMARYKEY 课程号 GO 例3 14 增加KCB与CJB相关联的外键约束ALTERTABLECJBADDFOREIGNKEY 课程号 REFERENCESKCB 课程号 例3 15 删除对CJB表的课程号字段定义的外键约束 ALTERTABLECJBDROPCONSTRAINTFK CJB 课程号 656C112C 约束名 由用户定义或系统生成 可在设计表窗口查找 数据表的参照关系 4 使用T SQL命令删除表删除表的同时也删除了与表有关的索引 视触发器 语法格式 DROPTABLE 例3 16 删除CJB表DROPTABLECJB 注意 删除相互关联的表时 先删除参照表 带外键的表 3 4表的数据操作 1 在SSMS中操作表数据操作步骤 1 启动SSMS 在 对象资源管理器 中 选择 数据库 demo 展开 数据库 选择 表 对象 选择表 XSB 查看并编辑记录 快捷菜单打开 2 使用T SQL命令插入记录语句格式1 插入单行INSERTINTO VALUES 语句格式2 插入子查询结果 多行 INSERTINTO SELECT子查询 例3 17 向表XSB中插入如下的一行数据 081101 王林 1 1990 02 10 计算机 50 NULL 假设XSB表没有该行数据 INSERTINTOXSBVALUES 081101 王林 1 1990 02 10 计算机 50 NULL 插入整行GO 例3 18 假设上例中专业的默认值为 计算机 备注默认值为NULL 插入记录INSERTINTOXSB 学号 姓名 性别 出生时间 总学分 VALUES 081101 王林 1 1990 02 10 50 插入部分值下列命令效果相同 INSERTINTOXSBVALUES 081101 王林 1 1990 02 10 DEFAULT 50 NULL 处理默认值GO 例3 19 向两个相关表中插入数据 XSB与CJB 参照表 首先向XSB 主表 中插入记录INSERTINTOXSBVALUES 081101 王林 1 1990 02 10 计算机 50 NULL 然后向CJB 参照表 中插入记录INSERTINTOCJBVALUES 081101 101 80 例3 20 从表XSB中生成计算机专业的学生表 包含学号 姓名 专业 要求新表中的数据为结果集中前5行 用CREATE语句建立表XSB1 CREATETABLEXSB1 numchar 6 NOTNULLPRIMARYKEY namechar 8 NOTNULL speialitychar 10 用INSERT语句向XSB1表中插入数据 INSERTTOP 5 INTOXSB1SELECT学号 姓名 专业FROMXSBWHERE专业 计算机 3 使用T SQL命令修改记录语句格式 UPDATESET WHERE 例3 21 将XSB表中学号为 081101 的学生的 备注 值改为 三好生 UPDATEXSBSET备注 三好生 WHERE学号 081101 GO 例3 22 将XSB表中的所有学生的 总学分 都增加10 并查询结果UPDATEXSBSET总学分 总学分 10GOSELECT FROMXSB 修改全部记录 注意 如果没有WHERE条件 则修改表中全部记录 例3 23 将 姓名 为 罗林琳 的同学的 专业 改为 软件工程 备注 改为 提前修完学分 学号 改为 081261 UPDATEXSBSET专业 软件工程 备注 提前修完学分 学号 081261 WHERE姓名 罗林琳 GOSELECT FROMXSB 修改多列值GO 例3 24 将王敏的总学分改为同 罗林琳 的总学分相同 UPDATEXSBSET学分 SELECT学分FROMXSBWHERE姓名 罗林琳 WHERE姓名 王敏 GOSELECT

温馨提示

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

评论

0/150

提交评论