Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 610568018 网站 : 202.117.58.97/java.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

JSP 与数据库 SQL 语言简介 SQL 语言简介 JDBC 简介 JDBC 简介 使用 JDBC 连接数据库 使用 JDBC 连接数据库 访问数据库 数据库访问应用举例.
第十章 Java 数据库编程. 内容提要 数据库有关概念; 介绍 JDBC 的结构; 重点介绍 JDBC 访问几种数据库的基本过程;
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
2011/11,12 南台資管 吳昭儀. 1. 使用者介面 (User Interface)  使用者操作畫面的安排  Textbox, ComboBox, ListBox, CheckList, … 2. 流程控制 (Process Control)  使用者輸入資料檢查  計算  資料輸出.
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
第6章 数据库管理软件Access 年秋.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
第14章 JDBC技术和数据库开发应用.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
配合< JSP程序设计>例子源代码一起使用
第3章 SQL语言初步 2017/3/14.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
第12章 JDBC数据库应用程序设计.
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
第7章 数据库基础知识 SQL常用命令使用方法 (1) 数据记录筛选: sql="select * from 数据表
第十一讲 JDBC JDBC基础 JDBC驱动程序 JDBC编程 示例.
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
文科计算机小公共课规划教材 Access 程序设计.
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
计算机应用基础 上海大学计算中心.
第3章 数据查询与SQL命令.
数据库应用与程序设计.
第15章 Java数据库连接(JDBC) 15.1 创建数据源 15.2 JDBC-ODBC桥接器 15.3 顺序查询
JAVA 程式設計與資料結構 第十一章 JDBC.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
JDBC 数据库系统与应用 2014年.
第 8 章 資料的 新增、修改與刪除.
課程名稱:資料庫系統 授課老師:李春雄 博士
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
第三章 关系数据库标准查询语言SQL 3.1 SQL概述 3.2数据定义语言(DDL) 3.3 SQL的数据查询(DML)
第 7 章 建立資料表與 資料庫圖表.
資料庫安全 (Database Security)
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
2018/11/23 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
SQL Server 2000 数据库入门.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
SQL SERVER 一些经典语句 1.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
資料庫管理(Access 2003) 第五章 利用查詢來 統計與分析資料 許欽嘉 老師.
数据库技术与应用.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
第4章 数据查询.
Presentation transcript:

Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java

2 /40 主要内容 ☻ 关系数据库基础知识 ☻SQL 基本语法 ☻ODBC 概述 ☻JDBC 体系与 JDBC 编程模式 ☻JDBC 常用类与接口介绍 ☻ 表的访问 ☻ 带参数的 SQL 语句 ☻ 案例中的数据库设计 ♂

3 /40 关系数据库基础知识 ☻数☻数据库技术大约产生于上个世纪六七十年代 ☻它☻它解决了困扰多年的数据共享性、安全性和 完整性等问题 ☻数☻数据库是通用的和综合性的有序数据集合, 其数据的结构化程度高,能够为各类用户提 供数据共享而同时又具有最小的冗余度,保 证数据与应用程序高度的独立性,支持多个 用户同时并发地访问,具有及时而有效地处 理数据并保证数据的安全性和完整性等功能。 ♂

4 /40 ☻ 关系数据库是数据库的一种,它采用关系模型来描述实体及 实体间的联系。关系模型使用类似于二维表格的方式描述其 中的关系,其中,关系中的行称为记录(或元组),列称为 字段(或属性),属性的取值范围称为域,所有属性名称构 成的集合就组成了整个关系。 ☻ 一个关系数据库系统一般包括硬件、软件、人、数据库和数 据库管理系统 ☻ 目前流行的关系数据库管理系统有: MySQL 、 Foxpro 、 Access 、 Oracle 、 DB2 、 Informix 、 Sybase 和 SQL Server 等。 ☻Oracle 同时也是对象关系数据库管理系统 ☻ 而新型的面向对象数据库管理系统也已经出现,像 Borland 公司的 JDataStore 、开源软件 HSQL 和 H2SQL 等都是,它们 不但对 Java 语言有很好的支持,并且本身也是使用 Java 语言 编写的。 ♂

5 /40 ☻ 设计一个数据库应用系统需要完全按照软件 工程的设计思想来进行,从用户需求分析, 到概念设计、逻辑设计和物理设计,最后完 成数据库的实施和维护等。 ☻ 通常在对实际问题进行分析之后,首先使用 E-R 图(实体与联系图)来表示其概念设计 的结果,然后据此再进行数据库的逻辑设计 和物理设计。 ♂

