自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

原创 数据库备份和还原

简介 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏的时候可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点。数据库备份可以手动备份和语句备份。一.手动备份数据库 1:鼠标右键选择你要进行备份的数据库—任务—备份 可以在常规选项页面选择,备份类型可以是进行完整数据库备份还是差异数据库备份2:点击添加选项,选择数据库文件的存放路径 注

2018-02-21 10:21:44 480

转载 Oracle数据库分页的三种方法

注意 不能对rownum使用>(大于1的数值)、>=(大于或等于1的数值)、=(大于或等于1的数值),否则无结果,所以直接用只能从1开始。rownum>10没有记录,因为第一条不满足去掉的话,第二条rownum又成了1,所以永远没有满足条件的记录。select * from student where rownum>=1;如果想要rownum不从1开始,需...

2018-02-20 16:57:40 1246

转载 Oracle分页详解(二)

如何获取雇员表中薪水最高的前五人? select * from(select * from emp order by sal desc) where rownum<6如何获取雇员表中薪水排名第5的雇员信息 select * from(select * from emp order by sal desc) where rownum=5; 查询不出结果,同样rownum>=5查询第5名之后的也失

2018-02-20 16:20:25 254

原创 Oracle分页详解(一)

1:采用rownum关键字select * from( select A.*,rownum num from( select * from t_order)A where rownum&lt;=15) where num&gt;=5)返回第5-15行数据2:采用row_number解析函数进行分页select a.* from ( ...

2018-02-20 15:02:47 762

原创 SQL注入总结

SQL注入的原理 利用数据库对特殊标识符的解析强行从页面向后台传入,改变SQL语句结构,达到扩展权限、创建高等级用户、强行修改用户资料等操作。所谓的SQL注入,就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。对于java数据库连接JDBC而言,SQL注入攻击只对Statement有效,对PreparedStatement是无效的,这

2018-02-19 09:40:01 315

原创 关于自连接

什么时候用自连接? 假如现在有两张表,A表和B表 如果需要查询两张表有相同的数据的时候用等值连接。 如果要查询A表中相关信息,可以用自连接。 如果要查询A表中的所有数据,但又想找到B表中的系统数据的时候,可以用外连接。select a.ename ,a.empno ,b.ename ,b.empno from emp a,emp b where a.mgr = b.emp

2018-02-18 18:32:53 3051

转载 MySQL优化总结—查询总条数

1:count(*)和count(col) COUNT(*)通常是对主键进行索引扫描,而COUNT(COL)就不一定了,另外前者是统计表中的所有符合的纪录总数,而后者是计算表中所有符合的COL的纪录数。还有有区别的。优化总结,对于MyISAM表来说:1.任何情况下SELECT COUNT(*) FROM tablename是最优选择;2.尽量减少SELECT COUNT(*) FROMtablen

2018-02-15 15:12:49 1922

转载 MYSQL查询优化:limit 1避免全表扫描

在某些情况下,如果明知道查询结果只有1个,SQL语句中使用Limit 1会提高查询效率每个用户的email是唯一的,如果用户使用email作为用户名登录的话,就需要查询出email对应的一条记录select * from t_user where email=?上面的语句实现了查询email对应的一条用户信息,但是由于email这一列没有加索引,会导致全表扫描,效率会很低。select * from

2018-02-15 15:03:07 1083

原创 MySQL查询优化:连接查询排序limit(join、order by、limit语句)

两张表连接查询并limit,SQL效率很高,但是加上order by之后,语句的执行时间变得巨长,效率巨低例:连接两张表查询出前10个people,按tname排序select * from t_people p left join t_team t on p.team_id=t_id order by p.pname limit 1;这是第一反应写出的SQL,通俗易懂。执行...

2018-02-15 14:51:57 776

原创 用子查询来代替非主键连接查询

现在要查询pname是 xxg的people和team信息select * from t_team t,t_people p where t.tname=p.team_name and p.pname='xxg' limit 1;SELECT * FROM t_team t INNER JOIN t_people p ON t.tname=p.team_name WHERE p.p...

2018-02-15 14:36:11 1202

转载 数据库分区的常见操作

修改已有表举例:ALTER TABLE bj_infoPARTITION BY RANGE(id) PARTITIONS 14(PARTITION part_00yntai VALUES LESS THAN (610001),PARTITION part_01shxia VALUES LESS THAN (1220001),PARTITION part_02zhfu VALUE...

2018-02-15 12:38:47 381

转载 MySQL分区类型

根据所使用的不同分区规则可以分成几大分区类型 RANGE分区(基于属于一个给定连续区间的列值,把多行分配给分区)create table foo_range( id int not null auto_increment, created Datetime, primary key(id,created))engine=InnoDB partition by ran...

2018-02-15 12:36:50 188

原创 数据库之分区表

如果一张表的数据量太大的话,那么myd,myi就会变得很大,查找数据就会变得很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数据太大,可能一个C盘放不下,这个时候,我们可以把数据分配到不同的磁盘里去。通俗的讲表分区是将一大表,根据条件分割成若干个小

2018-02-15 12:23:53 3486 1

原创 MySQL语句练习

1.建库建表--create database companycreate database company;use company;–部门表create table dept(deptno int(3) primary key,dname varchar(14),loc varchar(13));–雇员表create table emp(emp...

2018-02-12 19:56:20 244

转载 MySQL数据库入门练习200句

代码//重建数据库101, create database testdatabase;use database testdatabase;102, create table tt1(id int, name varchar(20),age int,sex boolean);103, show tables;desc tt1;//插入104, insert into tt1 va...

2018-02-12 14:35:11 216

转载 MySQL数据库入门练习100句

代码//登录和退出数据库1:mysql -u root -p//输入密码2: exit3: mysql -u root -p//数据库创建,删除,进入数据库4:CREATE DATABASE `testdatabase`;5: CREATE DATABASE `testdatabase`;6:DROP DATABASE `testdatabase`;7: CREATE D...

2018-02-12 14:33:10 304

转载 数据库事务处理

MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关:  MyISAM:不支持事务,用于只读程序提高性能 InnoDB:支持ACID事务、行级锁、并发 一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行。换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的。如果在事务的任何操作失败,则整个事务将失败。    事务有以下四个标准属性的缩

2018-02-12 12:35:42 334

转载 子查询和连接表

有如下两张表:部门表和教师表 1、查询出招生部门所有男老师姓名(子查询放在where语句中)select tname, deptno from teacher where gender='男' and deptno in (select deptno from dept where dname='招生部');select tname,deptno from teacher ...

2018-02-11 16:40:28 1557

原创 MySQL之分组数据

1:数据分组 下列例子返回供应商1003提供的产品数目:select count(*) as num_prodsfrom productswhere vend_id=1003但如果要返回每个供应商提供的产品数目怎么办?或者返回之提供单项产品的供应商所提供的产品,或返回提供10个以上的产品的供应商怎么办?这时就需要用到分组了,分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。select

2018-02-11 11:57:11 223

转载 MySQL数据处理函数

有时从数据库表中获取到的数据须要进行一些处理。 如将小写字母替换为对应的大写字母。这个处理过程能够在客户机上进行。也能够在数据库上进行。数据库上进行会更高效。数据库中有对应的数据处理函数来处理这些数据,可是在SQL中使用特殊的数据处理函数会减少其可移植性。不同的DBMS系统,其数据处理函数不同。大多数的SQL支持下面类型的函数 用于处理文本串的函数,如删除、填充值、转换大写和小写; ...

2018-02-11 11:26:14 184

原创 SQL语句总结

建表语句CREATE TABLE students (sno VARCHAR(3) NOT NULL, sname VARCHAR(4) NOT NULL, ssex VARCHAR(2) NOT NULL, sbirthday DATETIME, class VARCHAR(5))CREATE TABLE courses (cno VARCHAR(5) NOT NULL,...

2018-02-10 14:51:52 813

原创 SQL分页查询及in

IN 操作符 IN 操作符允许我们在 WHERE 子句中规定多个值.(单列多行) SQL IN 语法SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...)实例select * from student where TsClassId in(select tsclass...

2018-02-10 10:14:20 444

原创 SQL多条件查询子查询

多条件搜索时where 1=1并不高效,如果使用这种方法,在数据库中会做全表查询(对每行数据都进行扫描比对),会无法使用索引等优化查询的策略,建立的索引会暂时失效。Case函数(case必须和end一起使用,下接when then)select 数学成绩=(case when Math>100 then '优', when Math>90 then '良', when

2018-02-10 10:09:22 9575

原创 前后端分离总结

使用jsp的痛点: 1.动态资源和静态资源全部耦合在一起,无法做到真正的动静分离。服务器压力大,因为服务器会收到各种http请求,例如css的http请求,js的,图片的,动态代码的等等。一旦服务器出现状况,前后台一起玩完,用户体验极差。2.前端工程师做好html后,需要由java工程师来将html修改成jsp页面,出错率较高(因为页面中经常会出现大量的js代码),修改问题时需要双方协同开发,效率

2018-02-10 09:27:31 447

转载 sql存储过程简单例子

例1: create proc proc_stu @sname varchar(20), @pwd varchar(20) as select * from ren where sname=@sname and pwd=@pwd go 查看结果:proc_stu ‘admin’,’admin’例2: 下面的存储过程实现用户验证的功能,如果不成功,返回0,成功则返回1....

2018-02-09 21:09:42 404

转载 数据库之视图实例

一个视图是一个或一组SQL语句,存储在数据库中相关的名称,一个视图实际上是一个预定义的SQL查询中的表的形式组成。 一个视图可以包含一个表的所有行,或选择表中的行,从一个或多个表上写SQL查询创建一个视图,视图可以被创建。这是一种虚拟表的视图,允许用户执行以下操作: 1:发现自然或直观的用户或用户类的结构数据的形式 2:限制访问的数据,例如,用户可以看到和修改正是他们所需要的并没有更多 ...

2018-02-08 17:22:21 3022

转载 游标使用实例

1:声明游标; 2:打开游标; 3:从一个游标中查找信息; 4:关闭游标; 5:释放游标;创建游标游标用declare语句创建,declare命名游标,并定义相关的select语句,根据需要带where和其他子句。下面定义了名为order的游标,使用可以检索所有订单的select语句create procedure p()begin declare order c...

2018-02-08 16:51:20 1077

转载 数据库中视图的作用

视图是从一个或几个基本表(视图)导出的表,它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中,所以基本表的数据发生变化,从视图中查询出来的数据也就随之改变了,从这个意义上讲,视图就像个窗口,透过它可以看出数据库中自己感兴趣的数据及其变化。既然视图的定义是基于基本表的,那为什么还要定义视图呢?这是因为合理的使用视图能够带来许多好处: 1:视图能

2018-02-08 16:11:11 6491

原创 Web分页显示内容之分页查询的三种思路(三)

其三:在服务端分页。跳到第n页才查询、显示第n页内容。要点就是根据客户端表格的“页面”计算出数据库要查询的当前页面的第一条记录的位置。优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。重点在于两条语句:select count(*) from …:查询得到记录总条数select * from .. limit pageNo,rowsCount:查询从第pageNo条开始的ro...

2018-02-05 22:59:04 1357 1

转载 Web分页显示内容之分页查询的三种思路(二)

其二:一次查询,分批显示就是说,我们可以执行一个数据库查询操作,得到结果集rs。然后,通过指针的移动来显示当前页面的记录。这样,就可以以 rs.absolute(当前页面号*每页记录数)定位到当前页的第一条记录,然后通过while循环显示n条记录(n为每页显示记录数)。在跳页时,只需修改currentPage,即可在重定位到下一页时把当前页面号改掉,重新定位记录指针,通过while遍历显示n条记

2018-02-05 15:40:27 1069

转载 Web分页显示内容之分页查询的三种思路(一)

在开发过程中,经常做的一件事,也是最基本的事,就是从数据库中查询数据,然后在客户端显示出来。当数据少时,可以在一个页面内显示完成。然而,如果查询记录是几百条、上千条呢?直接一个页面显示完全的话,表格得多长啊。。。。。。这时,我们可以用分页技术。何为分页?效果图如下: 这里总共查询了100条记录,如果一次性显示的话表格会很多行,用户体验不佳。而我们采用分页显示的话,一页显示10条记录,共十页。用户可

2018-02-05 15:29:46 2623

原创 数据库之分页查询

1:分页需求 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySQL数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们的分页语句,具体的分析如下:实例: 查询第1条到第10条的数据的sql是:select * from table limit 0,10;

2018-02-05 14:48:27 639

原创 数据库触发器总结

1:instead of触发器和before/after触发器区别 当你往表插入数据时,若使用after/before insert触发器,只要不出错,最终都会把数据插入到表中。 若使用 INSTEAD OF INSERT 触发器,数据并不会插入表,它只是触发一个操作。当然,这个操作内你也可以把触发数据插入到表中。 ‘代替’,就是不再执行被代替的语句,而是执行触发器里的语句...

2018-02-05 10:01:35 1144

原创 数据库触发器(一)

触发器:定义是说某个条件成立的时候,你触发器里面所定义的语句就会被自动的执行,因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好了的,触发器可以分为语句级触发器和行级触发器,简单地说就是语句级的触发器,可以在某些语句执行前或执行后被触发,而行级触发器则是在定义的触发的表中的行数据改变时就会被触发一次。示例: 1:在一个表中定义的语句级的触发器,当这个表

2018-02-05 09:42:37 393

转载 MySQL数据库事务处理

概念:事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 例如:A向B转账100元,对应于如下两条sql语句:update from account set money=money+100 where name=’b’; update from account set money=money-100 where name=’a’;数据库默认事务是自动提交的,也就是发

2018-02-04 15:15:48 211

转载 数据库存储过程总结

存储过程 1:创建存储过程create proc stu_proc1as select count(*) from studentexec stu_proc1 执行2:修改、删除、重命名alter proc stu_proc1as select * from studentdrop proc stu_proc1as select * from studentrename proc stu_

2018-02-04 14:08:44 1048

转载 数据库触发器(二)

触发器:一种特殊的存储过程,存储过程一般通过定义的名字直接调用,而触发器是通过增、删、改进行触发执行,会在事件发生时自动强制执行。常见触发器:after(for) 或instead of用于insert、update、delete事件。基本语法:creeate trigger 触发器的名字 on 操作表for|after instead ofupdate|insert|deleteasSQL

2018-02-04 11:30:41 149

原创 SQL之通配符总结

方括号([])通配符方括号( [] )用来指定一个字符集,他必须匹配指定位置(通配符的位置)的一个字符(也就是说必须指定通配符的位置,也就是需要检索的字符的位置)。我们需要检索出sname列值中以’张’或’王’开头的学生,下面是解决代码:select * from dbo.student where sname like '[张王]%'select * from dbo.student where

2018-02-04 10:13:06 643

转载 恒生电子实施面试题

1 、 – Create table 作者信息表create table AUTHORS(AU_ID NUMBER,AU_NAME VARCHAR2( 64 ),PHONE VARCHAR2( 64 ),AGE NUMBER,ADDRESS VARCHAR2( 64 ),CITY VARCHAR2( 64 ),STATE VARCHAR2( 64 ),ZIP VAR

2018-02-03 22:51:49 6003

原创 常用的验证工具类

public class ValidUtils { private static final String mobile = "^(13|15|18|17|16)[0-9]{9}$"; private static final String codeAndMobile = "^\\+[0-9]{2}\\-(13|15|18|17|16)[0-9]{9}$"; /**整数*/

2018-02-03 15:17:25 273

停车场管理系统

停车场管理系统javaweb项目

2017-08-21

网上购物商场

java网上购物商场

2017-08-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除