Java数据库操作.docx
《Java数据库操作.docx》由会员分享,可在线阅读,更多相关《Java数据库操作.docx(53页珍藏版)》请在冰豆网上搜索。
Java数据库操作
第20章数据库操作
数据库系统是由数据库、数据库管理系统和应用系统、数据库管理员构成的。
数据库管理系统简称DBMS,是数据库系统的关键组成部分,包括数据库定义、数据查询、数据维护等。
JDBC技术是连接数据库与应用程序的纽带。
学习Java语言,必须学习JDBC技术,因为JDBC技术是在Java语言中被广泛使用的一种操作数据库的技术。
每个应用程序的开发都是使用数据库保存数据,而使用JDBC技术访问数据库可达到查找满足条件的记录,或者向数据库添加、修改、删除数据。
本章将向读者介绍Java语言的数据库操作部分。
通过读者介绍Java语言的数据库操作部分。
通过阅读本章,您可以
●了解数据库的概念
●了解数据库的种类、功能以及常用的SQL语句
●了解JDBC技术的概念
●掌握JDBC中常用的类和接口
●掌握数据库操作的步骤
●掌握利用JDBC技术顺序查询数据的方法
●掌握利用JDBC技术实现模糊查询的方法
●掌握JDBC技术中的预处理语句
●掌握利用JDBC技术实现对数据的添加、修改和删除操作
一、数据库概述
1、什么是数据库
数据库是一种存储结构,它允许使用各种格式输入、处理和检索数据——不必在每次需要数据时重新输入它们。
例如,当需要某人的电话号码时,需要查看电话簿,按照姓名来查阅,这个电话本就是一个数据库。
数据库具有以下主要特点:
●实现数据共享。
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
●减少数据的冗余度。
同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件,减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
●数据的独立性。
数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。
●数据实现集中控制。
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。
利用数据库可以对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
数据的一致性和可维护性,以确保数据的安全性和可靠型。
主要包括:
●安全性控制,以防止数据丢失、错误更新和越权使用。
●完整性控制,保证数据的正确性、有效性和相容性。
●并发控制,使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。
●故障的发现和恢复。
二、数据库的安装
第一步:
第二步:
第三步:
第四步:
第五步:
第六步:
第七步:
三、启动服务
在服务列表中启动SQLServer(SQLSERVER2005)这项服务
四、图形化创建数据库
五、添加数据记录
1、输入数据
2、点击执行SQL语句
3、删除记录
六、使用命令行添加数据库
⏹数据库中的基本命令
--是注释的意思格式拼写
--新建数据库
createdatabaseshuguo
--创建表格,同时创建字段
createtablerenwu(bianhaoint,xingmingnvarchar(5),xingbienchar
(1),zhiwunvarchar(10),nianlingint)
--删除表格
droptablerenwu
--查询表格
select*fromrenwu
如果只想执行一行,请选中该行然后点击执行。
在执行命令时要选择相应的数据库:
七、常用SQL语句
数据库主要学习增、删、改、查。
numeric(6,2)小数类型,4位整数、2位小数;
执行以下语句:
--创建表格,同时创建字段
createtablerenwu(bianhaoint,xingmingnvarchar(5),xingbienchar
(1),zhiwunvarchar(10),nianlingint,gongzinumeric(6,2))
--查询表格
select*fromrenwu
执行结果如下:
执行以下语句:
--查询各别字段
selectbianhao,gongzifromrenwu
执行结果如下:
执行以下语句:
--为字段创建别名
selectbianhao编号,gongzi工资fromrenwu
执行结果如下:
向renwu表格中插入并查询记录的方法:
执行以下语句:
--向表格中添加记录
insertintorenwuvalues(1,'刘备','男','主公',40,9999)
insertintorenwuvalues(2,'甘夫人','女','夫人',35,9000)
insertintorenwuvalues(3,'诸葛亮','男','军师',30,8000)
insertintorenwuvalues(4,'关羽','男','将军',37,6000)
insertintorenwuvalues(5,'张飞','男','将军',40,5000)
执行结果如下:
执行以下语句:
--查询表格
select*fromrenwu
执行结果如下:
删除记录的方法:
执行结果如下:
--删除记录
deletefromrenwu
执行结果如下:
八、常用SQL语句
执行以下语句:
--删除甘夫人信息记录
deletefromrenwuwherexingming='甘夫人'
--添加一条年龄和工资为null的记录
insertintorenwu(bianhao,xingming,xingbie,zhiwu)values(2,'甘夫人','女','夫人')
--查询所有记录
select*fromrenwu
执行结果如下:
2、执行以下语句:
--查询工资大于的人物
selectbianhao编号,xingming姓名,gongzi工资fromrenwuwheregongzi<7000
执行结果如下:
3、执行以下语句:
--删除工资大于的
deletefromrenwuwheregongzi>7000
--查询所有记录
select*fromrenwu
执行结果如下:
九、修改记录
1、修改满足条件的记录
执行以下语句:
--把工资低于的人加上%
updaterenwusetgongzi=gongzi*1.02wheregongzi<8000
--查询所有记录
select*fromrenwu
执行结果如下:
2、delete和drop的区别
deletefromrenwu--只删除表中的记录,字段保留;可以添加where条件语句,删除满足条件的记录
droptablerenwu--删除整个表,包括所有的记录和字段
dropdatabaseshuguo--删除整个数据库
十、数据类型
1、char固定长字符串varchar变长字符串
区别:
在字符串长度固定的情况下,用char,因为char速度快。
2、nchar固定长字符串nvarchar变长字符串
区别:
是在前者的基础上采用了unicode编码,unicode编码的特点是字节和汉字占用的空间一样。
总结:
如果存取纯英文、数字字符串或英文和数字字符的混合形式,用char和varchar;如果存取中文、或其他语言用nchar和nvarchar。
3、bitintbigintfloatnumeric(更加精准,好控制)
4、时间类型
datetimetimestamp
getdate()--得到当前时间
例子:
createtableaaa(shijiandatetime)
insertintoaaavalues(getdate())
insertintoaaavalues('2003-7-16')
select*fromaaa
执行结果如下:
5、图片类型image和视频类型binary一般都放在专门的服务器上,因为太占用宽带了。
只有当需要安全时才直接放入数据库,而且要尽量小。
十一、主键
1、主键(不能重复、不能为空)
createtablegsyg(bianhaointprimarykey,xingmingnvarchar(10),nianlingint)
insertintogsygvalues(1,'悟空',30)
insertintogsygvalues(2,'八戒',26)
insertintogsyg(bianhao,xingming)values(3,'沙僧')
selectbianhao编号,xingming姓名,nianling年龄fromgsyg
执行结果如下:
2、更改各别记录内容
insertintogsygvalues(4,'八戒',26)
updategsygsetxingming='唐僧',nianling=20wherebianhao=4
updategsygsetnianling=23wherebianhao=3andxingming='沙僧'
selectbianhao,xingming,nianlingfromgsyg
执行结果如下:
十二、外键
1、--将年龄为空的记录的姓名改为悟空
updategsygsetnianling=nullwherebianhao=3
updategsygsetxingming='悟空'wherenianlingisnull
select*fromgsyg
执行结果如下:
2、--按条件删除记录--
deletefromgsygwherexingming='悟空'andnianling=20
--执行以上语句后,没有符合条件的记录,记录未删除
deletefromgsygwherexingming='悟空'ornianling=20
select*fromgsyg
--执行以上两句之后,执行的结果为:
十三、建立多张表
注:
外键只能指向主键,而且类型要一!
--1.创建数据库
createdatabaseshuihu
--2.创建表格
createtablebumen(bianhaointprimarykey,mingxingnvarchar(5),didiannvarchar(5))
createtablerenwu(paihangintprimarykey,xingmingnvarchar(5),zhiwunvarchar(5),shangjiint,ruzhishijiandatetime,gongzinumeric(6,1),buzhunumeric(5,1),bianhaointforeignkeyreferencesbumen(bianhao))
--3.添加记录
insertintobumenvalues(1,'总头领','聚义厅')
insertintobumenvalues(2,'文职','前山')
insertintobumenvalues(3,'马军','左山')
insertintobumenvalues(4,'步军','右山')
insertintobumenvalues(5,'水