资源预览内容
第1页 / 共107页
第2页 / 共107页
第3页 / 共107页
第4页 / 共107页
第5页 / 共107页
第6页 / 共107页
第7页 / 共107页
第8页 / 共107页
第9页 / 共107页
第10页 / 共107页
亲,该文档总共107页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章数据表的管理与使用 1 本章主要内容 5 1数据类型 5 2创建表 5 3修改表 5 4删除表 5 5数据管理 5 6数据完整性 2 5数据表的管理与使用 SQLServer的表是最重要的数据库对象 用户数据分别存放在各个表中 对数据的增加 删除 修改和查询等都是通过表的操作来实现的 3 本章主要内容 5 1数据类型 5 2创建表 5 3修改表 5 4删除表 5 5数据管理 5 6数据完整性 4 5 1数据类型 在创建表时 必须为表中的每列指派一种数据类型 数据类型确定了该列数据的取值范围 它决定了数据在计算机中的存储格式 存储长度等属性 SQLServer数据类型分为系统数据类型和用户自定义数据类型 SQLServer2008中常用的系统数据类型如表5 1所示 5 5 1数据类型 表5 1SQLServer2008中常用的系统数据类型 6 1 数字数据 1 整数型数据 Bigint 263 263 1 精度19位 长度8个字节 9223372036854775808到9223372036854775807Int 231 231 1 精度10位 长度4个字节 2147483648到2147483647Smallint 215 215 1 精度5位 长度2个字节 32768到32767Tinyint 0 255 精度3位 长度1个字节 0到255 该类别的数据仅包含数字 包括正数 负数及分数等 7 1 数字数据 2 精确数值型 用于存储带有小数点且小数点后位数确定的实数 包括decimal和Numeric两类 功能上两者完全等价 声明格式 numeric p s decimal p s 其中p为精度 s为小数位数 精度 指数值中所存储的十进制数据的总位数 小数位数 指数值数据中小数点右边可以有的数字位数的最大值 如7654 321的精度为7 小数位数为3 注意 声明该类型的数据时 其小数位数必须小于精度 8 1 数字数据 3 浮点型 是指不能精确表示数据的精度的数据类型 使用此类型来存储数据时 可能会损失部分精度 它可以用于处理取值范围非常大且对精度要求不是十分高的数值 real 3 40E 38 3 40E 38 精度7位 长度4个字节float 1 79E 308 1 79E 308 精度15位 长度8个字节 9 1 数字数据 4 货币型 专门用于处理货币的数据类型 money和smallmoney 它们用十进制数表示货币值 相当于4位小数的DECIMAL值 money 精度19位 小数位数为4Smallmoney 精度为10 小数位数为4当向表中插入货币型数据时 可在数据前面加上货币符号 并且数据中间不能有逗号 如果货币值为负数 需要在 后面加上负号 如 777 90 620 120 80 10 1 数字数据 5 位型 Bit类型用于存储整数 取值在0 1或NULL 常用于逻辑数据的存取 11 2 字符数据 字符数据用于存储汉字 英文字母 数字 标点和各种符号 在输入时 需要用单引号括起来 char n 和nchar n 定长的字符数据类型 n表示字符型数据的长度 varchar n 和nvarchar n 变长的字符数据类型 n表示串中字符的最大长度 用于存放大量的字符数据的文本型text和ntext 现在分别用varchar MAX 和nvarchar MAX 来替换使用 12 3 日期时间数据 Datetime 表示日期范围1753 1 1 9999 12 31的日期和时间数据 精度为3ms 数据长度为8个字节Smalldatetime 表示日期范围1900 1 1 2079 6 6的日期和时间数据 精度为1分钟 数据长度为4个字节 13 4 二进制数据 二进制数据类型表示的是位数据流 一般用于存储二进制的大对象 如声音 图片 多媒体等 Binary n 存储固定长度的二进制数据varbinary n 存储可变长度的二进制数据Image图像数据类型用于存放图片 照片等 实际存储的是可变长度的二进制数据 建议用varbinary MAX 替换 14 本章主要内容 5 1数据类型 5 2创建表 5 3修改表 5 4删除表 5 5数据管理 5 6数据完整性 15 5 2创建表 在SQLServer中建立数据库后 就可以在该数据库中创建表了 为了确定新表的结构 用户需要决定以下内容 表中的列数 每列的列名 数据类型及数据的长度 列是否可以接受空值 是否使用约束 例如 对各列的取值范围进行限制 以及确定主键和外键等 创建表可以通过SSMS窗口界面方式或T SQL命令方式来实现 16 5 2 1使用窗口方式创建表 下面使用窗口方式在 student 数据库中创建 学生 表 学生表的结构定义如表5 2所示 表5 2学生表结构 其中学号为定长字符串 12位 姓名为变长字符串 最长8位 可存储最多4个汉字 性别定长字符串 2为 可存储一个汉字 男 或 女 操作步骤如下 17 5 2 1使用窗口方式创建表 步骤一 1 打开SSMS 在 对象资源管理器 窗口中依次展开 数据库 student 右击 表 节点 在弹出的快捷菜单中选择 新建表 命令就能打开 表设计器 如图5 1所示 图5 1表的右键菜单窗口 18 5 2 1使用窗口方式创建表 步骤二 2 设计表结构 在 表设计器 界面中可进行表结构的输入 如图5 2所示 图5 2表设计器录入窗口 19 5 2 1使用窗口方式创建表 步骤三 3 设置主键 在 学号 列上右键 在弹出的菜单中选择 设置主键 命令即可将 学号 字段设置为主键 表示该列的值是唯一不重复的 如图5 4所示 图5 3设计学生表结构窗口 图5 4设置主键窗口 设置成功后 学号 的前面会有一个钥匙样的图标 如图5 5所示 图5 5主键设置成功窗口 20 5 2 1使用窗口方式创建表 4 设置表名 点击工具栏的 保存 按钮 出现输入表名对话框 如图5 6所示 在其中录入 学生 确定 后即可看到 student 数据库中已经出现刚建立的 学生 表 如图5 7所示 步骤四 图5 6输入表名称窗口图 5 7创建表成功窗口 21 5 2 2使用命令方式创建表 可以用T SQL中的CreateTable语句来创建表 基本语法格式如下 CREATETABLEtable name 字段1数据类型列的特征 字段2数据类型列的特征 其中 列的特征包括 是否为空 NULL 是否为标识列 自动编号 是否有默认值 是否为主键等 创建表的语法有很多选项 这里仅列出最常用的一些 后续会逐渐补充 22 本章主要内容 5 1数据类型 5 2创建表 5 3修改表 5 4删除表 5 5数据管理 5 6数据完整性 23 5 3修改表 表创建后 可以根据需要进行修改 如更改表名 增加列 删除列 修改已有列的属性 列名 数据类型 是否为空值 调整列的顺序 可以通过窗口方式或命令方式修改表 注意 表名更改后 与此相关的某些对象 如视图 以及通过表名与表相关的存储过程将无效 因此一般不建议更改表名 24 5 3 1使用窗口方式修改表 修改 student 数据库下 学生 表的步骤如下 步骤一 1 打开SSMS 在 对象资源管理器 窗口中展开 数据库 节点 选择 student 数据库 找到要修改的 学生 表 右击 学生 表 在弹出的快捷菜单中选择 设计 命令 如图5 10所示 图5 10表的右键快捷菜单窗口 25 5 3 1使用窗口方式修改表 步骤二 2 在打开的 表设计器 窗口 与创建表时相同 可以对表进行修改 例如插入列 删除列 修改列名 主键 数据类型等 如图5 11所示 图5 11表设计器修改窗口 26 5 3 1使用窗口方式修改表 步骤三 3 修改完成后点击 保存 按钮以使所做的修改生效 27 5 3 2使用命令方式修改表 修改表使用altertable语句来实现 其语法格式如下 ALTERTABLEtable name ALTERCOLUMNcol name 修改已有列的属性 new data type ADD n 增加新列 DROPCOLUMNcol name n 删除列 28 例5 5 在学生表中增加 家庭地址 列 数据类型为varchar 30 不允许为空 在查询编辑器中输入并执行以下语句即可 usestudentgoaltertable学生add家庭地址varchar 30 notnullgo 29 例5 6 修改学生表中的 家庭地址 列 将数据类型改为varchar 50 允许为空 代码如下 usestudentgoaltertable学生altercolumn家庭地址varchar 50 nullgo 30 例5 7 删除学生表中的 家庭地址 列 代码如下 usestudentgoaltertable学生dropcolumn家庭地址go 31 本章主要内容 5 1数据类型 5 2创建表 5 3修改表 5 4删除表 5 5数据管理 5 6数据完整性 32 5 4 1使用窗口方式删除表 找到要删除的表 右键 在弹出的快捷菜单中选择 删除 出现 删除对象 对话框 单击 确定 即可 如图5 12所示 图5 12删除表窗口 33 5 4 2使用命令方式删除表 删除表使用droptable语句 语法格式 DROPTABLEtable name其中table name是要被删除的表名 如要删除 student 数据库中的 学生 表 在查询编辑器窗口中输入以下内容即可 usestudentgodroptable学生Go 34 本章主要内容 5 1数据类型 5 2创建表 5 3修改表 5 4删除表 5 5数据管理 5 6数据完整性 35 5 5数据管理 表是存储数据的地方 在表创建完成后 就可以对表进行数据管理操作 包括 向表中添加数据 修改数据和删除数据 可以使用窗口或命令方式管理数据 图5 13编辑表数据窗口 使用窗口方式进行数据管理较为简单 在SSMS中 找到要管理的 学生 表 右键 弹出快捷菜单 如图5 13所示 36 5 5数据管理 选择 编辑前200行 出现数据管理窗口 如图5 14所示 在其中可以进行数据记录的浏览 添加 修改和删除操作 还可以通过表右键快捷菜单中的 选择前1000行 来查看表中的数据 37 5 5 1插入数据 插入数据的语法格式如下 INSERT INTO table name 表名 column list 列名的列表 用逗号分隔 VALUES expression list 值的列表 用逗号分隔 其中 1 INTO 可选关键字 可省略 2 列名 可选 如果省略 则按照表结构依次添加所有列 3 多个列或多个值之间用逗号分隔开 4 值的数目 顺序和类型要与列相对应 38 5 5 1插入数据 例5 8 向 系部 表添加一条记录 代码如下 usestudentgoinsert系部 代码 名称 values 15 计算机系 go还可以用省略列名的写法 代码如下 usestudentgoinsert系部values 15 计算机系 go 39 5 5 1插入数据 例5 9 向 专业 表添加一条记录 代码如下 usestudentgoinsert专业 代码 名称 系部代码 values 1501 软件工程 15 go 40 5 5 1插入数据 例5 10 向 班级 表添加一条记录 代码如下 usestudentgoinsert班级 代码 名称 专业代码 values 120415011 软件工程1班 1501 go 41 5 5 1插入数据 例5 11 向 学生 表添加3条记录 代码如下 usestudentgoinsert学生 学号 姓名 性别 出生日期 班级代码 values 120415011001 王浩然 女 1995 7 12 120415011 insert学生 学号 姓名 性别 出生日期 班级代码 values 120415011002 赵腾高 男 1994 11 5 120415011 insert学生 学
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号