《java高级第十章数据库基础.ppt》由会员分享,可在线阅读,更多相关《java高级第十章数据库基础.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第 十十十十 章章章章 数据库数据库数据库数据库2理解数据库基本理论理解SQLite数据库基本操作掌握SQL语句基本操作会运用Java程序操作数据库本章内容本章内容310.1 数据库概述数据库概述数据库数据库管理系统结构化查询语言SQL410.1 数据库概述数据库概述数据库 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库特点:1)数据完整性 2)数据共享性510.1 数据库概述数据库概述数据库管理系统:数据库管
2、理系统(DataBase Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。DBMS提供数据定义语言DDL(Data Definition Language)与数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。常见的关型
3、数据库管理系统有:Oracle,MS SQLServer,DB2,Mysql,Access等610.1 数据库概述数据库概述结构化查询语言SQL 结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言语言作为数据输入与管理的接口。710.1 数据库概述数据库概述结构化查询
4、语言SQL 大多数都遵循 ANSI SQL 标准。SQL语言包含4个部分:1)数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。2)数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。3)数据查询语言(DQL),例如:SELECT语句。4)数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。810.2 SQLite数据库数据库SQLite数据库特点下载和安装常用图形化Sqlite管理工具910.2 SQLite数据库数据库SQLite数据库特点 SQLite是一款轻型的数据库,是一种
5、关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它.它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月.至今已经有10多个年头,SQLite也迎来了一个版本 SQLite 3已经发布。它的官方网站是:http:/www.sqlite.org
6、或者1010.2 SQLite数据库数据库下载和安装链接:假设解压后将其中的Sqlite3.exe文件放置在D盘下,进入DOS命令行,输入命令进行创建一个数据库文件test.db后并退出1110.2 SQLite数据库数据库常用图形化Sqlite管理工具 SQLite有很多优秀的图形化管理工具:如sqliteaadministrator,sqlite developer,sqlite database browser。这些工具已内置了sqlite3数据库,无需再进行数据库连接配置,可直接使用.Sqlite Developer初始界面如下图,其操作和微软的MSSQL Server Manager
7、类似。1210.3 SQL基本操作基本操作数据类型约束创建表Insert 语句Update 语句Select 语句Delete语句1310.3 SQL基本操作基本操作数据类型 大多数数据库的一个字段都指定了相关的数据类型,相当于Java语言编程中数据类型。而SQLite采用的是动态数据类型,可以对字段不指定任何数据类型,SQLite会根据存入值自动判断。SQLite具有以下五种数据类型:1)NULL:空值相当于Java中null。2)INTEGER:带符号的整型,相当于Java中int型。3)REAL:浮点数字,相当于Java中float/double型。4)TEXT/VARCHAR:字符串文
8、本,相当于Java中String类。5)BLOB:二进制对象,相当于Java中byte数组。1410.3 SQL基本操作基本操作约束 数据库中存储数据的时候,有一些数据有明显的约束条件。比如一所学校关于教师的数据表,其中的字段列可能有如下约束:年龄-至少大于20岁。如果你想录入一个小于20岁的教师,系统会报错国籍-默认中国。所谓默认,就是如果你不填写,系统自动填上默认值姓名-不能为空。每个人都有名字嘛员工号-唯一。这个可不能乱,工资发错了就麻烦了上面提到的大于、默认、不能为空、唯一等等,就是数据的约束条件。1510.3 SQL基本操作基本操作约束 在用 CREATE TABLE 创建表的时候,
9、就应该将每个字段列的约束条件事先说明(如果有的话),以后再往表里输入数据的时候,系统会自动为我们检查是否满足约束条件,如果不满足系统会报错。SQLite3有如下约束:NOT NULL-非空 UNIQUE-唯一 PRIMARY KEY-主键 FOREIGN KEY-外键 CHECK-条件检查 DEFAULT-默认1610.3 SQL基本操作基本操作创建表create table student(id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20)NOT NULL,cid INTEGER,gender BIT DEFALT(1),age INT
10、EGER CHECK(age18 and age60),score REAL);字段名字段名类类型型长长度度约约束束说说明明idINTEGER主主键键,自增,自增长长编编号号nameVARCHAR20唯一唯一,不能不能为为空空姓名姓名cidInteger所在班所在班级级ageINTEGER大大于于18且且小小于于60年年龄龄genderBIT默默认认为为1,表表示示男男性性别别scoreREAL成成绩绩1710.3 SQL基本操作基本操作Insert 语句insert into student(name,cid,gender,age,score)values(宋江,1,1,45,46.5);1
11、810.3 SQL基本操作基本操作update 语句1)将所有学生的成绩加上3.5分 update student set score=score+3.5;2)将学生中姓名叫”杨雄”改为”杨志”update student set name=杨志 where name=杨雄;1910.3 SQL基本操作基本操作Select 语句1)查询所有学生信息 select*from student2)查询编号为1学生信息 select*from student where id=1;3)查询所有姓名中包含”娘”字的学生信息 select*from student where name like%娘%;4
12、)查询学生表的所有学生的编号,姓名和成绩三项信息 select id,name,score from student;2010.3 SQL基本操作基本操作delete句1)删除成绩小于60分学生信息 delete from student where score60;2)删除所学生信息 delete from student;2110.4 JDBCJDBC概念 JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员
13、提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。简单地说,JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。下列代码段给出了以上三步的基本示例:2210.4 JDBC创建数据库的连接 要使Java程序能够连接到,需要获得的相应的JDBC驱动程序,本章使用sqlite3 JDBC程序包,该包含三个文件:1)readme文本文件,告诉开发如何使用sqlitejdbc 2)sqlitejdbc.jar Java API 需要复制到系统的JRElibext目录下 3)sqlitejdbc.dll 本地动态链接
14、库,需要复制到系统的JREbin目录下.2310.4 JDBC创建数据库的连接 接下来需要在Java程序中完成以下两步操作获得与数据库连接对象Connection 第一步:装载驱动程序Class.forName(org.sqlite.JDBC);第一步:建立连接 Connection conn=DriverManager.getConnection(jdbc:sqlite:stu.db,);第一个参数是协议url,第二个参数用户名,第三个参数是密码,如果没有用户名和密码可以上行代码方式表示.Connection对象代表与数据库的连接。连接过程包括所执行的SQL语句和在该连接上所返回的结果。24
15、10.4 JDBC发送操作数据库的语句 连接一旦建立,就可用来向它所涉及的数据库传送SQL语句。JDBC提供了三个类,用于向数据库发送SQL语句。Connection接口中的三个方法可用于创建这些类的实例。下面列出这些类及其创建方法:1)Statement:由方法Connection对象的createStatement所创建。Statement对象用于发送简单的SQL语句。2)PreparedStatement:由方法Connection对象的prepareStatement所创建。PreparedStatement对象用于发送带有一个或多个输入参数的SQL语句。3)CallableStatement:由方法prepareCall所创建。CallableStatement对象用于执行SQL储存程序。2510.4 JDBC处理结果 完成向数据库发送操作语句,也就是通过Statement,PreparedStatement,CallableStatement对象的execute/executeXXX方法,数据库系统执行后通常会返回一个结果,这个结果主要有两种形式:1)对于插入,更新,删除操作完成后返回一个操作受影响的行数 2)对于查询返回是查询的结果集Resultset26本章完
限制150内