一、查询语句类型:
  1)简单查询
  2)多表查询
  3)子查询

  4)联合查询

1)简单查询:
  SELECT * FROM tb_name;
  SELECT field1,field2 FROM tb_name;投影
  SELECT [DISTINCT] * FROM tb_name WHERE qualification;选择

  FROM子句:要查询的关系
    表、多个表、其他select语句
  WHERE子句:布尔关系表达式
    AND,OR,NOT,BETWEEN...AND...,LIKE ''[%:任意长度任意字符;_:任意单个字符],RLIKE,IN,IS NULL,IS NOT NULL
    ORDER BY field_name {ASC|DESC}
    AS 字段别名
    LIMIT [offset,]Count offset偏移量,Count取几个
    聚合:
      SUM(),MIN(),MAX(),AVG(),COUNT()
    GROUP BY分组:
      HAVING:过滤[qualification]
  SELECT AVG(Age) FROM students GROUP BY Gender;
  ELECT COUNT(CID1) AS Persons,CID1 FROM students GROUP BY CID1;
  SELECT COUNT(CID1) AS Persons,CID1 FROM students GROUP BY CID1 HAVING Persons>=2;

  SQL语句执行的顺序:
    start->from->where->group by->having->order by->select fieldN->LIMIT->end

2)多表查询:
  连接:
  交叉连接:笛卡尔积
  select * from students,courses;
  自然连接:内连接,外链接:左外连接:... LEFT JOIN ... ON ...,右外连接:... RIGHT JOIN ... ON ...,自连接
  select * from students,courses where students.cid1 = courses.cid;
  select Name,Cname from students,courses where students.cid1 = courses.cid;
  select s.Name,c.Cname from students AS s,courses AS c where s.cid1 = c.cid;
  SELECT s.Name,c.Cname FROM students AS s LEFT JOIN courses AS c ON s.CID1=c.CID1;
  SELECT s.Name,c.Cname FROM students AS s RIGHT JOIN courses AS c ON s.CID1=c.CID1;

3)子查询:
  比较操作中使用子查询:子查询只能返回单个值
  IN():使用子查询
  在FROM中使用子查询
  select name from students where Age > (select AVG(Age) from students);
  select name from students where Age IN (select Age from tutors);
  select Name,Age from (SELECT Name,Age FROM students) AS t where t.Age >= 20;

4)联合查询:
  UNION:
  (select Nmae,Age FROM students) UNION (select Tname,Age from tutors);

二、备份和还原
  备份:
    select * into OUTFILE '/path/beifen.txt' from tb_name [where clause];
  恢复:
    LOAD DATA INFILE '/path/beifen.txt' INTO TABLE tb_name;

LVM快照备份和还原:
  前提:
    1、数据文件要在逻辑卷上;
    2、此逻辑卷所在卷组必须有足够空间使用快照卷;
    3、数据文件和事务日志要在同一个逻辑卷上;

  步骤:
  1、打开会话,施加读锁,锁定所有表:
    mysql> FLUSH TABLES WITH READ LOCK;
    mysql> FLUSH LOGS;
  2、通过另一个终端,保存二进制日志文件及相关位置信息:
    $mysql -uroot -p -e "SHOW MASTER STATUS\G" > /path/master.info
  3、创建快照卷:
    #lvcreate -L [size] -s -p r -n LV_NAME /path/source_lv
  4、释放锁:
    mysql> UNLOCK TABLES;
  5、挂载快照卷,备份:
    #mount LV_NAME /mnt -o ro
    #cp -a ./* /backup/
    #rm -f /backup/mysql-bin.*
  6、删除快照卷:
    #lvremove --force LV_NAME
  7、增量备份二进制日志[从master.info文件的位置开始备份,如果还有其他滚动的二进制文件单独备份即可]:
    #mysqlbinlog --start-post=107 mysql-bin.000003 mysql-bin.000004> /backup/incremental.sql
  8、还原数据:
    #cp -a /bakcup/* /mysql/data/
    #service mysqld start
    mysql> set sql_log_bin=0;
    mysql> source /backup/incremental.sql;
    mysql> set sql_log_bin=1;
    mysql> SHOW MASTER STATUS\G;

扩展:

MySQL创建表的三种方式:

  1)直接手动创建:

    mysql> create table tb_name(feild1-N);

  2)基于其他表创建新表,这种方式创建的表不会把原表的主键,约束,触发器等复制过来,需要手动在追加。

    mysql> create table test_new as select * from test where 1=2;    //where 1=2只有表结构没有数据,where 1=1包括表结构和表数据一起复制了

  3)基于原表创建的新表,这种方式使用like关键字会将原表的结构都复制过来,包括主键,约束,触发器等。

    mysql> create table test like tb_name;

