【Java学习笔记】18.Java数据库编程 - 1
数据库发展到现在的关系数据库管理系统,已经称为日常生活中不可缺少的部分,现在的邮箱列表、网上商城、站务系统及大型系统都离不开数据库。如果不借助数据库实现数据的存储,那么银行业务、图书管理系统等在实现上都会遇到难题。本章在介绍数据库的概念、SQL语言、JDBC即MYSQL数据库的基础上,通过简单的数据库访问实例,介绍Java中使用JDBC访问数据库的编基础。
主要内容:
- 数据库简介
- SQL语句
- -MySql数据库
- JDBC
- 数据库开发案例
1.数据库简介
数据库本身就是一门学科。涉及到的内容比较多。本章重点在于学习java的应用,所以只对数据库做一个简单的介绍,重点在讨论java对数据库的应用。本节主要讲述数据库的基本概念、特点,让我们对数据库有一个基本的了解。
1.1 数据库的概念
数据、数据库、数据库管理系统、数据库系统和数据库应用系统是数据库的基本概念,现在对他们做一个详细的介绍。
- 数据(Data) : 数据是用来描述一个事物的符号记录。数据的表现形式多样,可以是数字、文字、图形、图片及声音信息,这些信息在经过数字化后,都可以保存在计算机中。
- 数据库(DB):数据库是保存大量数据的容器,但容器中的数据具有特定的结构和组织关系。实际上,不仅数据记录内的数据是互相联系的,而且记录数据之间也有某种联系。
- 数据库管理系统(DBMS):数据库管理系统是数据库系统的核心部分,它是位于用户和操作系统之间的数据管理软件,主要负责数据库的定义、建立、操纵、管理和维护等。常用的DBMS产品有:Oracle、SQL Server、MySQL等。一般来说,Oracle用于安全系统较高的大型数据库系统,SQLServer和MySQL多用于中小型数据库应用系统
- 数据库系统(DBS):数据库系统是数据库在计算机上运行的必要系统组成,它由支持数据库运行的计算机软硬件、数据库、数据库管理系统及应用程序构成。
- 数据库应用系统(DBAS):数据库应用系统是基于数据库管理系统开发出来的数据库应用软件,如:图书管理系统、考勤管理系统、工资管理系统等。
1.2 数据库的特点
数据库与文件保存数据相比,优势比较明显。主要表现在以下几个方面:
- **数据结构化是数据库与文件系统在存储结构上的最大区别。**在文件系统中,虽然记录之间的内容都存在这某种结构,但记录之间没有联系,而数据库在记录内容和记录数据之间都存在着某种联系。数据库具有整体结构化的特点,可以最小到某一个数据的存取,而文件系统最小存取单位是一条数据。
- 数据库的结构化数据面向整个系统,可以被多个用户和应用程序共享,满足了不同用户的要求,由于数据可以被共享,所以可以减少冗余的数据,节约存储空间。另外,共享数据还可以防止数据不一致。
- **数据独立性包括逻辑独立性和物理独立性。**物理独立性是指应用程序与保存在数据库中物理存储之间没有依赖性,即数据的物理结构改变,不需要修改应用程序。;逻辑独立性是指应用程序与数据库的逻辑结构之间没有依赖性。即改变逻辑结构,可以不修改应用程序。
- 由于数据库的数据是共享的,多个用户和程序可以并发的访问同一条记录,所以必须由数据库管理系统进行管理和维护。主要包括数据库安全保护、完整性检查、并发控制和数据库恢复。
2.SQL语句
目前大多数数据库都是关系数据库,使用结构化查询语言(Structure Query Language,SQL)可以方便的查询、操纵、定义和控制数据库中的数据。SQL语言主要是为了建立各种数据库的连接,进行数据通信,他被视为关系数据库管理系统的标准语言。
2.1 SQL语言的分类
SQL语句用来执行数据库的各种操作,如数据的添加、删除、更新等,目前使用比较广泛的关系数据库管理系统,如Oracle、Sybase、MicroSoct SQL Server、MySQL等都采用了SQL语言。SQL语言主要由以下几部分组成:
- 数据定义语言(Data Definition Language,DDL)
- 数据操纵语言(Data Manipulation Language,DML)
- 数据控制语言(Data Control Language,DCL)
- 其他语言要素(Additional Language Elements,ALE)
数据操纵语言在数据库应用中使用的最多,它包含了最常用的SQL语句,即SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER和DROP。
2.2 SELECT查询语句
SELECT查询语句用于从表中查找某些符合条件的记录
SELECT <所选列的列名>
FROM 数据表名
[WHERE <条件表达式>]
[GROUP BY <列名1>[HAVING <条件表达式>]]
[ORDER BY <列名2> [ASC|DESC]]
GROUP BY 子句是对查询结构进行汇总,指明按照哪几个字段分组;
ORDER BY 子句是按照一个或多个字段对查询结果进行排序(最多16个字段),
并且可以选择升序(ASC)和降序(DESC),默认条件下是升序,该子句必须放在SQL语句的最后。
假设数据表的名称为Employees,数据表的各列分别为id、name、sex、entrydate、department,则可使用SELECT语句查询女性职员,并按照入职时间entrydate排序。
SQL语句如下:
SELECT name,entrydate
FROM Employees
WHERE sex = 'f'
ORDER BY entrydate
2. 3 INSERT插入语句
INSERT插入语句用于向已经存在的表中添加新的记录,其使用规则如下:
INSERT INTO
"表名"[(属性1,属性2,...,属性n)]
VALUES(属性1,属性2,...,属性n)
假设数据表名称为Employees,数据表的各列分别为id、name、sex、entrydate和department,则可使用INSERT语句添加一条新的记录。
SQL语句如下:
INSERT INTO
Employees [ ( id,name,sex,entrydate,department) ]
VALUES (100,'Jack','f','2022-7-1','Soctware Development' )
2. 4 UPDATE更新语句
UPDATE更新语句用于更新数据表中符合某个条件记录的某些字段,其使用规则如下:
UPDATE "数据表名"SET <列名> = <表达式>[WHERE<条件表达式>]
假设数据表名称为Employees,数据表的各列分别为id、name、sex、entrydate和department,则可使用UPDATE语句更新id为100的记录。将department字段的值修改为’Market’。
SQL语句如下:
UPDATE Employees
SET department = 'Market'
WHERE id = 100
2. 5 DELETE删除语句
DELETE删除语句用于删除数据表中符合条件的一条或多条记录。其使用规则如下:
DELETE FROM "数据表名" [WHERE<数据表达式>]
假设数据表名称为Employees,数据表的各列分别为id、name、sex、entrydate和department,则可使用DELETE语句更删除符合id=100的记录。
SQL语句如下:
DELETE FROM Employees
WHERE id = 100
2. 6 CREATE建表语句
CREATE Table命令用于创建一张数据库中不存在的新表。其使用规则如下:
CREATE TABLE 表名
({
列名 列类型
}[,...n]
)
如果想要创建一张表,该表包含了员工的有关信息,如工号、姓名、性别、入职日期、部门、备注信息(id、name、sex、entrydate、department和others),
SQL语句如下:
CREATE TABLE Employees
(
id int not null,
name varchar(10) not null.
sex char(2) null,
entrydate Date null,
department varchar(20) null;
others varchar(50) null
)
在这张表中,id表示职工代号,数据类型为int,不允许为空;
name表示员工姓名,数据类型为varchar,长度为10,不允许为空;
sex表示员工性别,数据类型为char,长度为2,允许为空;
department表示员工所在部门,数据类型为varcharm,长度为20,允许为空;
others表示员工的备注信息,长度为50,允许为空。
2. 7 ALTER修改表语句
ALTER修改表语句用于为表增加列、删除列或修改列,其使用规则如下:
ALTER TABLE 表名
{
ADD
{ []
|列名 列类型
|[]
}[, . . . , n]
| DROP
{ Column 列名称}
}[ , . . .
}
注意:ALTER语句可以通过ADD添加列、DROP删除列,但在某些数据库中,不允许使用DROP删除表中的列。
例如,需要修改表Employees的结构,增加一个新的字段,字段名称为city,数据类型是varchar,长度是20.SQL语句如下:
ALTER TABLE Employees ADD city varchar(20)
2. 8 DROP删除表语句
DROP语句用于删除已经存在的表,其使用规则如下:
DROP TABLE 表名
例如,删除已经创建的表Employee,SQL语句如下:
DROP Table Employees
3 MySQL
MYSQL是一种高效且免费的数据库系统。在某些情况下可以自由使用,
3.1 MySQL的安装配置
(1)下载安装向导,双击进行安装。首先要同意许可协议,然后点击"NEXT"按钮,
(2) 选择安装类型 “Setup Type”为"Developer Default",安装开发常用组件。
(3)点击"NEXT"按钮进入安装环境检测,安装向导会尝试从网络安装部分缺少的组件,但是仍有一些组件需要用户手动安装。(但是如果缺少的组件是Visual Studio 开发需要的另一个是Python开发需要的,对于Java开发者并不是必须的。所以