数据的各种操作技术.ppt

上传人:牧羊曲112 文档编号:6578760 上传时间:2023-11-14 格式:PPT 页数:21 大小:307.14KB
返回 下载 相关 举报
数据的各种操作技术.ppt_第1页
第1页 / 共21页
数据的各种操作技术.ppt_第2页
第2页 / 共21页
数据的各种操作技术.ppt_第3页
第3页 / 共21页
数据的各种操作技术.ppt_第4页
第4页 / 共21页
数据的各种操作技术.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《数据的各种操作技术.ppt》由会员分享,可在线阅读,更多相关《数据的各种操作技术.ppt(21页珍藏版)》请在三一办公上搜索。

1、数据的各种操作技术,主要内容,DML概述插入(INSERT)修改(UPDATE)删除(DELETE)查询(SELECT)ResultSet接口基本用法复习可滚动的结果集可更新的结果集,DML概述,数据操作语言DML(Data Manipulation Language)是最常使用的一类SQL语言,使用它可以维护、查询数据表中的数据,包括:插入(INSERT)插入数据到数据表修改(UPDATE)修改数据表中的内容删除(DELETE)删除数据表中的数据查询(SELECT)查询数据表中的内容java程序中,查询操作通过statement.executeQuery(String sql)完成,返回结果

2、集对象ResultSet;更新操作通过statement.executeUpdate(String sql)完成,返回受影响的纪录数,插入(INSERT),语法:INSERT INTO table_name(column1,column2)VALUES(value1,value2)例如:INSERT INTO employees VALUES(003,wangwu,wa.b,30,m,1)INSERT INTO employees(id,name)VALUES(004,david)说明:若没有指定字段名,系统会顺序将值填如各列 列属性的数据类型和所填如的值的类型必须吻合程序举例Notes:若数

3、据表设置了主键,则主键字段不允许插入重复值,修改(UPDATE),语法:UPDATE table_name SET column1=value1,column2=value2 WHERE search_condition例如:UPDATE employees SET email=WHERE(name=zhangsan)UPDATE employees SET age=24,dept_id=1 WHERE(name=lisi)说明:WHERE子句设置限定条件 可以一次更改多个字段的值程序举例,删除(DELETE),语法:DELETE FROM table_name WHERE search_co

4、ndition例如:DELETE FROM employees WHERE(name=Green)说明:WHERE字句设置要删除的数据该复合的条件 如果没有WHERE字句,则会删除表中所有纪录程序举例,查询(SELECT),查询(SELECT)可以说是SQL的核心,语法不难,但是可以用得很复杂,从而实现很强大的查询功能。SELECT基本语法:SELECT list_of_columns FROM table_name WHERE search_conditions例如:SELECT id,name FROM employeesSELECT*FROM employeesSELECT name,a

5、ge+5 FROM employeesSELECT a.id AS employee_id,a.sex,a.name FROM employees a说明:如果要检索数据表中所有字段,可以用”*”替代 字段检索时可以做一些简单运算 可以为数据表指定别名,可以为检索的字段指定新的名称(别名和字段新名称在多表操作中有很实际应用)检索的字段顺序可以调换,查询(SELECT),关于WHERE条件子句WHERE子句设置检索时的筛选条件例如:SELECT*FROM employees WHERE dept_id=2说明:WHERE中可以使用许多不同的运算符及关键字:比较运算符:=逻辑运算符:AND OR

6、NOTIN 及 NOT IN,如:WHERE id IN(001,002)NULL值(IS NULL,IS NOT NULL),如:WHERE dept_id IS NULLLIKE 及 NOT LIKE,模糊检索,”%”代表多个字符,”_”代表一个字符,如:SELECT*FROM employees WHERE name LIKE d%SELECT*FROM employees WHERE name LIKE d_,查询(SELECT),数据排序(ORDER BY子句)有时候需要将检索出来的结果按照某些字段的数据顺序作排序语法:SELECT list_of_columns FROM tabl

7、e_name WHERE search_conditions ORDER BY column1 ASC/DESC,column2 ASC/DSC 说明:其中ASC是递增,DESC是递减,如果不指定,默认为ASC也可以指定多个字段来排序,则排序的优先级同字段顺序如:SELECT*FROM employees ORDER BY age,id DESC,查询(SELECT),统计函数的使用SQL语法提供了一些统计函数供检索时对数据作一些运算,目前大部分数据库都支持的统计函数如下表:,例如:SELECT AVG(age)FROM employees,查询(SELECT),GROUP BY字句统计函数通

8、常和GROUP BY子句一起使用。GROUP BY就是根据指定的字段作统计函数的运算。例如想要知道每个部门员工的平均年龄,可搭配统计函数与GROUP BY子句来实现:SELECT dept_id,AVG(age)AS dept_avg_age FROM employees GROUP BY dept_id说明GROUP BY放在FROM及WHERE之后在GROUP BY子句中,说明要分组的字段名称,ResultSet接口,基本用法(复习)ResultSet是执行SQL查询语句后,数据库返回的结果集。在ResultSet中,以一个游标(cursor)指向目前的记录行,一开始游标是在第一条纪录行的

