xml地图|网站地图|网站标签 [设为首页] [加入收藏]
数据库还原
分类:数据库

sql函数

character函数  String

1.INITCAP 首字母大小

      select initcap(address) address from student;

      select initcap('ni hao') from dual;   --dual虚拟表  '数据' 列名-数据

    2.LTRIM 从左往右截取

      select ltrim('ni hao ni', 'ni') from dual;    //hao ni

    3.RTRIM 从右往左截取

      select rtrim(‘hao ni hao', 'hao') from dual;  //hao ni

    4.CONCAT  并置运算符 || 

      select concat(stuNo, concat(' ', name)) from student;

      select stuNo || ' ' || name as info from student;

    5.SUBSTR  subString(str, begin, end)

      select substr('nihao hi helloi', 0, 10) from dual;   --包括第一位是0,也包括第10位

    6.INSTR

      select instr('nihao', 'ni') from dual;

    7.LENGTH

      select length(address) from student;

    8.RPAD

      insert into school values(rpad(88, 8, '0'), '南京大学');


重要:   

   9.LOWER

      select lower('HELLO') from dual;

  10.UPPER 

      select upper('hello') from dual;

      String inputEmail = "Bob.wang";  -- 用户名不区分大小写

      select * from users where upper(email) = upper(inputEmail);

      select * from student where upper(address) = upper('China Wuxi New Area');

  11.LPAD  --  insert PK 序列sequence

      insert into school values(lpad(88, 8, '0'), '江苏大学');

      insert into school values('S'||lpad(89, 7, '0'), '江苏科技大学');

 ---------------------------------------------------------------------------------------------------------------------------------

 数值函数  Math

    1.ABS    绝对值

      select abs(-10) from dual;

    2.CEIL >= 最小整数

      select ceil(-10.1) from dual;

    3.FLOOR  <= 最大整数

      select floor(-10.1) from dual;

    

4.POWER  求幂

      select power(10, 4) from dual;

    5.MOD    取余

      select mod(-10, 3) from dual;

    6.SQRT   开方

      select sqrt(100) from dual;

    7.TRUNC  直接截取

      select TRUNC(19.99) from dual; 

      select TRUNC(19.99281, 3) from dual;

    8.ROUND  四舍五入

      select round(19.99) from dual;        -- 20

      select round(19.99281, 3) from dual;  -- 19.993

  


 

数据库还原的操作,分两步进行:第一步,验证(verify)备份文件;第二步,根据备份策略还原数据库;

 1.首先先看下什么是MySQL。

日期函数

   1.系统时间

      select sysdate from dual;

   2. ADD_MONTHS  

计划  2014-11-25开始project做两个月 得出开始日期  结束日期

          select '25-11月-14' as "开始时间", add_months('25-11月-2014', 2) as "结束时间" from dual;

   3.GREATEST

      select greatest('25-11月-14', sysdate) from dual; 

 GREATEST 返回值列表中最大值

              格式: GREATEST(value1, value2, value3, ...)

              含义: 返回value列表最大的值。

                          Value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

                           当value值列表中有一个为NULL,则返回NULL值。

 

   4.LEAST

      select least('25-11月-14', sysdate) from dual; 

LEAST 返回值列表中最小值

            格式: LEAST(value1, value2, value3, ...)

            含义: 返回value列表最小的值。

                        value列表必须是相同类型,也可以是一个表的同一行、不同列的值进行比较。

                         当value值列表中有一个为NULL,则返回NULL值。

 

   5.LAST_DAY  月份最后一天日期

      select last_day(sysdate) from dual;

   6.MONTHS_BETWEEN返回两个日期之间的月份数。

      select MONTHS_BETWEEN('25-11月-14', sysdate) from dual; 

   

7.NEXT_DAY 下一个星期几日期  1~7  日~六

      select next_day(sysdate, 6) from dual;

   8.ROUND日期中的四舍五入   (上半月;下半月)

      select round(sysdate, 'month') from dual; 

   9.TRUNC  截取

      select trunc(sysdate, 'year') from dual;   //截取到年份 res:01-01月14

 


 

参考《backup1:开始数据库备份》,备份策略是:

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,其开放源码这一特点,使得一般中小型网站的开发都选择 MySQL 作为网站数据库。

  格式化函数

    1.隐式转换

      此转换类型中,数据类型将根据SELECT语句中函数的要求自动进行转换。 

      select add_months('10-10月-14', 1) from dual;

      select * from school where schoolcode = '00000088';

      select * from facutly where facutlyNo = 1;   -- 列中数据应为数字的char字符

    2.显式转换 

      此转换类型中,数据类型的转换通过一些预定义函数完成。转换函数有:

        日期格式化函数

          TO_DATE 

            insert into student(stuNo, name, birthDate, majorNo) 

                        values('S9722', 'John', to_date('1995-10-10', 'yyyy-mm-dd'), 'M0003');

          TO_CHAR 

            select birthDate from student;

            select to_char(birthDate, 'yyyy-mm-dd') from student;

    

 

 

 

 

 

  3.数值格式化函数

          to_number   -- 列中数据应为数字的char字符

          select to_number(schoolCode) from school where schoolcode = '00000088';

  4. nvl(值1, 值2)   若值1为空  显示值2的数据   若值1不为空显示自身值 

    select stuNo, name, nvl(javasescore, 60) from student;

    

  5.Coalesce函数  Coalesce (exp_name1, exp_name2….. exp_n)   若表达式值不为空显示

    select coalesce('', '', '', '1', 'value') from dual;

 

 


 

 

/*

 * 多行函数 

 *  把多行数据组合为一行

 */

 

 

  1. count 统计 count(*|列名)--列数据为null不参与多行函数操作
  2. select count(*)from student;--有多少学生
  3. select count(javaSEScore)from student;--有多收学生参与考试
  4. select count(*)from student where majorno ='M0001';
  5. sum
  6. select sum(javaSEScore)from student;
  7. select sum(salary)from employee;
  8. avg
  9. select avg(javaSEScore)from student;
  10. max
  11. select max(javaSEScore)from student;
  12. min
  13. select min(javaSEScore)from student;
  14. stddev 偏差
  15. select stddev(javaSEScore)from student;
  16. variance 方差
  17. select variance(javaSEScore)from student;
  18. ``
  19. --select name, count(*)from student
  20. ``
  21. ``

 

 

 

 

 

 

 

 

来自为知笔记(Wiz)

  • 一周一次完整备份,一天一次差异备份,一小时一次事务日志备份
  • 数据/日志的每次备份都使用一个单独的备份文件,数据备份的扩展名是 .bak,日志备份的扩展名是.trn

2、安装。

一,验证(Verifiy)备份文件

安装参考:

1,查看备份文件的文件列表(Data File 和 Log File)

可以从MySQL官网下载安装程序,运行 mysql-installer-community-5.7.10.0.msi 选择安装路径即可。

由于,数据或日志的每次备份,都使用一个单独的备份文件,因此,在备份文件中,只有一个backup set,File选项是1,如果不指定该File选项,默认值是1。

安装过程中创建本地服务登陆名和密码 下一步用到

RESTORE FILELISTONLY 
FROM disk = 'D:TestDBBackupFolderSitedb_bak4.bak'
--with file=1;

  图片 1

在SQL Server中,一个备份文件可以存储多个backup set,每一个backup set都是数据或日志的一次备份(完整或差异备份),这意味着,一个备份文件能够存储多个数据库备份。为了便于管理备份文件,建议,每一个备份都存储到单独的备份文件中,这样,每个备份文件只存储一次备份。

3、安装管理工具-SQLyog连接管理MySQL数据库

返回的结果集中,有三个非常重要的字段:

图片 2

  • LogicalName:文件的逻辑名称
  • PhysicalName:文件的物理名称,是文件在OS上的路径+文件名,例如,D:Program FilesMicrosoft SQL ServerMSSQLDataSitedB.mdf;
  • Type:文件的类型(L:Log File,D:Data File,F:Full Text Catalog);

 

选项:FILE = backup_set_file_number,标识被还原的backup set。

  图片 3

For example, a backup_set_file_number of 1 indicates the first backup set on the backup medium and a backup_set_file_number of 2 indicates the second backup set. When not specified, the default is 1, except for RESTORE HEADERONLY in which case all backup sets in the media set are processed.

  4、SQL语句 

2,验证(Verify)备份文件

#4.1创建数据库、数据库表 

使用Restore VerifyOnly 命令来验证备份文件的有效性,如果备份是有效的,SQL Serer返回验证成功的消息。

#一 创建/删除数据库 及数据表及插入记录 删除记录 
#如果存在数据库local_db 则删除
DROP  DATABASE IF EXISTS local_db 
#如果不存在数据库local_db 则创建
CREATE DATABASE IF NOT EXISTS local_db
USE local_db;
CREATE TABLE IF NOT EXISTS test_a03(
city VARCHAR(255),
username INT(11),
productID INT(11),
price DECIMAL(19,4),
sales INT(11),
pay_money DECIMAL(19,4),
order_time DATETIME,
salesperson VARCHAR(255),
KEY city(city),
KEY username(username)
)ENGINE INNODB DEFAULT CHARSET=utf8
#2修改表名 alter table 表名 rename 新表名
ALTER TABLE test_a03 RENAME test_a03order;
#3 插入一条记录  更新一个值
INSERT INTO test_a03order (username,pay_money,order_time) VALUES(790000000,NULL,"2013-01-02 00:01:02");

#更新pay_money空值 应该为0
UPDATE test_a03order SET pay_money=0 WHERE username=790000000 
#查询是否更新 原来是空值 现在应该是0
SELECT username,pay_money,order_time FROM test_a03order WHERE username=790000000;

#再插入一条记录 看ifnull函数效果
INSERT INTO test_a03order (username,pay_money,order_time) VALUES(790000000,NULL,"2013-01-02 00:01:02");
#4 ifnull(空值null,0) 空值 用0 替换
SELECT username,SUM(IF(order_time>"2013-01-01",pay_money,NULL)) AS pay_money1,IFNULL(SUM(pay_money),0) AS pay_money
FROM test_a03order AS a
WHERE username=790000000
#4增加/删除一个字段
ALTER TABLE `test_a03order` ADD order_date DATE
#4_1增加一个字段在指定的字段后面
ALTER TABLE `test_a03order` ADD order_date DATE AFTER `order_time`
#4_2删除一个字段
ALTER TABLE `test_a03order` DROP order_date 
#5删除数据表记录 
DELETE FROM test_a03order  WHERE username=790000000
#查询是否删除 应该全为空
SELECT username,pay_money,order_time FROM test_a03order WHERE username=7900000000;
RESTORE VERIFYONLY
FROM DISK = 'physical_backup_device_name'
[ WITH { MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,...n ] 
| FILE = backup_set_file_number }] [;]  

  

