Java数据库知识点总结(部分,还有很多没整合进去)

上传人:ji****72 文档编号:37519923 上传时间:2018-04-17 格式:DOC 页数:11 大小:71KB
返回 下载 相关 举报
Java数据库知识点总结(部分,还有很多没整合进去)_第1页
第1页 / 共11页
Java数据库知识点总结(部分,还有很多没整合进去)_第2页
第2页 / 共11页
Java数据库知识点总结(部分,还有很多没整合进去)_第3页
第3页 / 共11页
Java数据库知识点总结(部分,还有很多没整合进去)_第4页
第4页 / 共11页
Java数据库知识点总结(部分,还有很多没整合进去)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《Java数据库知识点总结(部分,还有很多没整合进去)》由会员分享,可在线阅读,更多相关《Java数据库知识点总结(部分,还有很多没整合进去)(11页珍藏版)》请在金锄头文库上搜索。

1、 JDBC 中的中的 PreparedStatement 相比相比 Statement 的好处的好处答:一个 sql 命令发给服务器去执行命令发给服务器去执行的步骤为:语法检查,语义分析,编译成内部指令,语法检查,语义分析,编译成内部指令, 缓存指令,执行指令等过程。缓存指令,执行指令等过程。 select * from student where id =3-缓存-xxxxx 二进制命令 select * from student where id =3-直接取-xxxxx 二进制命令 select * from student where id =4- -会怎么干? 如果当初是 selec

2、t * from student where id =?- -又会怎么干? 1、上面说的是性能提高、上面说的是性能提高 2、可以防止、可以防止 sql 注入。注入。 大数据量下的分页解决方法。大数据量下的分页解决方法。答:最好的办法是利用利用 sql 语句进行分页语句进行分页,这样每次查询出的结果集中就只包含某页的数 据内容。在 sql 语句无法实现分页的情况下,可以考虑对大的结果集通过游标定位游标定位方式来 获取某页的数据。mysql: String sql = “select * from students order by id limit “ + pageSize*(pageNumbe

3、r-1) + “,“ + pageSize;oracle:String sql = “select * from “ + (select *,rownum rid from (select * from students order by postime desc) where rid“ + pageSize*(pageNumber-1);select * from (select * from talk order by id) where rownum Deptment 对象,现在设计时就成了 employeedeptid)3、表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等、表中

4、允许适当冗余,譬如,主题帖的回复数量和最后回复时间等4、看看 mysql 帮助文档子查询章节的最后部分,例如,根据扫描的原理,下面的帮助文档子查询章节的最后部分,例如,根据扫描的原理,下面的子查询语子查询语 句要比关联查询的效率高句要比关联查询的效率高: 1. select e.name,e.salary where e.managerid=(select id from employee where name=zxx); 2. select e.name,e.salary,m.name,m.salary from employees e,employees m wheree.manageri

5、d = m.id and m.name=zxx;5、将姓名和密码单独从用户表中独立出来。这可以是非常好的一对一的案例哟!将姓名和密码单独从用户表中独立出来。这可以是非常好的一对一的案例哟!6、索引能提高查询的性能索引能提高查询的性能。 。 。 。 。 。 。 。 。 。 。 。 数据库三范式是什么数据库三范式是什么?(一共有(一共有 7 个范式)个范式)第一范式(第一范式(1NF):):字段具有原子性字段具有原子性,不可再分不可再分。比如年龄之类的。如果每列都是不可再分的最小数据单元(也称为最小的原子单元) ,则满足第一范式第二范式(第二范式(2NF):):如果一个关系满足 1NF,并且除了主

