第10章数据库应用基础 10.1 数据库概述 10.2VB数据库访问 103记录集对象 10.4综合应用 VB.NET程序设计教程 本书目录
VB.NET程序设计教程 本书目录 4 第10章数据库应用基础 10.1 数据库概述 10.2 VB 数据库访问 10.3 记录集对象 10.4 综合应用
10.1 数据库概述 数据库 以一定的组织方式将相关的数据组织在 一起,存放在计算机外存储器,能为多个用户 共享,与应用程序彼此独立的一组数据的集合。 Visual Basic支持多种类型的数据库,如 Access数据库、FoxPro数据库、Microsoft Excel、.SQL Server和Dracle等。 VB.NET程序设计教程 本书目录 本章目录
VB.NET程序设计教程 本书目录 5 10.1 数据库概述 数据库 以一定的组织方式将相关的数据组织在 一起,存放在计算机外存储器,能为多个用户 共享,与应用程序彼此独立的一组数据的集合。 Visual Basic 支 持 多 种 类 型 的 数 据 库 , 如 Access数据库、FoxPro数据库、Microsoft Excel、SQL Server和Oracle等。 本章目录
10.1.1关系型数据库模型 关系型数据库模型将数据用表的集合来表示。通 过建立简单表之间的关系来定义结构,而不是根 据数据的物理存储方式建立数据中的关系。不管 表在数据库文件中的物理存储方式如何,都可以 把它看作一组行和列。 数据库 表 VB.NET程序设计教程 本书目录 本章目录
VB.NET程序设计教程 本书目录 6 10.1.1关系型数据库模型 关系型数据库模型将数据用表的集合来表示。通 过建立简单表之间的关系来定义结构,而不是根 据数据的物理存储方式建立数据中的关系。不管 表在数据库文件中的物理存储方式如何,都可以 把它看作一组行和列。 数据库 表 本章目录
关系型数据库 围 基本情祝:表 主键 -▣x 学号 姓名 性别 专业 出生年月 字段 50102 庄前 女 物理 1985-9-21 50201 丁保华 男 数学 1985-4-4 40201 姜沛棋 女 数学 1984-12-2 50202 朱克良 男 数学 1985-10-1 50301 程玲 女 计算机 1985-11-14 50302 黎敏艳 女 计算机 1986-2-21 记录 50303 章万京 男 电气 1985-6-3 50304 陈友良 男 电气 1986-5-5 记录:44 3 *共有记录数:8 表是有关信息的逻辑组,行被称为记录,列则被称 为字段。 VB.NET程序设计教程 本书目录 本章目录
VB.NET程序设计教程 本书目录 7 关系型数据库 表是有关信息的逻辑组,行被称为记录,列则被称 为字段。 主键 记录 字段 本章目录
10.1.2使用SQL查询数据库 结构化查询语言(Structure Query Language, SQL)是操作关系数据库的标准语言。通过SQL 命令,可以从数据库的多个表中获取数据,也可 对数据进行更新操作。SQL的主要语句: 语句. 分类 描述 SELECT 数据查询 查找满足特定条件的记录 DELETE 数据操作 从数据表中删除记录 INSERT 数据操作 向表中插入一条记录 UPDATE 数据操作 用来改变特定记录和字段的值 VB.NET程序设计教程 本书目录 本章目录
VB.NET程序设计教程 本书目录 8 10.1.2 使用SQL查询数据库 结构化查询语言(Structure Query Language, SQL)是操作关系数据库的标准语言。通过SQL 命令,可以从数据库的多个表中获取数据,也可 对数据进行更新操作。SQL的主要语句: 语 句. 分类 描 述 SELECT 数据查询 查找满足特定条件的记录 DELETE 数据操作 从数据表中删除记录 INSERT 数据操作 向表中插入一条记录 UPDATE 数据操作 用来改变特定记录和字段的值 本章目录
SELECT语句 SELECT语句的基本语法形式 SELECT目标表达式列表FROM表名 [NHERE查询条件] [GROUP BY分组字段HAVING分组条件] [ORDER BY排序关键字段[ASCIDESC]] 它包含4部分,其中SELECT和FROM子句是必须的,通 过使用SELECT语句返回一个记录集 例在学生基本情况表中查询物理系的学生情况: SELECT*FROM基本情况VHERE专业="物 理” VB.NET程序设计教程 本书目录 本章目录
VB.NET程序设计教程 本书目录 9 SELECT语句 SELECT语句的基本语法形式 SELECT 目标表达式列表 FROM 表名 [ WHERE 查询条件 ] [ GROUP BY 分组字段 HAVING 分组条件 ] [ ORDER BY 排序关键字段 [ASC|DESC] ] 它包含4部分,其中SELECT和FROM子句是必须的,通 过使用SELECT语句返回一个记录集。 例 在学生基本情况表中查询物理系的学生情况: SELECT * FROM 基本情况 WHERE专业= "物 理" 本章目录
SELECT语句-输出表达式 目标表达式为查询结果要显示的字段清单(字段 间用逗号分开)。数据的显示顺序由字段清单的 顺序决定。 可用星号*代表所有字段; 可用AS短语指定字段别名 可通过构造表达式对原始数据进行复杂的运算 处理,产生查询结果 。 例如,根据出生年月计算每个学生的年龄 SELECT姓名,(Year(Date())-Year(出生年月) AS年龄FROM基本情况 VB.NET程序设计教程 本书目录 本章目录
VB.NET程序设计教程 本书目录 10 SELECT语句-输出表达式 目标表达式为查询结果要显示的字段清单(字段 间用逗号分开)。数据的显示顺序由字段清单的 顺序决定。 可用星号*代表所有字段; 可用AS短语指定字段别名; 可通过构造表达式对原始数据进行复杂的运算 处理,产生查询结果。 例如,根据出生年月计算每个学生的年龄 SELECT 姓名, (Year(Date())-Year(出生年月)) AS 年龄 FROM 基本情况 本章目录
SELECT语句-查询条件 NHERE子句用于限制记录的选择 例如,查询1985-01-01到1986-12-31之间出生的学生: SELECT*FROM基本情况VHERE出生年月 BETWEEN#1985-01-01#AND#1986-12-31# 要枚举出若干项进行查询,使用运算符N 例如,查询物理系和数学系的学生数据: SELECT*FROM基本情况WHERE专业 ("物理","数学") 等价于: SELECT*FROM基本情况VHERE专业="物理"OR 专业="数学" VB.NET程序设计教程 本书目录 本章目录 11
VB.NET程序设计教程 本书目录 11 SELECT语句-查询条件 WHERE子句用于限制记录的选择 例如,查询1985-01-01到1986-12-31之间出生的学生: SELECT * FROM 基本情况 WHERE 出生年月 BETWEEN #1985-01-01# AND #1986-12-31# 要枚举出若干项进行查询,使用运算符IN 例如,查询物理系和数学系的学生数据: SELECT * FROM 基本情况 WHERE 专业 IN ("物理", "数学") 等价于: SELECT * FROM 基本情况 WHERE专业= "物理" OR 专业 = "数学" 本章目录
SELECT语句-合计函数 合计函数用于对记录集进行统计 合计函数 描述 AVG 获得特定字段中的值的平均数 COUNT 返回选定记录的个数 SUM 返回特定字段中所有值的总和 MAX 返回指定字段中的最大值 MIN 返回指定字段中的最小值 例如,统计物理系学生的人数: SELECT COUNT()AS学生人数FROM基本情况 NHERE专业=“物理” COUNT(*)在统计时包含值为空值的记录 COUNT(表达式)统计时忽略表达式值为空值的记录 VB.NET程序设计教程 本书目录 本章目录 12
VB.NET程序设计教程 本书目录 12 SELECT语句-合计函数 合计函数用于对记录集进行统计 MIN 返回指定字段中的最小值 MAX 返回指定字段中的最大值 SUM 返回特定字段中所有值的总和 COUNT 返回选定记录的个数 AVG 获得特定字段中的值的平均数 合计函数 描 述 例如,统计物理系学生的人数: SELECT COUNT(*) AS 学生人数 FROM 基本情况 WHERE专业= “物理” COUNT(*) 在统计时包含值为空值的记录 COUNT(表达式) 统计时忽略表达式值为空值的记录 本章目录
SELECT语句-分组 GROUP BY子句将指定字段列表中有相同值的 记录合并成一条记录。 例如,计算每个学生各门课程平均分: SELECT学号,AVG(成绩)AS平均分FROM成绩表 GROUP BY学号 要对分组后的数据进行过滤,可在GROUP BY 子句后结合HAVING子句在分组中选择。 例如,查询平均分在80分以上的学生: SELECT学号,AVG(成绩)AS平均分FROM成绩表 GROUP BY学号HAVING AVG(成绩)>=80 VB.NET程序设计教程 本书目录 本章目录 13
VB.NET程序设计教程 本书目录 13 SELECT语句-分组 GROUP BY子句将指定字段列表中有相同值的 记录合并成一条记录。 例如,计算每个学生各门课程平均分: SELECT 学号, AVG(成绩) AS 平均分FROM 成绩表 GROUP BY 学号 要对分组后的数据进行过滤,可在GROUP BY 子句后结合HAVING子句在分组中选择。 例如,查询平均分在80分以上的学生: SELECT 学号, AVG(成绩) AS 平均分FROM 成绩表 GROUP BY 学号HAVING AVG(成绩)>=80 本章目录