如果验证通过,SQL Server会打印备份有效的消息:

     图片 4

The backup set on file 1 is valid.

图片 5

选项 Move-To:用于验证磁盘是否有足够的Free Space来存储还原的数据库文件(Data Files 和 Log Files);

 #4.2 SQL执行顺序

Move子句指定文件的LogicalName,To子句指定文件的PhysicalName,即,存储该文件的Path+FileName,例如:

(8)  select 
(9)  distinct 
(11)  top 1
(6)   Table1.id,COUNT(Table1.name) as nameCount 
(1)  from Table1
(3)  inner join Table2
(2)  on Table1.id=Table2.id
(4)  where Table1.id<4
(5)  group by Table1.id
(7)  having Table1.id<3
(10) order by Table1.id desc
restore verifyonly
from disk = 'D:TestDBBackupFolderSitedb_bak4.bak'
with 
file=1
,move 'Site_TestDB_1' to 'D:TestDBBackupFolderSite_TestDB_1.mdf' 
,move 'Site_TestDB_2' to 'D:TestDBBackupFolderSite_TestDB_2.ndf';
,move 'site_TestDB_log' to 'D:TestDBBackupFloderSite_TestDB_log.ldf'

  

默认情况下,在还原时,数据备份和日志备份将还原到原始的位置(Original Location),如果计划将数据库复制到其他Server上,使用Move-To选项是非常必要的,在执行还原操作前,使用Restore VerifyOnly命令,检查是有有足够的Disk Space,是否有潜在的文件命名冲突。

If a RESTORE VERIFYONLY statement is used when you plan to relocate a database on the same server or copy it to a different server, the MOVE option might be necessary to verify that sufficient space is available in the target and to identify potential collisions with existing files.

二,还原数据文件

本文由澳门新葡亰手机版发布于数据库,转载请注明出处:数据库还原

上一篇:heartbeat不断重试会导致内存缓慢增长,Mail重复发 下一篇:7后导入之前数据库date出错的解决方法,学习笔记
猜你喜欢
热门排行
精彩图文