Java数据库知识点总结(部分,还有很多没整合进去).doc_第1页
Java数据库知识点总结(部分,还有很多没整合进去).doc_第2页
Java数据库知识点总结(部分,还有很多没整合进去).doc_第3页
Java数据库知识点总结(部分,还有很多没整合进去).doc_第4页
Java数据库知识点总结(部分,还有很多没整合进去).doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JDBC中的PreparedStatement相比Statement的好处答:一个sql命令发给服务器去执行的步骤为:语法检查,语义分析,编译成内部指令,缓存指令,执行指令等过程。select * from student where id =3-缓存-xxxxx二进制命令select * from student where id =3-直接取-xxxxx二进制命令select * from student where id =4- -会怎么干?如果当初是select * from student where id =?- -又会怎么干?1、上面说的是性能提高2、可以防止sql注入。 大数据量下的分页解决方法。答:最好的办法是利用sql语句进行分页,这样每次查询出的结果集中就只包含某页的数据内容。在sql语句无法实现分页的情况下,可以考虑对大的结果集通过游标定位方式来获取某页的数据。mysql:String sql = select * from students order by id limit + pageSize*(pageNumber-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 = 5 and id not in (select id from (select * from talk order by id) where rownum Deptment对象,现在设计时就成了employeedeptid)3、表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等4、看mysql帮助文档子查询章节的最后部分,例如,根据扫描的原理,下面的子查询语句要比关联查询的效率高:1. select ,e.salary where e.managerid=(select id from employee where name=zxx);2. select ,e.salary,,m.salary from employees e,employees m where e.managerid = m.id and =zxx;5、 将姓名和密码单独从用户表中独立出来。这可以是非常好的一对一的案例哟!6、 索引能提高查询的性能。 数据库三范式是什么?(一共有7个范式)第一范式(1NF):字段具有原子性,不可再分。比如年龄之类的。如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式第二范式(2NF):如果一个关系满足1NF,并且除了主键以外的其他列,都依赖与该主键,则满足第二范式(2NF) 即第二范式要求每个表只描述一件事情。比如订单表中包含订单编号和订单日期,但是如果还包含产品编号和产品价格,就不满足二范式了第三范式(3NF):如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,帖子表中只能出现发帖人的id,而不能既出现发帖人的id,还出现发帖人姓名,否则,只要出现同一发帖人id的所有记录,它们中的姓名部分都必须严格保持一致,这就是数据冗余。 Class.forName的作用?为什么要用? 答:按参数中指定的字符串形式的类名去搜索并加载相应的类,如果该类字节码已经被加载过,则返回代表该字节码的Class实例对象,否则,按类加载器的委托机制去搜索和加载该类,如果所有的类加载器都无法加载到该类,则抛出ClassNotFoundException。加载完这个Class字节码后,接着就可以使用Class字节码的newInstance方法去创建该类的实例对象了。有时候,我们程序中所有使用的具体类名在设计时(即开发时)无法确定,只有程序运行时才能确定,这时候就需要使用Class.forName去动态加载该类,这个类名通常是在配置文件中配置的,例如,spring的ioc中每次依赖注入的具体类就是这样配置的,jdbc的驱动类名通常也是通过配置文件来配置的,以便在产品交付使用后不用修改源程序就可以更换驱动类名。创建一个名称为 wx的用户,其密码为wx123CREATE USER wxIDENTIFIED BY wx123DEFAULT TABLESPACE USERSTEMPORARY TABLESPACE TEMP;GRANT 命令可用于为用户分配权限或角色CONNECT角色允许用户连接至数据库,并创建数据库对象GRANT CONNECT TO wx;RESOURCE角色允许用户使用数据库中的存储空间GRANT RESOURCE TO wx;此系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中9GRANT CREATE SEQUENCE TO wx; 授予用户 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 IDENTIFIED 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;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) 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 ( 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 SEQUENCE toys_seq;视图当一个查询是多表连接,且该查询使用频繁时,可以考虑创建视图视图以经过定制的方式显示来自一个或多个表的数据视图可以视为“虚拟表”或“存储的查询”创建视图所依据的表称为“基表”视图的优点有:提供了另外一种级别的表安全性隐藏的数据的复杂性简化的用户的SQL命令隔离基表结构的改变通过重命名列,从另一个角度提供数据创建视图的语法: CREATE OR REPLACE FORCE VIEW view_name (alias, alias.) AS select_statement WITH CHECK OPTION WITH READ ONLY;使用 WITH CHECK OPTION 选项创建视图CREATE OR REPLACE VIEW pause_view ASSELECT * FROM order_master WHERE ostatus = pWITH CHECK OPTION CONSTRAINT chk_pv;使用 ORDER BY 子句创建视图CREATE OR REPLACE VIEW ord_ven ASSELECT * FROM v endor_master ORDER BY venname;创建带有错误的视图CREATE FORCE VIEW ven ASSELECT * FROM venmaster;在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE索引索引的优点:索引是与表相关的一个可选结构用以提高 SQL 语句执行的性能减少磁盘I/O使用 CREATE INDEX 语句创建索引在逻辑上和物理上都独立于表的数据Oracle 自动维护索引索引的类型:1、 标准索引创建:CREATE INDEX item_index ON itemfile (itemcode)修改:ALTER INDEX item_index REBUILD; 删除:DROP INDEX item_index; 2、唯一索引唯一索引确保在定义索引的列中没有重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论