[原创]MySQL数据库查询和LVM备份还原学习笔记记录的更多相关文章

  1. MySQL数据库应用 从入门到精通 学习笔记

    以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...

  2. MySQL/MariaDB数据库的mysqldump工具备份还原实战

    MySQL/MariaDB数据库的mysqldump工具备份还原实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mysqldump概述 1>.逻辑备份工具 mysq ...

  3. SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原

    原文:SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原 --作业定时压缩脚本 多库批量操作 DECLARE @DatabaseName NVARCHAR(50) DECLARE @ ...

  4. mysql数据库查询pdo的用法

    最早的php对mysql数据库查询是mysql和mysqli方法,后来php的新版本进一步封住了该方法,于是又pdo,抛开php框架,使用pdo查询数据,使用也是相当简便 <?php ini_s ...

  5. 提高MySQL数据库查询效率的几个技巧(转载)

    [size=5][color=Red]提高MySQL数据库查询效率的几个技巧(转)[/color][/size]      MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用.我 ...

  6. centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾

    centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾 系统:centos6.5 1.创建脚本目录 mkdir -p /usr/local/sh/ 创建备份web ...

  7. 将从mysql数据库查询的信息,遍历到List<>以及一些随机数的生成

    将从mysql数据库查询的信息,遍历到List<>以及一些随机数的生成. 代码比较乱,但是方法还是对的,大家又需要的选择看,希望对博友 有帮助,欢迎留言分享! public class s ...

  8. MySQL 数据库查询数据,过滤重复数据保留一条数据---(MySQL中的row_number变相实现方法)

    转自: http://www.maomao365.com/?p=10564 摘要: 下文讲述MySQL数据库查询重复数据时,只保留一条数据的方法 实现思路: 在MySQL数据库中没有row_numbe ...

  9. Mysql多实例安装+主从复制+读写分离 -学习笔记

    Mysql多实例安装+主从复制+读写分离 -学习笔记 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px ...

随机推荐

  1. Windows实用小工具-问题步骤记录器

    今晚给大家介绍个实用的好工具,可以做简单的问题记录,再也不用截图加注释这么辛苦了····· 经测试,这东东在win7,2008 及2008R2里适用,也就是说,在win7以上的系统中才有.好了,下面直 ...

  2. 《Microsoft编写优质无错C程序秘诀》提纲

    第1章 假想的编译程序1.使用编译程序所有的可选警告设施2.使用lint来查出编译程序漏掉的错误3.如果有单元测试,就进行单元测试第2章 自己设计并使用断言1.既要维护程序的交付版本,又要维护程序的调 ...

  3. C#获取字符串宽度像素

    通过Graphics对象的MeasureString方法可以获取字符串的大小,如下: Graphics graphics = CreateGraphics(); SizeF sizeF = graph ...

  4. 可视化文件消息收发一体化Socket实现V0.1

    http://blog.csdn.net/laoyang360/article/details/8681918

  5. windows qt 使用c++ posix接口编写多线程程序(真神奇)good

    一.多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序.一般情况下,两种类型的多任务处理:基于进程和基于线程.基于进程的多任务处理是程序的并发执行.基于线程的多任务处理 ...

  6. Qt:正确判断文件、文件夹是否存在的方法

    一直对Qt的isFile.isDir.exists这几个方法感到混乱,不知道到底用哪个,网上搜了下资料,也是用这几个方法但是都没有对其深究,经过测试发现会存在问题,先看看下面的测试代码 { QFile ...

  7. QT---Native Wifi functions 应用(WiFi有密码连接)

    实现功能     无线网卡列表     无线热点扫面     无线连接(有密码,配置文件连接方式)     无线断开     重命名本地无线名(两种方式)     删除无线配置文件     开启和关闭 ...

  8. 高并发 Nginx+Lua OpenResty系列(8)——Lua模版渲染

    模版渲染 动态web网页开发是Web开发中一个常见的场景,比如像京东商品详情页,其页面逻辑是非常复杂的,需要使用模板技术来实现.而Lua中也有许多模板引擎,如目前京东在使用的lua-resty-tem ...

  9. bean 解析、注册、实例化流程源码剖析

    本spring源码的版本:4.3.7 Spring bean的加载主要分为以下6步: (1)读取XML配置文件 (2)XML文件解析为document文档 (3)解析bean (4)注册bean (5 ...

  10. Hexo+NexT(一):在Windows下安装Hexo+NexT及搭建博客

    阅读本篇之前,假定读者已经有了Node.js的基础,如需要补充Node.js知识的,请自行百度. Hexo是在Node.js框架下的一个项目,利用Node.js提供的强大功能,完成从Markdown到 ...