6 /40 【例 14-1 】建立选课数据库 算法简述: ☺ 一个学生可以选修多门课程,实体 “ 学生(学 号、姓名和班级) ” ,实体 “ 课程(课号,课名, 主讲,学分) ” , ☺ 为了表达 “ 学生 ” 与 “ 课程 ” 之间的选修关系,需 要再增加一个实体 “ 选修(学号,课程,分 数) ” 。 ♂

7 /40 学生与课程的 E-R 图 ♂

8 /40 SQL 语句 CREATE TABLE 学生 ( 学号 int, 姓名 varchar(10), 班级 varchar(10) ); CREATE TABLE 选修 ( 学号 int, 课号 int, 分数 float ); CREATE TABLE 课程 ( 课号 int, 课名 varchar(20), 主讲 varchar(10), 学分 float ); ♂

9 /40 选课数据库表之间的关系 ♂

10 /40 SQL 基本语法 ☻SQL ,即结构化查询语言( Structured Query Language ),是目前关系数据库的 标准化语言,制订于 1974 年,目前已由 ANSI 颁布为 SQL-92 标准 ☻SQL 语句分 3 类共 9 个关键词: ☺ 其中 DDL (数据定义语言)有 3 种: Create 、 Alter 和 Drop , ☺DML (数据操纵语言) 有 4 种: Insert 、 Update 、 Delete 和 Select , ☺DCL (数据控制语言)有 2 种: Grant 和 Revoke 。 ♂

11 /40 常用数据类型 ☻CHAR(n) 定长字符串型 ☻VARCHAR(n) 可变长字符串型 ☻INT 整数型 ☻FLOAT 浮点型 ☻DATETIME 日期时间型 ♂

12 /40 运算符 ☻ 算术运算符:+(加)、-(减)、*(乘)和/(除) ☻ 逻辑运算符:=(等于)、 > (大于)、 >= (大于等于)、 (不等于) ☻ 连接运算符: AND (与)、 OR (或)和 NOT (非) ☻SQL 条件运算符: BETWEEN … AND … (在 … 之内)、 IN (在某集合中)、 LIKE('%' 匹配任何长度, '_' 匹配一 个字符 ) (符号匹配)和 IS NULL (空值判断) ☻ 子查询条件运算符: ANY (任何)、 ALL (所有)和 EXISTS (存在) ☻ 集合查询运算符: UNION (并)、 INTERSECT (交)、 MINUS (差) ♂

13 /40 函数 ☻abs 数值表达式的绝对值。 ☻ceil 大于等于给定数值表达式的最小整数。 ☻floor 小于或等于给定数值表达式的最大整数。 ☻sin 、 sinh 、 cos 、 cosh 、 tan 、 tanh 分别为正弦、反正弦、余弦、反余 弦、正切和反正切三角函数。 ☻log 自然对数。 ☻exp 表达式的自然底数的指数值。 ☻power 表达式指定乘幂的值。 ☻sqrt 表达式的平方根。 ☻sign 表达式之正 (+1) 、零 (0) 或负 (-1) 号。 ☻count 选取的结果集中行的数目。 ☻sum 所有值的总和。 ☻avg 选取的结果集中值的平均值。 ☻max 选取的结果集中值的最大值。 ☻min 选取的结果集中值的最小值。 ♂

14 /40 举例 ☻1. 建立数据库: CREATE DATABASE database_name ☻2. 移除数据库: DROP DATABASE database_name ☻3. 表的建立: CREATE TABLE table_name( column_name1 data_type1, column_name2 data_type2, ) ♂

15 /40 ☻4. 表的修改: 增加表的字段: ALTER TABLE table_name ADD column_name datatype ☻5. 表的删除: DROP TABLE table_name ☻6. 建立视图: CREATE VIEW view1 AS subquery ☻7. 删除视图: DROP VIEW view1 ♂

16 /40 ☻8. 表或视图的数据查询: SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition1 ] [ GROUP BY group_by_expression ] [ HAVING search_condition2] [ ORDER BY order_expression [ ASC | DESC ] ] ♂

17 /40 ☻9. 对表或视图增加数据: 插入一行数据: INSERT INTO table_name VALUES (value1, value2,....) 对指定的字段插入一行数据: INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....) ☻10. 修改表或视图的数据: UPDATE table_name SET column_name = new_value, …… WHERE column_name = some_value ♂