9、前面,ResultSet对象提供了next方法,可以让游标走到下一条纪录行,当游标移动到没有任何记录行之后,next方法就会返回false,所以我们通常使用while循环取得ResultSet内的所有数据内容数据库数据类型与Java数据类型当ResultSet的游标指向某条纪录行时,我们可以使用getXxx方法取得该记录行上每一个字段的值。有两种方式使用getXxx:一是使用字段的索引,二是使用字段的名称(使用第一种方式效率更高)getXxx中的Xxx是指Java的数据类型,数据库的数据类型与Java的数据类型并不相同,所以每一种数据库的数据类型都有不同的getXxx,例如INTEGERget

10、Int()BIGINTgetLong()查看Java Tutorial,ResultSet接口,使用getXxx方法时需要注意的问题:重复取某一个字段值的问题:Type1驱动存在问题”no data found”Type4驱动没有问题解决办法:将getXxx得到的结果存储到变量里,以后需要这个字段值的时候直接使用变量不按字段顺序取值的问题:Type1驱动存在问题”无效的描述符索引”Type4驱动没有问题解决办法:尽量按照从左至右的顺序依次读取各字段的值总结:这其实是JDBC API与驱动程序搭配的问题,新版本的JDK版本也许会解决Type1驱动在这里存在的问题,ResultSet接口,可滚动与

11、可更新的结果集如果没有做任何设置,ResultSet的初始设置是游标只能向下移动且不能做数据更新。JDBC 2.0之后的API,支持游标的上下滚动,也可以使用ResultSet更新数据库中的纪录即可以获得可滚动与可更新的结果集要获得可滚动与可更新的结果集,必须在创建Statement对象时,指定其返回的ResultSet对象的游标移动与数据更新方式:Statement stmt=con.createStatement(int type,int concurrency);stmt在具体操作时,就会根据参数type,concurrency的取值情况,返回相应类型的结果集:ResultSet rs=

12、stmt.executeQuery(SQL语句),ResultSet接口,Type的取值决定游标移动(滚动)的方式:ResultSet.TYPE_FORWARD_ONLY 只能向下滚动ResultSet.TYPE_SCROLL_INSENSITIVE 可上下滚动,当数据库变化时,不影响结果集ResultSet.TYPE_SCROLL_SENSITIVE 可上下滚动,当数据库变化时,影响结果集concurrency的取值决定是否可以用结果集更新数据库:ResultSet.CONCUR_READ_ONLY 不能用结果集更新数据库中的表 ResultSet.CONCUR_UPDATABLE 可以用结

13、果集更新数据库中的表,ResultSet接口,可滚动的结果集ResultSet中常用的方法:booleanprevious()booleannext()voidbeforeFirst()将游标移到第一行之前voidafterLast()将游标移到最后一行之后booleanisBeforeFirst()booleanisAfterLast()booleanfirst()booleanlast()booleanisFirst()booleanisLast()intgetRow()获取游标所在行的行号,若此时在最后一行,则为结果数booleanabsolute(introw)将游标移到参数指定的行号

14、,row可以取负值,表示倒数的行数,如absolute(-1)移到倒数第一行。,ResultSet接口,举例,使用可滚动的结果集,将检索结果倒序打印在屏幕终端上。可滚动的结果集中游动查询的典型应用:分页显示中的纪录定位,当用户指定要看第n页的结果时。,ResultSet接口,可更新的结果集可以使用ResultSet对象更新底层数据库中的数据,更新操作可以是修改、删除或插入。事实上,ResultSet能更新底层数据库是有限制的,该ResultSet的数据只能对应数据库中的一个数据表(不能对应多表数据)。使用可更新的结果集修改数据ResultSet提供了一组updateXxx方法用于更新字段数据,

15、updateXxx与getXxx的使用道理完全相同,它更新的是目前游标所处的记录行的字段值,设置完成更新的字段值之后,就可以利用updateRow方法真正将更新的数据写入数据库。举例,检索所有数据,在遍历结果集的时候,将所有纪录的age字段值增加10。,ResultSet接口,使用可更新的结果集删除数据只需将游标移动到要删除的数据行上,然后执行deleteRow方法即可使用可更新的结果集插入数据首先要利用moveToInsertRow方法将游标移动到插入数据行上,插入数据行是一条特殊的数据行,专门用于存储要插入的纪录然后使用updateXxx方法设置要插入的各个字段的值(多个字段就得多次调用u

16、pdateXxx)设置完所有要插入的字段值后,使用insertRow方法将数据真正插入到数据库中最后使用moveToCurrentRow方法将游标移回到原来的地方举例:使用ResultSet删除数据表中最后一条纪录,再插入一条新的纪录。,ResultSet接口,可更新的结果集ResultSet中常用的方法:booleanabsolute(introw)将游标定位到指定行voidupdateXxx()voidupdateRow()修改目前游标上的数据voiddeleteRow()删除目前游标上的数据voidmoveToInsertRow()voidinsertRow()voidmoveToCurrentRow()voidcancelRowUpdates(),在具体的修改、插入之前,可利用此方法取消updateXxx()的设置,复习与实践,使用可滚动、可更新的结果集,检索数据表中的全部纪录,并:输出结果集中的记录总数单独输出第2条纪录更改第2条纪录的字段值,如email复习内容:JDBC数据库连接可滚动、可更新的结果集ResultSet的常用方法,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号