6、键以外的其他列,都依赖与该主键除了主键以外的其他列,都依赖与该主键,则满足第二范式(2NF) 即第二范式要求每个表只描述一件事情。即第二范式要求每个表只描述一件事情。比如订单表中包含订单编号和订单日期,但是如果还包含产品编号和产品价格,就不满足二范式了第三范式(第三范式(3NF):):如果一个关系满足 2NF,并且除了主键以外的其他列都不传递依赖于主键列主键以外的其他列都不传递依赖于主键列,则满足第三范式。简而言之,第三范式(简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。息。例如,帖子表中只能出

7、现发帖人的 id,而不能既出现发帖人的 id,还出现发帖人姓名,否则,只要出现同一发帖人 id 的所有记录,它们中的姓名部分都必须严格保持一致,这就是数据冗余。 Class.forName 的作用的作用?为什么要用为什么要用? 答:按参数中指定的字符串形式的类名去搜索并加载相应的类,如果该类字节码已经被加 载过,则返回代表该字节码的 Class 实例对象,否则,按类加载器的委托机制去搜索和加 载该类,如果所有的类加载器都无法加载到该类,则抛出 ClassNotFoundException。加载完 这个 Class 字节码后,接着就可以使用 Class 字节码的 newInstance 方法去创

8、建该类的实例 对象了。 有时候,我们程序中所有使用的具体类名在设计时(即开发时)无法确定,只有程序运行 时才能确定,这时候就需要使用 Class.forName 去动态加载该类,这个类名通常是在配置文 件中配置的,例如,spring 的 ioc 中每次依赖注入的具体类就是这样配置的,jdbc 的驱动类 名通常也是通过配置文件来配置的,以便在产品交付使用后不用修改源程序就可以更换驱 动类名。创建一个名称为创建一个名称为 wx 的用户,其密码为的用户,其密码为 wx123 CREATE USER wx IDENTIFIED BY wx123 DEFAULT TABLESPACE USERS TEM

9、PORARY TABLESPACE TEMP;GRANT 命令可用于为用户分配权限或角色命令可用于为用户分配权限或角色CONNECT 角色允许用户连接至数据库,并创建数据库对象角色允许用户连接至数据库,并创建数据库对象 GRANT CONNECT TO wx; RESOURCE 角色允许用户使用数据库中的存储空间角色允许用户使用数据库中的存储空间 GRANT RESOURCE TO wx; 此系统权限允许用户在当前模式中创建序列,此权限包含在此系统权限允许用户在当前模式中创建序列,此权限包含在 CONNECT 角色中角色中 9 GRANT CREATE SEQUENCE TO wx; 授予用户

10、授予用户 MARTIN 操作操作 TEST 表对象的权限表对象的权限 允许用户查询允许用户查询 TEST 表的记录表的记录 GRANT SELECT ON TEST TO MARTIN; 允许用户更新允许用户更新 TEST 表中的记录表中的记录 GRANT UPDATE ON TEST TO MARTIN; 允许用户插入、删除、更新和查询允许用户插入、删除、更新和查询 TEST 表中的记录表中的记录 GRANT ALL ON TEST TO MARTIN;ALTER USER 命令可用于更改口令命令可用于更改口令 修改修改 MARTIN 用户的密码用户的密码 ALTER USER wx IDE

11、NTIFIED BY PWDOFWX; DROP USER 命令用于删除用户命令用于删除用户 删除删除 MARTIN 用户模式用户模式 DROP USER wx CASCADE; 示例:示例: #把 CONNECT、RESOURCE 角色授予用户epetGRANT CONNECT,RESOURCE TO epet; #撤销用户 epet 的 RESOURCE 角色REVOKE RESOURCE FROM epet; #允许用户查看 EMP 表中的记录GRANT SELECT ON emp TO epet; #允许用户更新 EMP 表中的记录GRANT UPDATE ON emp TO epet

12、;Char 固定长度的非固定长度的非 Unicode 字符数据字符数据 Varchar/varchar2 可变长度非可变长度非 Unicode 数据数据CREATE TABLE stuInfo (sid char(13) NOT NULL , -学号 sName varchar(8) NOT NULL, -姓名 sSex char(2) NULL ,-性别sEbackground char(4) DEFAULT 高中 CHECK(sEbackground=高中 or sEbackground=大专 or sEbackground=本科) NULL ,-学历sAddress varchar(50

13、) NULL, -地址 constraint PK_sid primary key (sid) )CREATE TABLE stuMarks (smid int NOT NULL, -编号sid CHAR(13) NOT NULL, -学号computer decimal(4,2) DEFAULT 0 CHECK(computer=0 and computer=0 and C=0 and JAVA=0 and SQL=0 and JSP=0 and project= 15 AND stuAge INSERT INTO toys (toyid, toyname, toyprice) VALUES

14、 ( toys_seq.NEXTVAL, TWENTY, 25); SQL INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, MAGIC PENCIL, 75); SQLSELECT toys_seq.CURRVAL FROM dual;使用 ALTER SEQUENCE 语句修改序列,不能更改序列的 START WITH 参数 SQL ALTER SEQUENCE toys_seq MAXVALUE 5000 CYCLE;使用 DROP SEQUENCE 语句删除序列 SQL DROP SEQUENC

15、E toys_seq;视图视图当一个查询是多表连接,且该查询使用频繁时,可以考虑创建视图当一个查询是多表连接,且该查询使用频繁时,可以考虑创建视图视图以经过定制的方式显示来自一个或多个表的数据 视图可以视为“虚拟表”或“存储的查询” 创建视图所依据的表称为“基表”视图的优点有:视图的优点有:提供了另外一种级别的表安全性 隐藏的数据的复杂性 简化的用户的 SQL 命令 隔离基表结构的改变 通过重命名列,从另一个角度提供数据创建视图的语法:CREATE OR REPLACE FORCE VIEWview_name (alias, alias.) AS select_statementWITH CH

16、ECK OPTIONWITH READ ONLY;使用 WITH CHECK OPTION 选项创建视图 CREATE OR REPLACE VIEW pause_view AS SELECT * FROM order_master WHERE ostatus = p WITH CHECK OPTION CONSTRAINT chk_pv;使用 ORDER BY 子句创建视图 CREATE OR REPLACE VIEW ord_ven AS SELECT * FROM v endor_master ORDER BY venname;创建带有错误的视图 CREATE FORCE VIEW ven AS SELECT * FROM venmaster;在视图上也可以使用修改数据的 DML 语句,如 INSERT、UPDATE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号