18 /40 ☻11. 删除数据表或视图的数据: DELETE FROM table_name WHERE column_name = some_value ☻12. 授予权限: GRANT system_priv TO user ☻13. 回收权限: REVOKE systen_priv FROM user ♂

19 /40 【例 14-2 】 题目: 在选课数据库中增加 3 门课程信息、 5 名学生信息, 第 1 名学生选了全部 3 门课程,第 2 名学生选了 第 1 和 2 门课程,第 3 名学生选了第 2 和 3 门课程, 第 4 名学生选了第 1 门课程,第 5 名学生还未选 任何课程;并完成以下 7 种查询: ♂

20 /40 ☻1. 查询全部学生信息; ☻2. 选课学生人次; ☻3. 选课完整信息清单; ☻4. 已选 3 门课程的学生学号清单; ☻5. 已选 “ Java 技术与应用 ” 课程的学生学号 名单; ☻6. 各课程选课人次一览表; ☻7. 还未选任何课程的学生学号名单。 ♂

21 /40 ODBC 概述 ☻ODBC ,即开放数据库互连( Open DataBase Connectivity ) ☻ 是微软公司 WOSA ,即开放服务结构 ( Windows Open Services Architecture )中 的一组数据库规范 ☻ 提供了对数据库访问的标准 API 。 ♂

22 /40 ☻SQL 语言在 ODBC 中起了至关重要的作用, 而且 ODBC 本身也提供了对 SQL 语言的支持 ☻ 一个基于 ODBC 的应用程序对数据库的操 作不依赖于任何数据库管理系统,只需要将 SQL 语句命令发送给 ODBC ☻ 所有的数据库操作均由对应的 ODBC 驱动 程序完成,从而完成对数据库的访问。 ♂

23 /40 一个完整的 ODBC 的组成部分 ☻ ⑴ 应用程序 (Application) 。使用 ODBC 接口函数编写的数据库应 用程序。 ☻ ⑵ ODBC 管理器。位于 Windows 操作系统的控制面板中的 “ 数据 源( ODBC ) ” 内,主要任务是管理和安装 ODBC 驱动程序和数 据源。 ☻ ⑶ 驱动程序管理器。包含在 ODBC32.DLL 中,对用户是透明的。 其任务是管理 ODBC 驱动程序,是 ODBC 中最重要的部分。 ☻ ⑷ ODBC API 。 ODBC 接口函数库。 ☻ ⑸ ODBC 驱动程序。是一些 DLL ,提供了 ODBC 和数据库之间 的接口。 ☻ ⑹ 数据源。包含了数据库位置和 ODBC 驱动程序类型等信息, 是一种数据连接的抽象。 ♂

24 /40 JDBC 体系与 JDBC 编程模式 ☻JDBC ,即 Java 数据库连接( Java Database Connectivity ) ☻ 是一种用于执行 SQL 语句的、通用的 Java 数据库访问底层接口( Java API ),目前版 本为 3.0 ☻ 用于使用 100% 纯 Java 来编写数据库应用程 序。 ☻ 由一组用 Java 语言编写的类和接口组成 ♂

25 /40 JDBC 体系与 JDBC 编程模式 JDBC 统一了访问各种数据库的接口 ☺ 不管所使用的数据库管理系统是什么类型,只 要向其发送 SQL 语句就可以完成对数据库的访 问 ☺ 并且只需写一个程序就能够实现跨数据库和跨 平台的性能。 ♂

26 /40 JDBC-ODBC 桥 ☻ 由于 ODBC 已经被广泛地使用在传统的管 理信息系统中, JDBC 可以建立在 ODBC 的 基础上, JDBC-ODBC 桥是一个 JDBC 驱动 程序,其作用就是将 JDBC 操作转换为 ODBC 操作以实现 JDBC 任务。 ☻JDK 中的 “ sun.jdbc.odbc ” 包,提供了用来 访问 ODBC 的本地库,它无须特殊配置就可 使用,其中 “ sun.jdbc.JdbcOdbcDriver ” 为 桥驱动程序类。 ♂

27 /40 使用 JDBC-ODBC 桥时,首先用 Java 类加载器 将桥驱动程序类加载,加载时, ODBC 驱动 程序(与所有 JDBC 驱动程序一样)将创建 自己的实例,同时在 JDBC 驱动程序中进行 注册。 加载形式如下: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" ); ♂

28 /40 JDBC-ODBC 桥所处的层次 ♂

