计算机操作中怎样将平均分echarts y轴设置整数为整数

在sheet2工作表中按xibie汇总出各科成绩的平均分,各科成绩为语文,数学,英语计算机 写出操作步骤_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
在sheet2工作表中按xibie汇总出各科成绩的平均分,各科成绩为语文,数学,英语计算机 写出操作步骤
Excel中的!
我有更好的答案
4,”汇总方式“设置成,”选下汇总项“设置成:语文、计算机:平均值、数学、英语、选择“数据”菜单下“分类汇总”菜单3、在“分类汇总”对话框中 ”分类字段“设置成:系别1、将数据表按“系别”字段排序2、确定后
采纳率:54%
为您推荐:
其他类似问题
工作表的相关知识
换一换
回答问题,赢新手礼包计算机Excel表格中一排数字要求和 和平均值的公式是什么_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
计算机Excel表格中一排数字要求和 和平均值的公式是什么
比如数据在a1-d1中在a2输入=sum(a1:d1)就是求和a3输入=average(a1:d1)就是平均数数据范围自己改
采纳率:27%
求和公式sum平均值公式average
=SUM()求和=AVERAGE()平均值.()里写你要求和的单元格.比如.SUN(A1:A10)就是求A1到A10的和....
为您推荐:
其他类似问题
excel表格的相关知识
换一换
回答问题,赢新手礼包以下试题来自:
请在&答题&菜单中选择相应的命令,并按照题目要求完成下面的操作。
注意:以下的文件必须保存在考生文件夹下。
伍勇是某大学大一计算机班的班主任,平时习惯使用Excel来管理学生的成绩。现在,第一学年期末考试刚刚结束,伍老师将班里学生的成绩均录入到文件名为&学生成绩单.xlsx&的Excel工作簿文档中。
请你根据下列要求帮助伍老师对该成绩单进行整理和分析:
利用“条件格式”功能进行下列设置:将数学、英语或计算机基础3科中高于90分(包含90分)的成绩所在的单元格填充为绿色,将所有不及格的成绩数值设筒为红色,利用sum和average函数计算每一一个学生的总分及平均分。 本小题主要考核Excel中使用条件格式及计算公式的操作。(1)&条件格式&功能的设置①选择D2:F19单元格......
为您推荐的考试题库
你可能感兴趣的试题
1.问答题 本小题主要考核演示文稿中主题的应用。应用主题后的演示文稿,某些对象的现实位置可能会错乱,稍作调整即可。
在“设计”选...... 2.问答题 本小题主要考核页面设置的操作。
①在“页面布局”选项卡中单击“页面设置”组中的对话框启动器,打开“页面设置”对话框,...... 3.问答题 本小题主要考核幻灯片中超链接的设置。(1)插入文本链接首先选中第1张幻灯片中的第一个方框,然后在&插入&r...... 4A.网卡 B.集线器C.服务器 D.内置或外置调制解调器(Modem)5A. B.C. D.www.
热门相关试卷
最新相关试卷当前位置: >>
数据库应用操作
第一章 1.1数据库基础知识数据库的基本概念1.1.1 数据库(Database,DB)DB 是存储在计算机存储介质中的、结构化的、可共享的数据集合。 DB 中的数据按一定的数据模型组织、描述和存储,冗余最小、数据独立 性和易扩展性较高,可为各种合法用户所共享。 1.1.2 数据库管理系统(Database Management System,DBMS) 实际应用中的 DB 可能是相当庞大的,对 DB 的操作也可能是相当 复杂的,要有效地管理和操作 DB,就需要一个“中介人” ,这个“中介人” 就是 DBMS。在 DB 中不仅要存储数据,还要存储数据的结构描述信息, 这些信息详细地记录了表的名称、列的名称、列的类型、列的宽度和小数 位,以及数据的所属权限等相关信息。DBMS 的作用就是负责管理 DB 复 杂的结构描述信息,而 DB 的使用者――用户,不必了解 DB 内部复杂的 结构就可以访问 DB。DBMS 的基本功能表现在 5 个方面: (1) 数据定义 使用数据定义语言(Data Definition Language, DDL)对数据库中的数据对象进行定义。 (2) 数据操作 使用数据操作语言(Data Definition Language,DML)对数据进行查询、插入、删除和修改等操作。 (3) 数据库的运行管理 统一管理、控制数据库的建立、运用和维护,保证数据的安全性、完整性。1 (4) 数据库维护初始数据的输入、转换,数据库的转储、恢复及重新组织、性能监视和分析等。 (5) 数据通讯 网络环境中的数据通讯等。1.1.3 数据库系统(Database System,DBS)DBS 就是使用数据库技术的计算机系统。一般由 DB、硬件、软件和 用户四部分构成。DB(结构化的相关数据的结合) 硬件(CPU、内外存储器、I/O 设备) 软件(DBMS、OS、计算机语言、应用开发支撑软件) 用户(数据库管理员(DBA) 、最终用户、应用程序设计员)数据库系统1.1.5 关系数据库在关系数据库中,数据的基本结构是表(Table) ,表中的数据按行、 列组织排列。每个表都有一个唯一的表名。一个数据库由一个或多个数据 表组成,各个数据表之间可以存在某种关系。学生基本情况表学号 03 姓名 张晓辉 何梅 陈东升 性别 男 女 男 出生日期
班级 金融 国贸 化材 家庭住址 复兴门 312 号 中海雅园 3 号 樱桃园 24 号 联系电话 35? 关系:一个关系在逻辑上对应一个按行、列排列的表(Table) 。 ? 属性:表中的一列称为一个属性,或叫字段(Field) ,表示所描述的对 象的一个具体特征。例如学生基本情况表中的“姓名”是学生这个实2 体的一种属性。 ? 域:属性的取值范围。例如,性别属性的取值范围是“男”或“女” 。 ? 元组:表中的一行称为元组,或叫记录(Record) 。例如,每个记录表 示一个学生的信息。 ? 主键:能够唯一地区分不同记录的一个或多个字段。学生基本情况学号 03 姓名 张晓辉 何梅 陈东升 性别 男 女 男 出生日期
班级 金融 国贸 化材 家庭住址 复兴门 312 号 中海雅园 3 号 樱桃园 24 号 联系电话 35在这个关系中, “学号”为主键。学生成绩学号 03 姓名 张晓辉 何梅 陈东升 性别 男 女 男 科目 VB 数据库 C 语言程序设计 操作系统 成绩 89 76 82 班级 金融 国贸 化材在这个关系中,关键字由(学号、科目)构成,但象这样由多个字段 组成的关键字,也只能有一个字段为“主键” 。 设置主键的目的是确保数据的完整性。 主键必须: ①不能为空 (Null) ; ②必须是唯一的。 ? 外键:在关系数据库中,表与表之间总是存在着某种联系,这种联系 通过一个关键字来实现,该关键字称为“外键” 。 ① 外键将两个表联系起来。3 ② 外键参照一个表的主键而言,即某一字段既可以是甲表的主键,也可 以是乙表的外键。例如,在前面的两个表中, “学号”字段既是“学生 基本情况”的主键,又是“学生成绩”的主键,对于这两个表来说, “学 号”互为外键。 ③ 外键以主键的值检查它所在字段的值的合法性。 ④ 外键既可以参照一个表中的主键,也可以参照另一表中的主键。 ⑤ 外键确保所在列中的值是一个有效的主键值,保证了参照完整性。1.1.6 关系数据表必须具备的条件? 在一个数据表中,一个字段(列)的数据类型必须相同。 ? 任何一个字段(列)都必须是不能再分割的最小基本单位。 ? 在一个数据表中,不能有相同名称的字段(列)和内容完全相同的记 录(行) 。 ? 行和列按任意次序排列都不影响数据的完整性。1.1.7 关系型数据库的三种基本操作① 选择运算(Selection) 在一个表中选择出若干满足条件的记录组成一个新的数据表。 格式:Select&数据表名&Where&条件表达式& 例如:select R where 性别=‘男’and 职称=‘教授’ Select S where 职称=‘副教授’or 工资&=14504 ② 投影运算(Projection) 在一个数据表中选择若干字段组成一个新的数据表。 格式:Project&数据表名&on&字段名& 例如:Project R on 姓名 职称 工资 ③ 连接运算(Join) 在两个表中选取字段间满足一定条件的记录组成一个新的数据表。 格式:Join&数据表名 1&and&数据表名 2&Where&连接条件表达式& 例如:join R1 and R2 where 年龄&=45 and 职称=’教授’1.1.8 关系数据库的基本特点1.整体描述 数据库中的文件相互联系,在整体上服从一定的结构形式。 2.数据独立性 ? 物理独立性 外存设备、存储结构、存取方法等物理结构的改变,不影响逻辑结构。逻辑结构不受物理结构更改的影响,就不需要改变应 用程序。 ? 逻辑独立性 数据库定义的修改、数据类型的变更、逻辑联系的改变等逻辑结构的改变,不影响原有程序对数据库的存取。 3.数据共享性高、冗余度可控 ? 当前所有用户可以存取数据库中的数据;5 ? 数据易于扩充以满足新用户的要求; ? 用户可以用灵活的方式应用数据,并能够以多种程序设计语言存取处 理数据库中的数据。 ? 数据共享是数据库系统的基本目的。程序中绝对不允许存在数据冗余 是不可能的, 但是它必须是可以由设计者控制的, 称为 “可控冗余度” 。 4.数据的安全性(Security) 主要是指防止对数据库的不合法使用, 避免数据的泄密、 更改或破坏。 5.数据的完整性 包括数据的正确性、有效性和相容性。1.1.9 Visual Basic 访问数据库类型和途径1. VB 访问数据库的类型 ? JET 数据库 数据库有 Jet 引擎生成和操作,灵活性强,访问速度快,例如 Microsoft Access。 ? ISAM 数据库 等。 ? ODBC 数据库 开放数据库互连(ODBC) ,例如 Microsoft SQL 索引顺序访问方法 (ISAM) 数据库, 例如 Dbase、 FoxproServer、Oracle 等。 2. VB 访问数据库的主要途径:6 ? 使用数据库控件 Data control 访问数据库。 ? 使用 VB 提供的数据库对象变量编程访问数据库。 ? 通过 ODBC 接口访问 ODBC API 函数。1.21.2.1 Access 2000 的对象Access 2000 数据库Access 2000 包括表、查询、报表、窗体、宏、模块、数据访问页等 7 类对象。这些对象都存放在同一个.mdb 文件中。 1. 表(Table) 表是数据库的核心与基础,数据库中的全部信息都存放在 表中。Access 的报表、查询、窗体等对象都需要从表中获取数据信息。 表以行(Record) 、列(Field)格式组织数据。 2. 查询(Query) 查询操作有三方面的功能:一是以不同的方法查看、 更改、分析、操纵数据库中的数据;二是为其他查询、窗体和报表提 供数据;三是为一个数据访问提供数据源。 3. 报表(Report) 用于输出数据库中的数据。报表中的数据来源于表或 查询。在报表中可以控制每个数据的显示方式,或者对数据进行排序 和分组。 4. 窗体(Form) 窗体是用户交互访问数据库的界面,通过窗体可以向表 中输入数据,查看或更新表中的数据,或者根据用户输入的信息执行 相应的操作。7 5. 宏 一个或多个操作的集合,每个操作可以实现特定的功能。例如,通 过宏可以打开表、更改记录、插入记录、删除记录、建立查询、生成 报表和打印数据等。 6. 模块 模块是将 Visual Basic Fox Applications 声明和过程作为一个单元 进行保存的集合,其专门用来存放 VBA 程序代码。模块有类模块和标 准模块两种基本类型。一个模块一般包含多个过程(Procedure)或函 数(Function) 。 7. 数据访问页(Data Access Page) 一种特殊的 Web 页,可以在提供 Internet 或 Intranet 上浏览的数据。这些数据保存在 Microsoft Access 数据库或 Microsoft SQL Server 数据库中。1.2.2 Access 2000 开发环境1. 启动和退出 Access 2000 2. Access 2000 启动对话框“启动”对话框上 3 个选项的作用 空 Access 数据库 创建一个空数据库, 然后利 用向导和工具添加数据库 所需要的各种对象。 Access 数据库向导、 数据页 和项目 利用向导建立数据库, 或建 立数据页和项目。选择该 项,单击“确定”按钮,将 打开“新建”对话框。 打开已有文件 打开现有的数据库 文件。3. Access 主窗口(标题栏、菜单栏、工具栏、状态栏) 4. Access 2000 数据库窗口(窗口菜单、数据库组件选项卡、组件创建方 法和已有对象列表)8 5.退出 Access 2000 系统 方法 1:单击标题栏右端的“关闭”按钮。 方法 2:使用 Alt+F4 组合键。 方法 3:使用“文件/退出”菜单命令。 方法 4:双击标题栏左端的“控制菜单”图标。 方法 5:右击任务栏上的程序按钮,选择快捷菜单中的“关闭”命令。1.3 建立 Access 数据库和表1.3.1 数据库设计的基本步骤和方法用户需求分析阶段。 概念结构设计阶段(对用户需求进行综合、归纳和抽象,形成独立的9 数据库管理系统的概念模型,即设计 E-R 图) 。 ①对数据库进行总体设计 逻辑结构设计 (把概念结构设计阶段所得到的 E-R 图转换为关系数据 模式) 。 物理设计阶段(设计数据库在座结构和物理实现方法) 。 ②确定数据库中需要的表(每个表只包含关于一个实体的信息;每个表中不能包含重复的记录; 表中每个字段的所有值均是相同的数据类型;每个表中不能有相同 的字段,不同字段的数据类型可以相同) 。 ③建立表结构(确定每个表需要的字段、字段类型和主键。要求:每个字段直接与实体相关;尽 量不包含推导或计算的数据;每个字段保存的信息都是不可再分的 数据项;确定主键,确保其唯一性,且值不为 Null) 。 ④确定表之间的关系(表间关系类型主要有:1:1、1:n、m:n) 。 ⑤优化设计(检查和纠正数据库设计中的不足和错误,尽可以提高开发效率,降低开发成本) 。 ⑥输入数据并创建其他数据库对象(向表中输入数据;创建所需要的查询、窗体、报表、宏和模 块等数据库对象) 。1.3.2 ACCESS 数据库的创建与打开1.创建 Access 数据库 (1)使用“数据库向导”创建数据库 方法 1:使用启动对话框上的“Access 数据库向导、数据页和项目”选项 创建数据库 [实例 1-3-1]使用“数据库向导”中的“分类总账”创建一个名为“我的账 目”的数据库,保存在 D 根目录下。 方法 2:非启动 Access 2000 时使用“数据库向导” 单击 “文件/新建” 命令, 或单击工具栏上的 “新建” 按钮, 或按 Ctrl+N 组合键10 (2)创建空数据库 方法 1:利用启动对话框创建空数据库。 [实例 1-3-2]启动 Access 2000 时创建一个 zygl.mdb 的空数据库, 保存在 D 盘根目录下。 方法 2:在非启动状态创建空数据库 [实例 1-3-3]在非启动状态创建空数据库 zygl.db,保存在 D 盘根目录下。2. 打开 Access 数据库 方法 1:通过启动对话框打开已有的数据库。 方法 2:使用“文件/打开”菜单命令打开已有的数据库。 方法 3:使用“打开”按钮打开已有的数据库。 方法 4:从“文件”菜单底部打开已有的数据库。 方法 5:使用“开始/文档”菜单项打开数据库。 1.3.3 创建数据库表 方法 1:使用“设计视图”创建表[实例 1-3-4]使用 “设计视图” D 盘的 zygl.mdb 数据库添加一个名为 为 “职 工工资发放明细表”的数据表。字段名称 类型 字段长度 索引11 职工号 姓名 职称 技能工资 岗位工资 浮动工资 其他工资 扣款 实发工资文本 文本 文本 数字 同上 同上 同上 同上 同上5 8 8 整形 同上 同上 同上 单精度 同上有(无重复)方法 2:使用“表向导”创建数据表[实例 1-3-5]使用“表向导”为 D:\zygl.mdb 创建一个“职工工资发放明细 表” 。方法 3:使用“数据表视图”创建表[实例 1-3-6]使用“数据表视图”为 D:\zygl.db 创建“职工基本情况” 。字段名称 职工号 姓名 职称 住址 办公室电话 家庭电话 手机 类型 文本 文本 文本 文本 文本 文本 文本 字段长度 5 8 8 50 8 8 11 有(无重复) 索引12 1.3.4 修改表1. 删除表 在数据库窗口中选中需要删除的表,按 Del 键(或“编辑/删除”命令,或快捷菜单中的“删除”命令) 。 2. 重命名表 在数据库窗口中选中要重命名的表,选择“编辑/重命名”命令(或按 F2 键,或快捷菜单中的“重命名”命令) ,输入新的表 名称。 3. 修改字段 在数据库窗口中选定要修改字段的表,单击“设计”按钮,用鼠标单击或按 Tab 键,将光标移到需要修改的字段上再键入新的 名称。按 F6 键,光标移至字段属性区,可以对字段属性修改。 4. 插入字段 在数据库窗口中选定需要插入字段的表, “设计” 单击 按钮,再单击指定行的行选择器,选择“插入/行”命令(或者“插入行” 工具按钮,在选定行上方插入一个空行,然后定义新的字段。 5. 复制字段 在表设计视图中,单击要复制的字段的行选择器选取该字段,选择“编辑/复制命令” (或 “复制”工具按钮,或按 Ctrl+C 键) ,然后将光标移到要插入行的位置,选择“编辑/粘贴”命令(或 者单击工具栏上的“粘贴”按钮,或者按 Ctrl+V 键) 。 6. 删除字段 在表设计视图中,单击行选定器选定要删除的字段(按住Shift 键向上或向下拖动鼠标,可以选取连续多行,按住 Ctrl 键,单 击可以选取不连续的多行,单击“编辑/全选”命令,或者按 Ctrl+A 键,或者单击“字段名称”列左边的“全选”按钮,可以选取所有字13 段) ,然后选择“编辑/删除行”命令(或者快捷菜单中的“删除行” 命令,或者按 Del 键,或者单击“删除行”工具按钮) 。 7. 移动字段 单击行选定器,按下鼠键向新的位置拖动行选定器。 在表设计视图中,单击行选定器选定要修改类型的字8. 重设数据类型段,然后进行修改。 9. 重设关键字 使用工具栏上的“主键”按钮,或者“编辑/主键”命令。 单击行选定器选中需要改变属性的字段,按 F610. 修改表的字段属性键,光标移到属性区域,然后进行修改。1.3.5 设置和修改表间关系设置表间关系要注意两点:①只有定义了主键的表,才能与其他表建 立关系;②定义表间关系之前,要将用来定义关系的所有表关闭。 [实例 1-3-7]建立 zygl 数据库中 “职工工资发放明细表”与“职工基本情 况”之间的关系,它们的相关字段都是“职工号” 。 ? 打开 zygl 数据库。 ? 单击工具栏上中“关系”按钮(或“工具/关系”命令或右击数据库窗 口空白处,选择快捷菜单中的“关系”命令) ,打开“显示表”对话框。 ? 选定“职工工资发放明细表” ,单击“添加”按钮或者直接双击该的表, 将它添加到“关系”窗口下。再以同样的方法将“职工基本情况”表14 添加到“关系”窗口内,然后关闭“显示表”对话框。 ? 将“职工工资发放明细表”中的“职工号”字段拖到“职工基本情况” 表的同名字段上,弹出“编辑关系”对话框,选择建立关系的字段, 单击“创建”按钮, ? 选定“表/查询”和“相关表/查询”中的“职工号” ,单击“创建”按 钮。注:若要删除已有的关系,则单击要删除的关系连线,然后按 Del 键或者单击“编辑/删除”命令,或者右击连线,单击快捷菜单中的“删除”命 令。1.3.6 表中的数据输入在数据库窗口中双击要输入数据的表,即可向表中添加数据。1.4 数据库设计示例[实例 1-4-1]创建一个名为“商品信息”的数据库,字段名称如下表所示, 然后创建一个名为“商品”的表并输入部分商品数据。其中商品代码为主 键。字段名称 商品名称 商品代码 商品价格 数据类型 文本 文本 数字 有(无重复) 索引15 ? 启动 Access 2000,选择启动对话框上的“空数据库”选项,单击“确 定”按,弹出“文件新建数据库”对话框。 ? 在“文件名”框中输入数据库名称“商品信息” ,在“保存位置”框中 选择保存位置,单击“确定”按钮,弹出“商品信息:数据库”窗口。 ? 单击“新建”按钮,弹出“新建表”对话框,双击“设计视图” ,弹出 表设计窗口,在“字段名称”框中输入“商品名称” ,按 Tab 键,选择 “文本”类型。 ? 按 Tab 键,使光标移至下一行,输入“商品代码” ,选择“文本”类型。 单击工具栏上的“主键”按钮,将商品代码设置为主键。 ? 按 Tab 键,使光标移到下一行,输入“商品价格” ,选择“数值”类型。 ? 单击“保存”按钮,弹出“另存为”对话框,输入表名称“商品” ,单 击“确定”按钮,关闭表设计窗口返回数据库窗口。 ? 双击表名称“商品” ,打开数据输入窗口,向表中添加数据。 [实例 1-4-2]添加“供应商”表,字段名称如下表。字段名称 商品代码 供应商 商品网址 数据类型 文本 文本 文本 索引 有(无重复)? 在数据库窗口中单击“新建”按钮,弹出“新建表”对话框,双击“设16 计视图” ,弹出表设计窗口,在“字段名称”框中输入“商品名称” , 按 Tab 键,选择“文本”类型。 ? 按 Tab 键,使光标移到下一行,输入“供应商” ,选择“文本”类型。 ? 按 Tab 键,使光标移到下一行,输入“商品网址” ,选择“文本”类型。 ? 单击“保存”按钮,弹出“另存为”对话框,输入表名称“供应商” , 单击“确定”按钮,关闭表设计窗口返回数据库窗口。 ? 双击表名称“供应商” ,打开数据输入窗口,向表中添加数据。 [实例 1-4-3]对“商品”表和“供应商”表建立关联。 ? 关闭所有已打开的表,进行数据库窗口环境。 ? 单击工具栏上的“关系”按钮,打开“显示表”对话框。 ? 选定“商品”表,单击“添加”按钮,将该表添加到“关系”窗口中, 用同样的方法将“供应商”表添加到“关系”窗口中。 ? 关闭“显示表”对话框。 ? 将“商品”表中的“商品代码”字段拖动到“供应商”表的“商品代 码”字段上。 ? 单击“编辑关系”对话框上的“创建”按钮。17 第二章SQL Server 基础SQL Server 是一个高灵活性、 高性能、 多用户性的服务器端的数据源, 在 VB 中用它作为后端数据库。2.1 SQL Server 企业管理器企业管理器(Enterprise Manager)是 SQL Server 2000 提供的一个 数据库操作环境和管理工具。 利用企业管理器, 可以完成管理 SQL Server 服务器,建立与管理数据库,建立与管理表、视图、存储过程等数据库对 象,用户定义数据类型,备份数据库和事务日志,恢复数据库,复制数据 库等操作。2.1.1 企业管理器的启动与组成1.启动企业管理器:选择“开始/程序/Microsoft SQL Server/企业管理器” 命令。 2. 企业管理器的构成:菜单栏、工具栏、树状区、任务板。2.1.2 SQL 查询分析器(Query Analyzer)18 打开查询分析器窗口: 方法 1:使用“开始/程序/ Microsoft SQL Server/查询分析器”命令 方法 2:在企业管理器中选择“工具/SQL 查询分析器”命令。2.22.2.1 SQL 语言概述SQL 语言基础“SQL”是 RDBMS 中的一种标准语言,称为“结构化查询语言” (Structured Query Language)。 SQL 的主要功能 ① 数据定义(DDL):建立数据库和表的结构、视图和索引。 ② 数据操作(DML):数据更新(插入、修改和删除)。 ③ 数据查询(DQL):查询数据。 ④ 数据控制(DCL):包括对基本表和视图的授权,完整性规则的描述, 事务控制语句等。2.2.2 SQL 数据类型编码类型 数据类型 Bigint integer (或 int) Smallint Tinyint Float 解释 占 8 个字节,存储的数据范围从-263 到 263-1 的整型 数据 占 4 个字节,存储的数据范围从-231 到 231-1 的整型 数据 占 2 个字节,存储的数据范围从-215 到 215-1 的整型 数据 占 1 个字节,存储的数据范围从 0 到 255 的整型数 据 占 8 个字节,存储的数据范围从 -1.79E+308 到 1.79E+308 的浮点精度数字 说明数值型19 Real字符串型Numeric (p, s) Decimal (p, s) Bit 占 1 位,存储 0 或 1 二进制数 Char(n) 定长字符串,n 表示字符串的最大长度,其取值范 围为 1~8000,无论用户输入多少个字符,系统都将 占用 n 个字节的空间 Varchar 变长字符串,n 表示字符串的最大长度,其取值范 (n) 围为 1~8000,其占用的字节数就是字符串的长度。 Text 存储的数据超过 8000 个字节字符数据时, 使用该类 型。 Nchar(n) 定长 Unicode 数据,n 表示字符串的最大长度,其 取值范围为 1~4000 Nvarchar 变长 Unicode 数据,n 表示字符串的最大长度,其 (n) 取值范围为 1~4000 Ntext 与 Text 数据类型相似,采用 Unicode 标准字符集 Image占 4 个 字 节 , 存 储 的 数 据 范 围 从 -3.40E+38 到 3.40E+38 的浮点精度数字 这两种数据类型相同, 它们提供小数所需要的空间。 其中 p 表示可供存储的值的总位数,默认 18 位,s 表示小数点后面的位数,默认设置为 0货币型Money Smallmon ey Datetime Smalldatet ime Binary (n)Char 、 Varchar 和 Text 为普通 编码方式的 字符数据类 型,Nchar、 Varchar 和 Ntext 为 Uncode 编码 方式的字符 数据类型; Binary 、 大容量、 可变长的二进制字符数据, 用于存储 Word、 Varbinary Excel 文档以及 bmp、 等图形文件, gif 最大容量 2GB 和 Image 为 二进制编码 字符数据类 型 用于存储-9220 亿~9220 亿之间的数据。 存储容量比 money 小。 存储 1753 年 1 月 1 日~9999 年 12 月 31 日的日期和 时间数据。 存储 1900 年 1 月 1 日~2079 年 6 月 6 日之间的日期 和时间数据。 定长二进制字符数据,n 的取值范围 1~8000 变长二进制字符数据,n 的取值范围 1~8000 大容量、可变长二进制字符数据,用于存储 word、 Excel、.bmp 和.gif 等文件,最大容量 2GB 日期、时间型,占 8 个字节,起止日期和时间:1753 年 1 月 1 日零时~9999 年 12 月 31 日 23 时 59 分 59 秒 占用 4 个字节, 起止日期和时间: 1900 年 1 月 1 日~20799 年6月6日 精确到 4 位小数,数值前必须添加货币符号($或¥),20日期型Varbinary(n) ImageDatetime 日期型 Smalldatetime货币型Money 输入负数时,在货币数据的后面加负号 Smallmoney2.3 SQL Server 数据库2.3.1 SQL Server 2000 数据库的特点 1. 数据对象等。 包括图表、表、函数、视图、存储过程、触发器、出版物2. 事务和日志对一个单元的操作称为“事务”。事务日志记录每一个事务的开始、对数据的修改等信息。3. 数据库文件和文件组一个 SQL Server 数据库文件至少包括一个数据文件和一个事务日志 文件。 数据文件存放数据库的数据和各种对象。数据文件包括: ? 主数据文件:是数据库的起点,一个数据库只有一个主数据文件。 ? 次数据文件:可选数据文件,用于存储不在主数据文件中的全部数据 和对象。一个数据文件可以有多个次数据文件,也可以没有次数据文 件。 日志文件用于存储用于恢复数据库的全部事务日志信息。一个数据 库至少有一个日志文件。 文件组是数据文件的集合。21 4. SQL Server 2000 数据库文件名SQL Server 2000 数据库有两个文件名: ? 逻辑文件名: SQL 命令访问数据库。 供 例如, 有一个学生管理数据库, 其逻辑文件就是“学生管理”。各个数据库的逻辑文件名不能相同。 ? 物理文件名:文件实际存储在磁盘上的文件名称,包含完整的磁盘目 录路径。例如,学生管理数据库存放在 D 盘根目录中,它的物理文件 名就是“D:\学生管理.mdf”,它的日志文件就是“D:\学生管理.ldf”。2.3.2 使用 SQL Server 企业管理器建立数据库[实例2-3-1]使用企业管理器建立数据库: 数据库文件名:学生管理数据库。 数据文件逻辑名:Stu_data,物理文件名Stu.mdf,存放在D:\test 目录下(若无此子目录,则先建立该子目录)。 文件初始大小:5MB。 增长方式为自动增长,每次增加1MB。 日志文件的逻辑名:Stu_lon,物理文件名Stu.ldf,存放在D:\test 目录下。 日志文件的初始值:2MB. 日志文件的增长方式为自动增长,每次增加10%。 操作步骤: ? 执行“程序/Microsoft SQL Server /企业管理器”,打开“SQL Server Enterprise Manager”窗口。22 ? 在“树”框中展开已安装的SQL Server服务器,右击“数据库”项, 选择“新建数据库”命令,打开“数据库属性”对话框。 ? 选择“常规”标签,在“名称”框中输入数据库名称“学生管理数据 库”。 ? 单击“数据文件”标签,将“文件名”框中的原有文件名修改成 “Stu_data”,将“位置”框中的路径改为“D:\test\Stu.mdf”(注意: 如果D盘上原来没有test文件夹则应当事先创建),在“初始大小”框 中输入初始值“5”。 ? 选中“文件增长”域中的“按兆字节”单选项,默认1MB。 ? 单击 “事务日志” 标签, “文件名” 在 框中输入逻辑文件名 “Stu_lon” , “位置”框的路径改为“D:\test\Stu.ldf”,“初始大小”改为“2”。 ? 在“文件增长”域中的“按百分比”选择框中输入增长速度“10”。 ? 单击“确定”按钮。2.3.2 使用企业管理器修改数据库? 在企业管理器窗口的“数据库”窗格中右击要修改的数据库图标,选 择“属性”命令,在数据库“属性”窗口的“常规”页面上可以看到 数据库的名称、状态、所有者、创建日期、大小、可用空间、备份和 维护等信息。 ? 在“数据文件”和“事务日志”两个选项卡页面上可以修改数据库文 件和事务文件的名称、存储位置、初始容量大小等。 ? 在“文件组”页面中可以添加或删除文件组(若文件组中有文件则需23 先将文件移出后才能删除)。 ? 在“选项”页面中可以设置数据库的相关属性,其中: 限制访问 若选中该复选框,其下的两个单选项变成可用状态,若选择“db_owner、dbcreator、sysadmin 的成员”单选项,则只有数据库所有 者、数据库创建者和系统管理员才有权使用该数据库;若选择“单用户” 项,则只可供一个用户使用该数据库;若选中“只读”项,则数据库只能 访问不能修改。 故障还原 该列表框中有“大容量日志的”、“简单”、“完全”三个选项,表示不同程度的故障修复状态。 设置 该域中的各选项含义如下表:ANSI NULL 默认设置 递归触发器 自动更新统计信息 残缺页检测 自动关闭 自动收缩 允许数据表中的字段值为空 允许触发器递归调用(最多 32 层) 允许使用 Select into 等命令向表中大量插入数据 检查不完整的数据页 无用户使用数据库时,自动关闭数据库 当库文件和日志文件存储空间超过其大小 25%时,系统自动缩减 文件 优化查询时,根据需要自动创建统计信息 标识符必须用双绰号括起来自动创建统计信息 使用被引用的标识符兼容性 设置当前数据库与其他数据库的兼容性。2.3.3 使用企业管理器删除数据库24 单击选中想要删除的数据库,按键盘上的 Del 键,或者右击 想要删除的数据库,选择快捷菜单中的“删除”命令。2.3.4 使用 SQL 语句创建、管理数据库 1.使用 SQL 语句创建数据库语法格式: CREATE DATABASE database name [ON {[PRIMARY]([NAME=logical_file_name,] FILENAME='os_file_name' [, SIZE=size] [, MAXSIZE=|max_size|UNLIMITIED|] [, FILEGROWTH=growth_increment]) }[, …n] ] [LOG ON {([NAME=logical_file_name,] FILENAME='os_file_name' [, SIZE=size] [, MAXSIZE=|max_size|UNLIMITED|] [, FILEGROWTH=growth_increment]) }[, …n] ] [实例 2-3-2]使用 SQL 命令创建一个包含一个数据文件和一个事务日志文 件的数据库。库文件名和数据文件逻辑名均为 Book,物理文件名为 Book.mdf,存储在 D 盘根目录中,该数据库主数据文件是 Book,初 始大小 8MB,最大尺寸 80MB,以 10%的速度增长。事务日志文件 逻辑名为 Book_log,物理文件名为 Book _log.ldf,初始大小 1MB, 最大尺寸 20MB,以 20%的速度增长。 CREATE DATABASE Book ON PRIMARY (NAME= Book,25 FILENAME='D:\Book.mdf', SIZE=8MB, MAXSIZE=80MB, FILEGROWTH=10%) LOG ON (NAME= Book_log, FILENAME='D:\Book_log.ldf', SIZE=1MB, MAXSIZE=20MB, FILEGROWTH=20%)2. 使用 SQL 语句修改数据库语法格式: ALTER DATABASE databasename {ADD FILE&filespec&[,…n][TO FILEGROUP filegroup_name] |ADD LOG FILE&filespes&[,…n] |REMOVE FILE logical_file_name[WITH DELETE] |ADD FILEGROUP filegroup_name |REMOVE FILEGROUP filegroup_name |MODIFY FILE&filespce& |MODIFY NAME=new_dbname |MODIFY FILEGROUP filegroup_name{filegroup_property |NAME=new_filegroup_name}} [实例 2-3-3]扩大“学生管理数据库”的数据文件,添加一个次要数据文 件“学生管理数据库_data2,其大小为 10MB,最大容量 20MB,增长速 度 20%。CREATE DATABASE 学生管理数据库26 ON PRIMARY (NAME= 学生管理数据库, FILENAME='D:\学生管理数据库.mdf', SIZE=5MB, MAXSIZE=100MB, FILEGROWTH=15%) LOG ON (NAME= 学生管理数据库_log, FILENAME='D:\学生管理数据库_log.ldf', SIZE=2MB, MAXSIZE=50MB, FILEGROWTH=0)打开 SQL 查询分析器窗口,在“查询”区中键入如下代码: alter database 学生管理数据库 add file (name=学生管理数据库_data2, filename='d:\学生管理数据库 2.Mdf’, size=10mb, maxsize=20mb, filegrowth=20%) 按 F5 键,或者单击工具栏上的“执行查询”按钮,或者选择“查询/ 执行”菜单命令,运行代码。3. 删除数据库的 SQL 语句――DROP DATABASE语法格式:DROP DATABASE name[,…n] 打开 SQL 查询分析器窗口,在“查询”区中键入如下代码: Drop database book1, mydb 按 F5 键,或者单击工具栏上的“执行查询”按钮,或者选择“查询/ 执行”菜单命令,运行代码。2.4 创建和使用表在 SQL Server 2000 中,一个数据库可以包含 200 万个数据表,一个27 表可以定义 1024 个字段。2.4.1 创建表 1. 使用 SQL 语句创建表语法格式:CREATE TABLE table name (Column name column properties [[DEFAULT data_value][NULL|NOT NULL]][, …n] ) [,{PRIMARY KEY | UNIQUE | FOREIGN KEY}(column_name[ , …n] )] ;[实例 2-4-1]使用 SQL 命令,在“学生管理数据库”下面三个数据表。“学生”表结构字段名及说明 学号 姓名 性别 年龄 班级 专业 字符型 字符型 字符型 整形 字符型 字符型 10 10 数据类型 7 8 2 宽度 主键 非空 说明“课程”表结构字段名及说明 课程号 课程名 学时数 数据类型 字符型 字符型 整形 宽度 10 20 说明 主键 非空“选课”表结构字段名及说明 学号 课程号 成绩 数据类型 字符型 字符型 整形 宽度 7 10 说明 主键,引用 Student 的外键 主键,引用 Course 的外键“学生”表use 学生管理数据库 Create table 学生 ( 学号 char(7) not null, 姓名 char(8) not null,28 性别 char(2), 年龄 int, 班级 char(10), 专业 char(10) PRIMARY KEY(学号) )“课程”表use 学生管理数据库 Create table 课程 ( 课程号 char (10) not null, 课程名 char(20) not null, 学时数 int, PRIMARY KEY(课程号) )“选课”表use 学生管理数据库 create table 选课 ( 学号 char(7) not null, 课程号 char(10) not null, 成绩 int, PRIMARY KEY(学号,课程号), )2. 使用企业管理器创建表[实例2-4-2]用企业管理器为学生管理数据库建立[实例2-4-1]的三张表。 创建“学生”表: ? 打开“企业管理器”窗口,展开 “学生管理数据库 选项,选择“新建表”命令,打开创建表结构窗口。 ? 输入列名 “学号” 按Tab键, , 光标移到 “数据类型” 栏中, “char” 选择 , 按Tab键,光标移到“长度”栏中,输入“10”,按Tab键,光标移到 “允许空” 栏, 单击 “√”将其取消,设置为非空, 单击工具栏上的 “设 置主键”按钮或者右击鼠标,选择“设置主键”命令,将“学号”设29”,右击“表” 置为主键。 ? 依照第二步方法,依次创建完所有字段后,单击工具栏上的“保存” 按钮,或者右击鼠标,选择“保存”命令,弹出“选择名称”对话框, 输入表名称“学生”,单击“确定”按钮。 ? 关闭表结构窗口,回到“企业管理器”窗口,在左侧的“树”窗格的 “学生管理数据库”中单击“表”,在右侧的“表”窗格中选中“学 生”表,选择“操作/打开表/返回所有行”命令,或者右击“学生”, 选择“打开表/返回所有行”命令,打开表数据输入窗口,向表中输入 数据,输入完毕后,关闭窗口,自动保存数据。 其他两张表的创建方法与上述步骤相同。2.4.2 修改表结构 1. 在“企业管理器”中修改表结构? 在“企业管理器”窗口中,展开表所在的数据库项,然后单击“表”。 ? 在“表”窗格中右击指定的表名称,选择“设计表”命令,弹出表格 字段设计界面,然后根据需要进行修改,完成保存所作的修改。2. 使用 SQL 语句修改表结构语法格式:ALTER TABLE table name {[ALTER COLUMN column name {new_data_type[{precision[,scale]}]} |ADD {[&column_definition&]}[,…n] |DROP COLUMN column}[,..n]30 }[实例2-4-3]使用SQL语句在“学生”表中增加一个“家庭住址”字段, 数据类型为字符型,宽度48,允许空。 ? 打开“查询分析器”,在数据库列表框中选择“学生管理数据库”。 ? 在查询窗口中输入下列SQL语句: ALTER TABLE 学生 ADD 家庭住址 varchar(48) null ? 单击工具栏上的“执行查询”按钮,或者“查询/执行”菜单命令,或 者按 F5 键运行上述 SQL 语句。3. 删除数据表方法1:在 “企业管理器”中删除表 在 “企业管理器”中,展开表所在的数据库,单击“表”,然后在 “表”窗格中右击要删除的数据,执行“删除”命令,弹出“去除对象” 对话框,单击“全部去除”按钮。 方法2:使用SQL语句删除表 在 “查询分析器” 窗口中按下列格式输入删除表的SQL语句, 并执行: USE database_name DROP TABLE table_name 例如:删除学生管理数据库中的“学生”表。 use 学生管理数据库31 drop table 学生2.4.3 操纵数据 1.插入数据 方法 1:在 “企业管理器”添加数据[实例2-4-4] 在企业管理器中为“学生”表添加以下三条记录。2310109 沈红兵 2320108 何雪娟 2310111 狄晓雷 男 22 计算机 软件工程 女 21 经济 市场营销 女 22 计算机 计算机应用操作步骤: ? 在企业管理器中找到“学生管理数据库”。 ? 单击“表”,在“表”窗格中右击“学生”,选择“打开表/返回所有 行”命令,打开记录输入窗口。 ? 依次输入三条记录,关闭界面,数据被自动保存。 方法2:使用SQL语句添加数据。语法格式: INSERT [INTO] table_name [(column_list)] {VALUES (DEFAULT|NULL|expression [,…n])|DEFAULT VALUES}[实例2-4-5] 在使用SQL语句为“学生”、“课程”和“选课”三个表添 加记录。32 插入一条数据记录操作: (1) SQL命令格式:INSERT INTO [教学管理数据库].[dbo].[学生] ([学号] ,[姓名] ,[性别] ,[年龄] ,[班级] ,[专业]) VALUES (&学号, char(7),& ,&姓名, nchar(10),& ,&性别, char(2),& ,&年龄, int,& ,&班级, nchar(10),& ,&专业, nchar(10),&)(2) 操作示例: use 学生管理数据库 insert into 学生(学号, 姓名, 性别, 年龄, 班级, 专业) values(';, '沈红兵', '男', 22, '计算机', '软件工程')33 学生表 use 学生管理数据库 insert into 学生(学号,姓名,性别,年龄,班级,专业) values(';,'沈红兵','男',22,'计算机','软件工程') insert into 学生(学号,姓名,性别,年龄,班级,专业) values(';,'何雪娟','女',21,'经济','市场营销') insert into 学生(学号,姓名,性别,年龄,班级,专业) values(';,'狄晓雷','女',22,'计算机','计算机应用') insert into 学生(学号,姓名,性别,年龄,班级,专业) values(';,'刘军','男',20,'计算机','计算机应用') insert into 学生(学号,姓名,性别,年龄,班级,专业) values(';,'徐丽','女',20,'计算机','计算机应用') 课程表: use 学生管理数据库 insert into 课程(课程号,课程名,学时数) values('1','数据结构',54) insert into 课程(课程号,课程名,学时数) values('2','操作系统',51) insert into 课程(课程号,课程名,学时数) values('3','软件工程',33) insert into 课程(课程号,课程名,学时数) values('4','接口与通讯',51) 选课表: use 学生管理数据库 insert into 选课(学号,课程号,成绩) values(';,'1',84) insert into 选课(学号,课程号,成绩) values(';,'4',76) insert into 选课(学号,课程号,成绩)34 values(';,'2',91) insert into 选课(学号,课程号,成绩) values(';,'2',81) insert into 选课(学号,课程号,成绩) values(';,'3',69) insert into 选课(学号,课程号,成绩) values(';,'1',73) insert into 选课(学号,课程号,成绩) values(';,'4',80) insert into 选课(学号,课程号,成绩) values(';,'1',74) insert into 选课(学号,课程号,成绩) values(';,'3',77) 2.修改数据 语法格式: UPDATE table_name SET{column_name={expression|DEFAULT|NULL} |@Variable=expression |@Variable=column= expression}[,…n] [FROM{&table_source&}[,…n]] [where&search_condition&] 说明:以@开头的标识符代表一个局部变量或参数(见教材P41) [实例2-4-6] 在将“学生”表中的所有学生的年龄增加1岁。打开查询分析器,选择“学生管理数据库”,输入如下SQL语句,并执行:UPDATE 学生 set 年龄=年龄+13. 删除数据删除表中的数据使用SQL语句是最便捷的方法。 语法格式: DELETE [FROM] table_name35 [FROM {&table_source&}[,…n]] [Where&search_condition&] [实例2-4-7] 删除Student表中姓名为“何敏”的学生。 在“查询分析器”窗口中,输入删除数据的SQL语句,并执行:USE 学生管理数据库 DELETE 学生 WHERE 姓名='刘军'2.5 简单查询2.5.1 SQL 查询的基本结构SELECT [ALL | DISTINCT]&select_list | *& [Into [new_table_name]] FROM {table_name|view_name}[,{table_name|view_name}[,…]] [WHERE clause] [HAVING clause] [GROUP BY clause] [ORDER BY clause] [FOR BROWSE]2.5.2 SELECT 子句 语法格式: SELECT [All|DISTINCT] select_list FROM {table_name|view_name} 1. 选择列[实例 2-5-1]查询“学生”表、 “课程”和“选课”表的全部信息。 use 学生管理数据库36 select * from 学生 select * from 课程 select * from 选课 [实例 2-5-2]在“学生” 表中查找计算机班的学生的学号、姓名、 班级信息。 use 学生管理数据库 select 学号,姓名,班级 from 学生 where 班级='计算机'2. 改变列标题语法格式:新字段名=原字段名 或者: 原字段名 AS 新字段名[实例 2-5-3]将“选课”表中的“成绩”字段名改为“考试成绩” 。 Use 学生管理数据库 select 学号,课程号,考试成绩=成绩 from 选课 或者: use 学生管理数据库 select 学号,课程号,成绩 as 考试成绩 from 选课3. 带表达式的 SELECT 子名SELECT 子句中包含+、-、*、/等运算的表达式。 [实例 2-5-4]将“选课”表中的所有学生的成绩提高 5%,并添加一个“提 高后的成绩”字段,用于存放提高后的成绩。 Use 学生管理数据库37 select 学号,课程号,成绩,成绩*1.05 AS 提高后的成绩 from 选课4. ALL 与 DISTINCT查询时使用 ALL 关键字,则允许查询结果中有重复记录出现,使用 DISTINCT 关键字,则不允许出现重复记录。 [实例 2-5-5]检索“选课”表中的全部学生学号和已经选过课的学生学号。 Use 学生管理数据库 select all 学号 from 选课 select distinct 学号 from 选课2.5.3 用 WHERE 子句过滤记录用 WHERE 子句过滤记录就是按指定的条件检索表中的信息。语法格式: SELECT select_list FROM table_list WHERE search_condition 1. 比较运算符的使用(=、&、&、&=、&=、&&)[实例 2-5-6]检索选修 3 号课程的学生学号和成绩。 Use 学生管理数据库 select 学号,成绩 from 选课 WHERE 课程号=3 [实例 2-5-7]检索未选修 3 号课程的学生学号、课程号和成绩。38 Use 学生管理数据库 select 学号,课程号,成绩 from 选课 WHERE 课程号&&3 [实例 2-5-8]检索成绩在 90 分(含)以上的学生学号、课程号和成绩。 Use 学生管理数据库 select 学号,课程号,成绩 from 选课 WHERE 成绩&=902. 逻辑运算符 在简单查询过程中, 允许使用 AND、 OR、 NOT 三个逻辑运算符。 它们的作用是在 WHERE 子句中合并若干个搜索条件,生成一个较 为复杂的查询。[实例 2-5-9]在选课表中检索课程号为 2,并且成绩 80 分(含)以上的学 号、课程号和成绩。Use 学生管理数据库 select 学号,课程号,成绩 from 选课 WHERE 课程号=2 AND 成绩&=80[实例 2-5-10] 在选课表中检索课程号为 2,或者成绩 80 分(含)以上的 学号、课程号和成绩。Use 学生管理数据库 select 学号,课程号,成绩 from 选课 WHERE 课程号=2 OR 成绩&=903. BETWEEN…AND 语句 该语句的作用是在指定的范围内进行搜索。39 [实例 2-5-11]在“选课”表中检索成绩 85~100 之间的学生的学号、课程 号和成绩。 use 学生管理数据库 select 学号,课程号,成绩 from 选课 where 成绩 between 85 and 100 下面语句的查询结果与上面语句的查询结果有何区别? use 学生管理数据库 select 学号,课程号,成绩 from 选课 where 成绩 not between 85 and 100 4. IN(NOT IN) 在由 IN 指定的字段中或者在由 NOT IN 指定的字段中进行搜索。 [实例 2-5-12]在“学生”表中检索经济班的学生信息。 use 学生管理数据库 select * from 学生 where 班级 in('经济') 等价于: use 学生管理数据库 select * from 学生 where 班级='经济' [实例 2-5-13]在“学生”表中检索非经济班的学生信息。 use 学生管理数据库 select * from 学生 where 班级 not in('经济') 等价于:40 use 学生管理数据库 select * from 学生 where 班级&&'经济'5. 字符串模糊匹配 LIKE 关键字(%、_、[ ]、[^])LIKE 关键字用于检索与特定字符相匹配的记录行。 LIKE '××%' 返回以××开头的任意字符串。 LIKE '%××' 返回以××结束的任意字符串。 LIKE '%××%' 返回包含了××的任意字符串。LIKE '-××' 返回以××结束的任意字符串。 LIKE '[MN]%' 返回以 M 或者 N 开始的任意字符串。 LIKE 'M[^C]%' 返回以 M 开头且第 2 个字符不是 C 的任意字符串。 [实例 2-5-14]在“学生”表中检索姓名为“何”姓的学生信息。 use 学生管理数据库 select * from 学生 where 姓名 LIKE '何%' 在“学生”表中检索专业结束为“应用”的专业。 use 学生管理数据库 select * from 学生 where 专业 LIKE'%应用' 在“学生”表中检索以“场营销”三个字符结尾的专业。 use 学生管理数据库 select * from 学生 where 专业 LIKE'_场营销'41 在“学生”表中检索姓“沈”“刘”“何”的学生信息。 、 、 use 学生管理数据库 select * from 学生 where 姓名 LIKE '[何刘沈]%' 在“学生”表中检索不姓“何”的学生信息。 use 学生管理数据库 select * from 学生 where 姓名 LIKE '[^何]__'2.5.4 ORDER BY 子句 该语句的作用是对查询结果进行升序( ASC,默认)或降序 (DESC)排列。[实例 2-5-16] 检索“选课”表中的课程号为 2 的学号和成绩字段信息,并 按成绩降序排序。 use 学生管理数据库 select 学号,成绩 from 选课 where 课程号=2 order by 成绩 desc2.5.5 聚合函数和 GROUP BY 子句 在计算机语言中,函数具有求和、求均值、统计汇总、求最大值 和最小值等功能。这类函数一般称为“聚合函数”。聚合函数通常与 SELECT 语句的 Group by 子句一同使用。 1. 聚合函数常用聚合函数 函数名 功能42 AVG Count Count(*) Max Min Sum求平均值 统计某个表达式中数据值的数量 统计表中的行数 求最大值 求最小值 求和[实例 2-5-17] 统计“学生”表的学生人数。 use 学生管理数据库 select count(*) as 学生人数 from 学生 [实例 2-5-18] 计算所有选了 2 号课程的学生的最高分、最低分、总分和平 均分。 use 学生管理数据库 select max(成绩) as 最高分, min(成绩) as 最低分, sum(成绩) as 总分, avg(成绩) as 平均分 from 选课 where 课程号='2' [实例 2-5-19] 在“学生”珠中查询最大年龄和最小年龄。 use 学生管理数据库 select max(年龄) as 最大年龄, min(年龄) as 最最小年龄 from 学生2. GROUP BY 子句的使用43 聚合函数用于生成单个汇总数据, GROUP BY 子句用于生成分组汇总 数据。 [实例 2-5-20] 在“学生”表中统计每个班的人数和平均年龄。 use 学生管理数据库 select 班级, count(*) as 人数, avg(年龄) as 平均年龄 group by 班级 order by 班级 from 学生2.5.6 HAVING 子句 HAVING 子句只有在 GROUP BY 子句中使用才有意义。 GROUP BY 子句把数据组织起来分成组,HAVING 子句则为 GROUP BY 子 句设置分组条件(最多可设置 128 个条件)。[实例 2-5-21] 在 “选课” 表中检索同时选修 2 门课以上的学生学号和门数。 use 学生管理数据库 select 学 号 ,count( 课 程 号 ) as 课 程 门 数 from 选 课 group by 学 号 having count(课程号)&=2 order by 学号2.6 高级查询技术高级查询主要包括连接查询、嵌入式 SELECT 语句子查询、联合查 询等。2.6.1 连接查询根据需要,把两个或者多个表中共同拥有的字段连接起来,形成一个44 新的数据表。包括 ANSI 连接和 SQL Server 连接两种形式。1. ANSI 连接使用两个或多个表中共同拥有的字段,同时查询两个或多个表中的数 据,所生成的新表中包含多个表中的字段。 语法格式:SELECT table_name. colimn_name, table_name.column_name, … FORM {table_name [join_type] JOIN [table_name ON search_conditions] WHERE [search_conditions] 其中:join_type 参数表示三种连接方式:? INNER(内连接):查询结果集中仅仅包含满足条件的记录,为 SQL Server 默认的连接方式,关键字 INNER JOIN 可简写成 JOIN。 ? CROSS(交叉连接):查询结果集包含两个表中的所有记录。 ? OUTER(外连接):查询结果集中既包含满足条件的记录,又包含其 中某个表的全部行。外连接又包括三种形式:左外连接、右外连接、 全外连接。 [实例 2-6-1] 连接“学生”表和“选课”表,检索选修了 3 号课程的学生 信息(内连接) 。 use 学生管理数据库 select 学生.* from 学生 join 选课 on 学生.学号=选课.学号 选课.课程号=345where [实例 2-6-2] 连接“学生”表和“选课”表(交叉连接) 。 use 学生管理数据库 Select * from 学生 cross join 选课2. SQL Server 连接多表连接时,可以在 FROM 子句之后直接指定多个表,可以用 WHERE 子句过滤条件。 语法格式:SELECT table_name.column_name, table_name.column_name, … FROM {table_name, table_name, …} WERE table_name.column_name join_operator table_name.column_name[实例 2-6-3] 连接学生和选课表,检索选修课成绩等于高于 60 分,低于 80 分的学生信息,结果显示学号、姓名、班级和成绩。use 学生管理数据库 select distinct 学生.学号,学生.姓名,学生.班级,选课.成绩 from 学生,选课 where 学生.学号=选课.学号 and 选课.成绩&=60 and 选课.成绩&802.6.2 子查询SELECT 语句可以嵌套在 SELECT、INSERT、UPDATE、DELETE 等语句之中,这种嵌套的 SELECT 语句称为“子查询”。在实际应用中, 如果一个查询依赖于另一个查询时, 通过使用子查询。 子查询的主要作用: 产生一个派生表、用查询替代一个表达式、判断某个值是否存在等。子查46 询要放在括号内,嵌套层数最多 32。对于 text、image 类型的字段,子查 询无效。1. 把子查询用作派生的表[实例 2-6-4] 使用子查询检索班级为计算机的男生的学号、姓名、性别、 年龄、专业等信息。use 学生管理数据库 Select A. * from (SELECT 学号,姓名,性别,年龄,专业 from 学生 where 性别='男' and 班级='计算机') as A2. 把子查询用作表达式[实例 2-6-5] 使用子查询检索班级为计算机的男生的学号、姓名、年龄, 计算他们的平均年龄及与平均年龄的年龄差。use 学生管理数据库 select 学号,姓名,年龄, (select avg(年龄) from 学生) as 平均年龄, 年龄-(select avg(年龄) from 学生) as 年龄差 from 学生 where 班级='计算机' and 性别='男'3. 相关子查询上面的 1 和 2 两种形式的子查询的执行过程是:先执行子查询,在子 查询结果的基础上再执行外查询,子查询的查询条件不依赖于外查询,并 且子查询只执行一次。这样的子查询称为不相关子查询或嵌套子查询。与47 此相反, 相关子查询的内层子查询则被反复执行, 即外查询有多少条记录, 内查询就要被执行多少次。因此,相关子查询常被用作动态表达式。 [实例 2-6-6] 检索选修了 2 号课程并且成绩在 90 分以上的学生的学号和姓 名。use 学生管理数据库 select 学号,姓名 from 学生 where 90&=(select 成绩 from 选课 选课.学号 and 课程号=2) where 学生.学号=执行过程: 外查询将“学生”表中的字段值“学号”→内查询→用该学号与“选 课”中的学号进行匹配,如果匹配且“课程号”为 2,则将该学号返回给 外查询→进一步判断成绩是否大于等于 90,如果是,则显示学号、姓名, 否则,结束该轮查询,外查询再重新传值进行第二轮查询。2.6.3 TOP 关键字功能:在 SELECT 语句中限制查询结果只列出 n 个记录(使用 TOP 关键 字时,最好同时使用 ORDER BY 子句,才有实际意义)。 语法格式: SELECT TOP n[percent][with ties] table_list 其中: n 为正整数。48 TOP n 列出查询结果的前 n 个记录。 TOP n percent 列出查询结果的前 n%个记录。 With ties 包括并列结果,必须与 order by 子句联用。 [实例 2-6-7] 检索平均分在前 3 名的学生的学号和成绩, 并由高到低排列。use 学生管理数据库 select TOP 3 学号,avg(成绩) as 平均分 from 选课 group by 学号 order by 平均分 desc2.6.4 合并多个结果集作用:把两个以上的查询结果合并为一个结果集。 语法格式: SELECT 语句 1 UNION SELECT 语句 2 UNION[ALL] …… SELECT 语句 n 要求: ? 查询语句中的字段数和字段顺序必须相同, 并且字段类型也必须兼容。 ? 若 UNION 语句中包含了 ORDER BY 子句,则整个结果集都要排序。49 ? 结果集中的字段名来自第一个 SELECT 子句 [实例 2-6-8] 检索计算机班的男生信息和经济班的女生信息生成一个新的 记录集。use 学生管理数据库 select * from 学生 where 班级='计算机' and 性别='男' Union select * from 学生 where 班级='经济' and 性别='女'第三章 数据库访问技术 3.1 数据库的概念3.1.1 VB 访问数据库信息的主要方法? 数据控件(Data Control) 如 Data 控件、ADO Data 控件。 如 DataGrid 控件、 DataListBox? 数据约束控件(Bound Controls) 控件、DataComboBox 控件。? 数据访问对象(Data Access Object) DAO(数据存取对象) 、RDO (远程数据对象)和 ADO(ActiveX Data Object,动态数据对象) 。 DAO 和 RDO 都是 VB 早期的数据访问接口, 目前已逐步被 ADO 所替 代。ADO 包含了 6 个常用的可编程对象:ADO 常用对象 对象名称 Connection(连接) Command(命令) Recordset(记录集) 作 用用于建立数据源与 ADO 应用程序之间的连接。 通过连接发出的“命令”操作数据源,一般使用 SQL 命令。 是对数据库进行检索后的数据记录集。这个记录集既可以50 是 Command 对象返回的查询结果, 也可以是直接运行 SQL 命令产生的查询结果。 Error(错误) Parameter(参数) Field(字段) 返回一个数据库连接(Connection)上产生的错误信息。 将存储过程和参数查询所需的参数传递给 Command 对象。 读取记录集(Recordset)对象中各个字段的值。其中:Connection、Command、Record set 是主要的对象。3.1.2 数据源数据源是用户数据与服务器中的数据库通信过程的数据提供者,是数 据库数据与用户应用程序交互的一种接口和方法。 使用数据控件来连接数 据库时,第一步工作就是配置数据源,即为数据控件设置好连接的对象。 VB 能够访问三种类型的数据库: ? Jet 数据库 通过 DAO API (数据存取对象应用程序接口) Microsoft 、Access 创建的数据源,通常称为本地数据源,是 VB 默认的数据源。 存取速度快,访问效率高。 ? ISAM 数据库 以索引顺序存取方法创建的数据源,目前常见的有FoxPro、Excel、Lotus 等。查询速度较快。 ? ODBC(Open Database Connectivity)数据库 它是一种应用程序接口(API)。它提供了独立于任何的 DBMS 编写应用程序的能力。使 用 ODBC 开发 DB 应用程序的方法是建立 ODBC 数据源, 通过 ODBC 接口函数提交 SQL 语句并行接收 SQL 命令执行的结果。数据库的底 层操作由各个数据库的驱动程序来完成。51 3.1.3 可视化数据管理器可视化数据管理器(Visual Data Manager)具有建立数据库、数据表 和数据查询的功能。 1. 可视化数据管理器简介 在 VB 集成环境中,单击“外接程序/可视化数据管理器”命令即可启 动“VisData”窗口。该窗口由菜单栏、工具栏、子窗口区和状态栏组成。 菜单栏由 4 个菜单项组成:菜单名称 文件 实用程序 窗口 帮助 打开和新建数据库 建立查询和生成数据窗体 排列窗口 提供各种帮助信息 作 用工具栏中的按钮分为记录集按钮、数据显示按钮和事务方式按钮三 类。 记录集按钮:提供打开数据表的方式。记录集按钮 按钮名称 作 用表类型记录集以该方式打开数据表,对表中数据所作的增、删、改等会直 接更新数据表中的数据。 以该方式打开数据表或由查询返回的数据,所进行的增、删、 改及查询等操作都先在内存中进行,速度快。 以该方式打开数据表或由查询返回的数据只能读,不能改。动态集类型记录集 快照类型记录集52 数据显示按钮:提供数据显示方式。数据显示按钮 按钮名称 作 用使用 Data 控件 不使用 Data 控件在显示数据表的窗口中使用 Data 控件来控制记录的滚动在显示数据表的窗口中不使用 Data 控件, 而使用水平滚动条 来控制记录的滚动。 在显示数据表的窗口中使用 Dbgrid 控件。使用 Dbgrid 控件事务方式按钮:提供数据写入方式。事务方式按钮 按钮名称 作 用开始事务开始将数据写入内存数据表中。回滚当前事务取消由“开始事务”的写操作。提交当前事务确认数据写入操作,并更新数据,原有数据将不能恢复。2. 利用可视数据管理器创建数据库VB 可视化数据管理器能够创建的数据类型Microsoft Access 数据库 Dbase 数据库Microsoft Access (Version2.0 或 7.0) .mdbDbase(Version5.0、IV 或 II)FoxPro 数据库 FoxPro(Version3.0、2.6、2.5 或 2.0) Paradox 数据库 Parsdox(Version5.0、4.X 或 3.X) ODBC 数据库 新的 ODBC 数据源TextFiles 存储表文件的目录53 [实例 3-1-1]利用可视化数据库管理器创建名为 “zygl” Access 数据库, 的 存放在 D 盘根目录中。 ? 启 动 可 视 化 数 据 库 管 理 器 窗 口 , 选 择 “ 文 件 / 新 建 /Microsoft Access/Version 2.0mdb(或 Microsoft Access/Version 7.0mdb)。 ? 在“保存在”列表框中选择 D 盘根目录,在“文件名”框中输入数据 库文件名“zygl.mdb”。 ? 单击“保存”按钮。此时,VisData 窗口变成多文档窗口,左边是“数 据库窗口”子窗口,右边是“SQL 语言”子窗口。在“数据库窗口” 中单击“+”号,将列出新建数据库的常用属性。 ? 单击“数据库窗口”右上角的“×”按钮,可关闭建立或打开的数据 库。3. 利用数据库管理器打开数据库? 选择“文件/打开数据库”命令,再选择子菜单中的一个数据库类型项, 弹出打开数据库对话框。 ? 选择数据库存放的目录和路径,找到所要打开的库文件名,双击它或 者选中年单击“打开”按钮。4. 利用可视化数据库管理器建立数据表结构数据表结构包括表中各个字段的名称、类型、大小等信息。 [实例 3-1-2]创建下面的数据表结构,名称为“职工工资发放明细表”,存54 放在“zygl”数据库中。数据表结构 字段名称 职工号 姓名 职称 技能工资 岗位工资 浮动工资 其他工资 扣款 实发工资 类型 Text Text Text Integerl 同上 同上 同上 Single 同上 字段长度 5 8 8 2 同上 同上 同上 4 同上 索引 主索引(zghsy)? 在数据库管理器窗口中打开“zygl.mdb”数据库,在“数据库窗口” 中右击鼠标,选择快捷菜单中的“新建表”命令,打开“表结构”对 话框。 ? 在“表名称”框中键入数据表名称“职工工资发放明细表”。 ? 单击“添加字段”按钮,在“添加字段”对话框的“名称”框中键入 “职工号”,按 Tab 键,在“类型”框中选择所需要的字段类型(默 认为“Text”),将“大小”框中的默认字段长度值改为“5”,单击 “确定”按钮和“关闭”按钮,返回“表结构”对话框,单击“添加 索引” 按钮, “添加索引” 在 对话框的 “名称” 框中键入索引名称 “zghsy” , 在“可用字段”框中选择“职工号”字段,该字段即添加到“索引的55 字段”列表框中。建立索引的目的是为了提高数据的检索速度。每个 索引必须有一个名称,一个索引可以是一个字段,也可以是多个字段, 但其中必有一个是主索引。 如果要使某个字段或几个字段的值不重复, 可以建立索引,并且要选中“唯一的”复选框,否则一定不要选中它。 主索引通常应是唯一索引,其值不能为空(Not Noll),所以本例不应 选中“忽略空值”复选框。 ? 索引参数输入完毕后,单击“确定”和“关闭”按钮返回“表结构” 对话框,在“索引列表”框中可以看到刚才所建立的索引名称。 ? 接着按上述方法继续添加完剩余的字段。所有字段输入完毕后,单击 “关闭”按钮返回“表结构”对话框,单击“生成表”按钮,在数据 管理器的“数据库窗口”中可以看到所生成的数据表结构。表结构以 树型显示,包括“Fields” (字段)、 “Index” (索引)和“Properties” (属性)等内容。5. 利用数据管理器修改数据表结构打开要修改的数据表的数据库,在“数据库窗口”中右击想要修改结 构的数据表名称,选择快捷菜单中的“设计”命令,打开“表结构”对话 框,然后根据需要进行修改(包括更改表名称、字段名称和索引名称,添 加或删除字段或索引等)。6. 利用数据管理器对数据查询、添加、删除、修改、查找等操作(3) 查询信息56 查询是指按照一定的条件检索数据表中的某些信息。 [实例 3-1-3]在职工工资放发明细表中检索技能工资高于等于 600 元或低 于 400 元的信息。 ? 通过数据库管理窗口打开职工工资发放明细表所在的数据库 zygl。 ? 选择“实用程序/查询生成器”命令,打开“查询生成器”对话框。 ? 在“表”框中单击选中“职工工资发放明细表”数据表。 ? 在“字段名称”列表框中选择“职工工资发放明细表.技能工资”字段。 ? 在“运算符号”列表框中选择“&=”运算符。 ? 单击“列出可能的值”按钮,使技能工资字段的所有值列入“值”列 表框中,然后从中选择“600”(也可以直接在值框输入所需要的数据 值)。 ? 单击“将 Or 加入条件”按钮,“条件”框中即显示“职工工资发放 明细表.技能工资 &= 600”。 ? 在 “运算符” 列表框中选择 “&” 运算符, “值” 在 列表框中选择 “400” , 再单击“将 Or 加入条件”按钮,“条件”框中即显示“职工工资发 放明细表.技能工资 &= 600 Or 职工工资发放明细表.技能工资 & 400”。 ? 单击“运行”按钮,执行查询。57 (2)输入数据(快照类型记录集按钮不能被选中) [实例 3-1-4]在职工工资放发明细表中添加新的字段。 ? 打开职工工资发放明细表所在的数据库 zygl。 ? 选择“实用程序/查询生成器”命令,打开“查询生成器”对话框。 ? 在“表”框中单击选中“职工工资发放明细表”数据表,单击“运行” 按钮,弹出选择对话框。 ? 单击“添加”按钮,弹出字段输入对话框,然后按要添加的字段的值。 ? 输入完毕后,单击“更新”按钮,新字段即添加到数据表中。 (3)根据指定条件查找记录 [实例 3-1-5]在职工工资放发明细表中查找钟志强的信息。 ? 打开职工工资发放明细表所在的数据库 zygl。 ? 选择“实用程序/查询生成器”命令,打开“查询生成器”对话框。 ? 在“表”框中单击选中“职工工资发放明细表”数据表,单击“运行” 按钮,弹出选择对话框。 ? 单击“查找”按钮,弹出“Visdata”对话框,在“输入搜索表达式” 文本框中输入搜索表达式:姓名=’钟志强’”,单击“确定”按钮。 (4)按指定字段对表中的记录排序58 [实例 3-1-6]对职工工资放发明细表中数据按实发工资排序。 ? 打开职工工资发放明细表所在的数据库 zygl。 ? 选择“实用程序/查询生成器”命令,打开“查询生成器”对话框。 ? 在“表”框中单击选中“职工工资发放明细表”数据表,单击“运行” 按钮,弹出选择对话框。 ? 单击“排序”按钮,弹出“VisData”对话框,在文本框中输入排序列 的名称“实发工资”,单击“确定”按钮。 (5)删除记录 [实例 3-1-7]在职工工资放发明细表中删除钟志强的信息。 方法 1: ? 打开职工工资发放明细表所在的数据库 zygl。 ? 选择“实用程序/查询生成器”命令,打开“查询生成器”对话框。 ? 在“表”框中单击选中“职工工资发放明细表”数据表,在“字段” 列表框中选择“姓名”,在“运算符”框中选择“=”,在“值或表达 式”框中输入表达式值“钟志强”,单击“运行”按钮。 ? 单击“删除”按钮,再单击询问对话框上的“是”按钮。 方法 2:59 ? 打开职工工资发放明细表所在的数据库 zygl。 ? 选择“实用程序/查询生成器”命令,打开“查询生成器”对话框。 ? 在“表”框中选中“职工工资发放明细表”,单击“运行”按钮。 ? 单击“查找”按钮,输入查找表达式:姓名=’钟志强’,单击“确定” 按钮,然后单击“删除”按钮和“是”按钮。 (6)全局替换字段数据 [实例 3-1-8]在职工工资放发明细表中将职称为教授的人员的技能工资 700 元。 ? 打开职工工资发放明细表所在的数据库 zygl。 ? 选择“实用程序/全局替换”命令,打开“全局替换”对话框。 ? 在 “字段” 框中单击选中 “技能工资” 在 项, “替换为” 框中输入 “700” , 在“条件”框中输入条件:职称=&教授&,单击“确定”按钮。3.1.5 数据环境设计器(Data Environment Designer)利用 VB 的数据环境设计器可以建立 ADO 数据访问的数据源――数 据环境 (Data Environment) 数据环境设计器所创建的 Data Environment 。 对象包括 Connection、Command 等 ADO 对象,这些对象可以被整个工 程所使用。 [实例 3-1-9]通过数据环境访问 zygl.mdb 中的职工工资放发明细表。 1. 创建应用程序界面控件名称 属性60属性值 FormName captionForm1 数据环境应用示例1. 向工程中添加数据环境 单击“工程/Data Environment”命令。 2. 创建连接对象 ? 右击“Connection1”项,选择快捷菜单中的“属性…”命令,弹出“数 据链接属性”对话框,并选择“Microsoft Jet 4.0 OLE DB Provider” 项(表示数据源的提供者是 Microsoft Jet 4.0) ,再单击“连接”标签, 在“选择或输入数据库名称”框中选择“D:\zygl” (连接的数据库名称 及其具体路径) ,单击“测试连接”按钮。若连接成功,则单击“确定” 按钮,返回“Data Enviroment”对话框。 ? 右击“Connection1” ,选择快捷菜单中的“添加命令”项,添加一个 “Command1”命令。 ? 右击“Command1” ,选择快捷菜单中的“属性…”命令,在弹出的 “Commad1 属性”对话框的“数据库对象”下拉框中选择“表” ,在 “对象名称”下拉框中选择“职工工资发放明细表” ,单击“确定”按 钮返回。此时,展开“Commad1” ,即可看到所选表中的所有字段。 3. 编写程序代码Dim cx As DataEnvironment1 Private Sub Command1_Click() cx.Command161 Text1.Text = cx.rsCommand1.Fields(&职工号&) Text2.Text = cx.rsCommand1.Fields(&姓名&) Text3.Text = cx.rsCommand1.Fields(&职称&) Text4.Text = cx.rsCommand1.Fields(&技能工资&) Text5.Text = cx.rsCommand1.Fields(&岗位工资&) Text6.Text = cx.rsCommand1.Fields(&浮动工资&) Text7.Text = cx.rsCommand1.Fields(&其他工资&) Text8.Text = cx.rsCommand1.Fields(&扣款&) Text9.Text = cx.rsCommand1.Fields(&实发工资&) End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Set cx = New DataEnvironment1 End Sub3.1.6 数据视图窗口通过数据视图窗口可以查看当前连接的数据库对象,包括数据表 (Table)、视图(View)、存储过程(Stored Procedure)。在数据视图 窗口中,通过鼠标双击、拖放、右击等动作,即可快速地启动、创建和编 辑上述数据库对象,同时还能帮助用户维护数据源。 1. 启动数据视图窗口 在 VB 环境下,单击“视图/数据视图窗口”菜单命令,或者单击工具 栏上的“数据视图窗口”按钮。 2. 创建新对象 (1)为当前工程添加数据环境对象62单击“数据视图”窗口工具栏上的 “添加数据环境到当前工程”按钮。 (2)添加新的数据连接 数据连接”按钮。 3. 查看数据 (1)单击某个连接(如 DataLink1)左边的“+”号,可看到该连接所包 含的表、视图、存储过程等对象。 (2)双击某个表名称,可以打开该表,显示其内容,并可以编辑、增加 新的数据内容。 (3)在运行表窗口中右击鼠标,选择快捷菜单中的相应选项,可以进行 相应的操作。 单击“数据视图”窗口工具栏上的“添加新的3.2 配置数据源数据源为数据连接提供数据和方法。因此,建立数据库连接时,第一 步就是配置数据源,即为数据控件设置好连接的源对象。目前,ODBC 数 据源在数据连接中占首选地位,下面介绍如何配置 ODBC 数据源。 3.2.1 “ODBC 数据源管理器”窗口 “ODBC 数据源管理器”窗口,是配置、添加和删除各种不同的数据 源的场所。在 Win98 控制面板中双击“ODBC 数据源(32 位)”图标, 或者在 Win2000 控制面板中双击 “管理工具” 图标, 再双击 “数据源 ODBC” 图标,即可打开“ODBC 数据管源理器”窗口。“ODBC 数据源管理器”窗口上的 7 个选项卡说明选项卡名称 作 用63 用户 DSN添加、删除或设置用户数据源。该数据源只对当前用户可见,并且只能用于 当前计算机上。 添加、删除或设置系统数据源。该数据源对当前计算机上的所有用户可见, 在该系统上的用户或其他拥有权限的用户都可用系统 DSN 来使用数据源设 置。 添加、删除或设置基于文件的数据源。这些数据源可以供安装了相同驱动程 序的所有用户共享,他们都拥有对数据库的访问权限,并且这些数据源不必 专属于某一用户或本地计算机。 列出系统已安装了的 ODBC 驱动程序。 允许用户指定 ODBC 驱动程序管理器如何跟踪对 ODBC 函数的调用。 允许用户修改连接重试等待时间和当使用连接池时选择的驱动程序的超时时 间。系统 DSN文件 DSN驱动程序 跟踪 连接池3.2.2 Access 数据源的配置Access 是一个典型的关系型数据库系统(DBMS),也是 VB 内置的 默认数据库。 [实例 3-2-1]将 D 上的 zygl.mdb 数据库添加到“ODBC 数据管理器”中, 作为今后连接的数据源。 ? 打开“ODBC 数据源管理器”窗口,在“用户 DSN”界面上,单击“添 加”按钮,在“创建新数据源”对话框的“名称”框中选择“Microsoft Access Driver(*.mdb)”,单击“完成”按钮。 ? 在“ODBC Microsoft Access 安装”对话框中单击“选取”按钮,打开 “选定数据库”对话框。 ? 在“驱动器”列表框中选择盘符 D,在“数据库名”下面的列表框中64 选中“zygl.mdb”,单击“确定”按钮,或者直接双击数据库名称, 返回“ODBC Microsoft Access 安装”对话框。 ? 在“名称”框中键入“zygl”,单击“确定”按钮,该数据库就被添加 到“ODBC 数据源管理器”窗口中。 ? 如果要删除已有的用户数据源,则“名称”列表框中选中要删除的用 户数据源,单击“删除”按钮。 ? 单击“确定”按钮,关闭“ODBC 数据源管理器”窗口,结束数据源 配置的操作。3.2.3 SQL Server 数据源的配置SQL Server 是一个灵活性高、性能强的多用户服务器端数据源,适 合于开发 C/S 模式的大型数据库应用程序。 ? 打开“ODBC 数据源管理器”窗口,单击“添加”按钮,在“创建新 数据源”对话框的“名称”框中选择“SQL Server”选项,单击“完 成”按钮。 ? 在“建立新的数据源到 SQL Server”对话框的“名称”框中输入新的 数据源名称,如“SQL Server1”。? 在“服务器” 下拉列表框中选择 SQL Server 所在的服务器。若被连接的 SQL Server 安装在本地计算机上,选择“(local)”(本地,表 示连接到本地服务器) 若要连接的 SQL Server 安装在其它服务器上, ,65 则从下拉框中选择相应的选项,然后单击“完成”按钮。单击“下一 步”按钮可进行其他配置工作。第四章ActiveX 数据对象(ADO 对象)4.1 ADO 对象的组成ADO 包含了 6 个常用的可编程对象:ADO 常用对象 对象名称 Connection(连接) Command(命令) Recordset(记录集) 作 用 建立数据源与 ADO 应用程序之间的连接。 通过连接发出的“命令”操作数据源,一般使用 SQL 命令。 是对数据库进行检索后的数据记录集。这个记录集既可以 是 Command 对象返回的查询结果, 也可以是直接运行 SQL 命令产生的查询结果。 Error(错误) Parameter(参数) Field(字段) 返回一个数据库连接(Connection)上产生的错误信息。 将存储过程和参数查询所需的参数传递给 Command 对象。 读取记录集(Recordset)对象中各个字段的值。其中:Connection、Command、Recordset属于顶层的核心对象。4.2 Connection对象的主要属性和方法66 属性Connection对象的主要属性 功能ConnectionString ConnectionTimeOut DefaultDatabase指定建立连接的数据库名称、类型和路径。 设置与数据库建立连接时的最长等待时间, 默认15秒。 若 ConnectionTimeOut= 0,将一直等待连接成功为止。 定义Connection对象连接时默认的数据库名称。 Connection对象的主要方法 功能和语法格式 功能:打开一个数据源连接。 格式:Connection.Open ConnectionString, UserID, Password, OpenOption 其中: ConnectionString:可选字符串,包含连接信息。 UserID:可选字符串,连接时使用的用户名。 Password:可选字符串,连接时使用的密码。 OpenOptions:可选字符串,所使用的连接方式。 功能:关闭一个到数据库的连接。 格式:Object.Close 功能:执行查询或数据源支持的命令,返回一个RecordSet对象。 格式:Set Recordset=connection. Execute ( CommandText, RecordsAffected, Option) 其中: CommandText:文本字符串,包含要执行的SQL语句、表名、存储 过程或特定的提供者。 RecordsAffected:可选长整形变量,提供者向其返回操作所响应的记 录个数。 Option:可选长整形变量,提供者为CommandText参数赋值的方式。方 Open法Close Execute4.3 Command对象Command对象定义了将对数据源执行的指定命令。 通过已建立的连接 发出“命令”可以某种方式不定期操作数据源。一般情况下,命令可以在 数据源中添加、删除或更新数据,或者在表中以行的格式检索数据。名 称 Command对象的常用属性和方法 作 用 设置互数据源的连接信息。 指定改善的命令文本,如SQL语句、数据表名称等。 设置或返回CommandText的类型。 执行CommandText属性指定的操作。ActiveConnection属性 CommandText属性 CommandType属性 Execute方法67 Cancel方法取消Execute方法的调用。4.4名 称Recordset(记录集)对象Recordset对象的常用属性 作 用ActiveConnection Souce RecordCount BOF、EOF Bookmark CursorType Filter Sort返回Recordset对象所属的Connection对象。 返回或设置Recordset的生成方式:Command对象、SQL语句或存储 过程。 返回Recordset对象中的记录个数。 检测当前记录指针位置是否位于首记录、末记录。 返回或设置Recordset对象中当前记录的书签。 设置或返回Recordset对象使用的光标类型。 设置Recordset对象中的数据筛选条件。 设置排序字段。 Recordset对象的常用方法 作方法名称 Open Move MoveFirst 、 Movelast 、 MoveNext、Moveprevious AddNew Requery Update CancelUpdate Delete用打开代表数据表、查询结果等Recordset对象中记录的光标。 移动Recordset对象中当前记录指针到指定位置。 移动Recordset对象中当前记录指针到首记录、末记录、下一个、 上一个。 为可更新Recordset对象创建一条新的空记录。 重新执行生成Recordset对象的查询,以更新其中的数据。 保存对当前记录的更改。 取消在调用Update方法之前对当前记录的更改。 删除当前记录或记录组。[实例4-1-1]Connectiot对象的ConnectionString属性和ConnectionTimeOut 属性应用示例。Public Sub ConnectionString_Ecample () Rem 定义 4 个变量,分别对应 4 种不同的连接方式。 Dim Connection1 As ADODB.Connection Dim Connection2 As ADODB.Connection Dim Connection3 As ADODB.Connection Dim Connection4 As ADODB.Connection Rem 不使用数据源名(DSN)打开连接。 Set Connection1 = New ADODB.Connection '创建一个新的 Connection 对象 Connection1.ConnectionString = &driver={SQL Server};& & _ &Server=M UID=SA; pwd= database=pubs& Connection1.ConnectionTimeOut = 30 '设置与数据库建立连接时的最长等待时间为 30 秒 Connection1.Open68 Rem 使用 DSN 和 ODBC 标记打开连接。 Set Connection2 = New ADODB.Connection Connection2.ConnectionString = &DSN=P UID= pwd=& Connection2.Open Rem 使用 DSN 和 OLE DB 标记打开连接。 Set Connection3 = New ADODB.ConnectionConnection3.ConnectionString = &Data Source=P UserID=Password=&Connection3.Open Rem 使用 DSN 和单个参数而非连接字符打开连接。 Set Connection4 = New ADODB.Connection Connection4.Open &Pubs&, &sa&, &pwd& End Sub第五章数据访问控件和数据绑定控件数据控件是 VB 访问数据库的方法之一。最常用的数据访问控件有: Data、ADO Data、DataCombo、DataGrid、DataList 等控件。 使用数据控件访问现存数据库一般不需要编程。但是,必须记住,在 使用数据控件访问数据库之前,首先要完成数据源的创建工作。5.1 数据控件的属性利用数据控件访问数据库,返回数据库中记录的集合,必须通过它的 属性设置来实现。数据控件的属性属 性 功 能Connect(连接)设置要连接的数据库的类型。若访问 VB 内部数据库 Microsoft Access,该属性可以省略。若访问 VB 外部数据库,则必须设定69 被访问的数据库的类型。如:DBaseⅢ、Ⅳ、5.0,Excel3.0、4.0、 5.0、8.0,FoxPro2.0、2.5、2.6、3.0 等。 Database Name(数据 库名称) RecordType ( 记 录 类 型) Record Source(记录 源) 设置要连接的数据库的路径和名称。单击该属性框右侧的“…” 按钮即可添加要访问的数据库文件。 设置记录集合的类型, 可以是数据库中的一个数据表或存储查询。设置具体访问的数据源。可以是数据库中的单个表,一个存储查 询,或 SQL 语句。例如,若要指定 Data 控件访问的数据源为数 据库文件中的某一张表,则 RcordSouce 属性应指定为这个数据 表的名称。单击该属性框右侧的?按钮,即可添加所需要的数据 表。 设置控件的名称。该作为其他控件或程序代码中调用的引用。Name5.2Data 控件Data 控件是 VB 提供的一个标准控件,它可以访问 Access、dBase、 FoxPro、Excel 等数据文件。在一个窗体上可以创建多个 Data 控件,但不 能用多个 Data 控件访问同一个数据库。 5.2.1 Data 控件的基本属性 Data 控件本身不能直接显示数据库数据, 只有通过与之相关联的控件 (称为绑定控件)来实现对数据库的操作。 在 VB 中 , 有 三 个 专 用 数 据 绑 定 控 件 : DataGrid ( Micosoft DataGridControl6.0 ( OLEDB ) ) 、 DataListBox ( MicrosoftDataListControl6.0 ( OLEDB ) ) 和 DataComboBox ( Microsoft DataListControl6.0(OLEDB))。三个专用数据绑定控件的专门属性 属名称 DataSoure Datafield 作用 绑定 datalistbox 或 datacombobox 控件的 data 控件名称 由 datasoure 属性指定的字段名称,它决定哪一个字段被显示。70 Rowsource Bouncolum Listfield将要用于填充列表的 data 控件名称(行源)。 由 Rowsource 属性指定的记录集中的字段名称, 它必须与 datafield 的类 型相同。 用来填充列表的由 Rowsource 所指定的记录集中的字段名称。除此之外,CheckBox(复选框)、ComboBox(组合框)、PictureBox (图形框)、Image(图像框)、TextBox(文本框)、Lable(标签)等 基本控件也常用作数据绑定控件。 对于数据绑定控件,除了需要设置一些常用属性(如 name 属性)外, 一些所不能缺少的属性必须设置,其中最重要、不可缺少的属性有两个: DataSource(数据源,即指定为某个绑定控件提供信息的是哪一个 Data 控件)和 DataFiled(数据字段,设置某个绑定控件所绑定的具体字段, 即 Data 控件访问数据表中的哪一个字段的名称)。 [实例 5-2-1]使用 Data 控件检索 Biblio(图书)数据库中的图书名称 (Titles) 、出版年月(Year Published)和备注(Notes)三个字段的信息。 步骤 1:创建数据源。 步骤 2:创建应用程序界面,并在属性窗口中给相关属性赋值。控件名称 Form1 属性项 Name Caption 默认 使用 Data 控件访问数据库 示例 1 默认 data1 访问数据库 BIBLIO.MDB 2-vbSlignBottom Access Data 控件连接的是 Access 类型的数据库。71属性值说 明DataName Caption Align Connect宋体、粗体、小四号 任何时候都位于窗体底部 DataBaseNameC:\Program Files\Microsoft Visual Studio\vb98\Biblio.mdbData 控件连接的数据库名 称及其路径。 Data 控 件 的 数 据 源 为 Biblio 数据库中的 Titles 数据表。RecordSourceTitles(书名)Label1Name Caption默认 图书名称 默认 出版年月 默认 备注 默认 空 Data1 Title Data 控件访问 Titles 表中 的 Title 字段。 通 过 该 属 性 使 Text1 与 Data1 所连接的数据库绑 定在一起。Label2Name CaptionLabel3Name CaptionText1Name Text DataSource DataFieldText2Name Text DataSource默认 空 Data1 通 过 该 属 性 使 Text2 与 Data1 所连接的数据库绑 定在一起。DataFieldData 控件访问 Title 表中 Year Published(出版年月) 的 Year Published 字段。Text3Name Text DataSource默认 空 Data1 通 过 该 属 性 使 Text3 与 Data1 所连接的数据库绑 定在一起。 Data 控件访问 Title 表中 的 Notes 字段DataFieldNotes(备注)步骤 3:运行程序。 [实例 5-2-2]使用 Data 控件检索 ZYGL 数据库中的 “职工工资发放明细表”72 的数据。 步骤 1:创建数据源。 步骤 2:创建应用程序界面,并在属性窗口中设置各控件的属性。控件名称 窗体 属性项 Name Caption Name Frame Caption 标签 0~8 数组 Name}

我要回帖

更多关于 caxa如何设置整数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信