29 /40 JDBC URL ☻JDBC URL 提供了一种在 JDBC 程序中标识 数据库的方法,由相应的驱动程序使用来 识别该数据库并与之建立连接。 ☻JDBC URL 的语法格式如下: jdbc: : ☻ODBC 子协议的 URL 形式如下: jdbc:odbc: [; = ] [, … ] ♂

30 /40 举例 ☻jdbc:odbc:xkdb ☻jdbc:odbc:myoracle; UID=david; PWD=1234 ☻jdbc:odbc:myjdatastore; Cachesize=300 ♂

31 /40 编写数据库应用程序的步骤 ☻1. 安装 JDK ,已经包含 JDBC API 包,或安 装特殊的 JDBC 驱动程序包,比如: Oracle 的 class12.zip 、 DB2 的 db2jdbc.zip 等 ☻2. 安装 JDBC-ODBC 桥和驱动程序,已经包 含在 JDK 中 ☻3. 安装数据库管理系统和数据库 ☻4. 在控制面板的 “ 数据源( ODBC ) ” 中建 立 ODBC 数据源 ☻5. 引入 java.sql 包: import java.sql.*; ♂

32 /40 编写数据库应用程序的步骤 ☻6. 加载数据库驱动程序: Class.forName( “ sun.jdbc.odbc.JdbcOdbcDriver ” ); ☻7. 建立连接: Connection con=DriverManager.getConnection( "jdbc:odbc:xkdb"); ☻8. 执行 SQL 句: Statement stmt=con.createStatement; ResultSet rs=stmt.execQuery("select * from 学生 "); 或 stmt.execute("INSERT INTO 学生 VALUES( , ' 张一 ', ' 管理 52 ')"); ♂

33 /40 编写数据库应用程序的步骤 ☻9. 取得查询结果或完成增删改操作: rs.getString(i));// 取得第 i 个字段的值 rs.next();// 定位下一记录。 ☻10. 关闭结果集、语句和连接: rs.close(); stmt.close(); con.close(); ☻11. 例外处理: SQLException ♂

34 /40 JDBC 常用类与接口介绍 1. 类 DriverManager 2. 接口 Connection 3. 接口 DatabaseMetaData 4. 接口 Statement 5. 接口 PreparedStatement 6. 接口 ResultSet ♂

35 /40 表的访问 ☻ 表或视图数据的查询 ☺ 【例 14-3 】查询学生信息 算法简述: 本程序使用可视化界面,完成 SQL 查询语句的输入、 执行和查询结果的显示。在窗口中主要放置一个 JTextArea 组件完成 SQL 查询语句的输入、一个 JTextArea 组件显示 SQL 查询语句的执行状态,一个 JTable 组件显示 SQL 查询语句的执行结果,以及一 个 JButton 按钮执行 SQL 查询语句。 ♂

36 /40 表的访问 ☻ 表数据的增删改和表结构的增删改 ☺ 【例 14-4 】学生信息的增删改。要求完成以下 处理: 1. 增加一门新课:课号: 4 ,课名: C++Builder 可视 化程序设计,主讲:卫老师,学分: 3 ; 2. 增加一名新同学:学号: ,姓名:陈玫, 班级:人力 31 ; 3. 这名新同学选修了这门新课:学号: ,课 号: 4 ; 4. 将学号为 的同学的班级改为工设 42 ; 5. 删除学号为 的同学所选的第 1 号课程。 ♂

37 /40 表的访问 ☻ 算法简述: ☺ 本程序使用可视化界面,完成 DDL SQL 语句的 输入和执行,在窗口中主要放置一个 JTextArea 组件完成 DDL SQL 语句的输入、一个 JTextArea 组件显示 DDL SQL 语句的执行状态, 以及一个 JButton 按钮执行 DDL SQL 语句。 ♂

38 /40 带参数的 SQL 语句 ☻ 【例 14-5 】在选课完整信息清单中进一步查询分数在 m 和 n 之间的学生,其中 m 和 n 的值由组件输入。 算法简述: 将例 17-2 的选课完整信息清单对应的 SQL 查询语句设计为 Access 中的一个视图 “ 查询 3 ” 使用 PreparedStatement 接口代替 Statement 接口,通过两 次调用 PreparedStatement 接口的 setInt 方法传递两个参 数 m 和 n ;并使用两个 JTextField 组件分别完成 m 和 n 值 的输入。 SQL 语句代码: SELECT * FROM 查询 3 WHERE 分数 >=? AND 分数 <=? ♂

39 /40 案例中的数据库设计 ♂