zoukankan      html  css  js  c++  java
  • 拓展

    1、数据备份
    --备份方式:俩种备份方式
    1、通过客户端工具,直接导入,导出
    2、通过mysqldump -uroot -proot 数据库名称>数据库的导出路径(c:mydb.sql)
    2、跨数据库查询:
    select * from database1.talbe union all
    select * from database2.table
    select ename,case when dno=20 then '财务部' when dno=30 then '市场部' end from emp
    3、索引
    》》索引类型:NORMAL(常规)、unique(唯一)、full text(全文)
    ** normal:普通索引,没有任何约束的索引
    ** 主键索引:有不可重复和不能为空约束
    ** 唯一索引:具有唯一性
    ** 组合索引:多个字段联合索引
    ** 全文索引:文本全文搜索,类似于一个搜索引擎,模糊检索,用于文本类型的字段
    注意事项:
    --每个表不可以建太多索引,最好不超过5条
    --不能建立在可以为空的字段上
    --索引使用的时候,不能出现,<> != is null 模糊查询的时候不可以必须存在索引的第一个字段等;

    》》索引方法:btree、HASH
    btree:适用于范围查找
    hash:基于hash的存储方式,所以不适合范围查找,适用于 = in <= >=等精确查找

    MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL:
    . cascade方式
    在父表上update/delete记录时,同步update/delete掉子表的匹配记录

    . set null方式
    在父表上update/delete记录时,将子表上匹配记录的列设为null
    要注意子表的外键列不能为not null

    . No action方式
    如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作

    . Restrict方式
    同no action, 都是立即检查外键约束

    . Set default方式
    父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别

    4、视图:是一种虚拟存在的表其内容与真实的表相似,包含一系列带有名称的列和行数据。
    但是视图并不在数据库中以存储的数据的形式存在。行和列的数据来自定义视图时查询所引用的基本表,
    并且在具体引用视图时动态生成。
    **特点:
    视图的特点如下:
    <1> 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系;
    <2> 视图是由基本表(实表)产生的表(虚表);
    <3> 视图的建立和删除不影响基本表;
    <4> 对视图内容的更新(增改)直接影响基本表;
    <5> 当视图来自多个基本表时,不允许添加和删除数据。
    **创建视图用法:
    (1).第一类:create view vv as select * from table;
    (2).第二类:create view vv as select id,name,age from table;
    (3).第三类:create view vv(vid,vname,vage) as select id,name,age from table;
    **查询视图:
    select * from test_view1 写法和正常的查询语句一致;
    **应用场景:通常用在报表查询

    5、存储过程(函数):存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,
    经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数
    (如果该存储过程带有参数)来调用执行它。
    一.存储过程的优点:
    1、存储过程增强了mysql语句的功能和灵活性,因为存储过程是一个编程过程,不局限在只执行一段语句
    2、存储过程执行效率较快,因为存储过程是一堆编译好的预处理命令,可以直接运行
    3、安全性高
    二.创建存储过程
    create procedure sp_name()
    begin
    .........
    end
    示例1:不带参数的存储过程
    create PROCEDURE sp()
    begin
    select * from emp;
    end
    示例二:带输入参数的
    create PROCEDURE sp1(in p1 INT)
    begin
    select * from emp where empno=p1;
    end
    CALL sp1(123)
    示例三:带输出参数的
    create PROCEDURE sp2(out p2 INT)
    begin
    set p2=(select count(*) from emp);
    end
    CALL sp2(@aa);
    select @aa;
    示例四:多个输出参数的
    create PROCEDURE sp3(out p1 INT,out p2 DECIMAL)
    begin
    select count(*),sum(sal) into p1,p2 from emp;
    end
    CALL sp3(@a,@b);
    select @a,@b;
    示例五:流程控制语句 if elseif
    create PROCEDURE sp4(in num1 int ,out num3 int)
    begin
    declare num int;
    declare v1,v2,v3 int;
    set num=10;
    set v1=20;
    if num1=1 then
    select count(*) into num3 from emp;
    elseif num1=2 then
    select sum(sal) into num3 from emp;
    else
    select avg(sal) into num3 from emp;
    end if;
    end

    CALL sp4(2,@b);
    select @b;
    示例六:循环控制语句
    create PROCEDURE sp5()
    begin
    declare id int default 0;
    set id=0;
    while id<10 do
    insert into depart values(id,'aa','bb');
    set id=id+1;
    end while;
    end

    CALL sp5();

    三.调用存储过程
    1.基本语法:call sp_name()
    2.如果需要接收参数,括号里定义@参数名
    3、然后用select @参数名 查询存储过程返回的结果;
    注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递

    四.删除存储过程
    1.基本语法:
    drop procedure sp_name;


    五;创建计划任务
    show variables like '%sche%'; 先查看定时任务的是否开启
    set global event_scheduler =1

    6、常用函数库:

    https://blog.csdn.net/sinat_38899493/article/details/78710482

  • 相关阅读:
    融云使用
    cocoaPods使用
    电脑硬件
    拖图UI和纯代码UI
    7.2内存管理-ARC
    7内存管理-MRC
    数据刷新
    5.1音频播放
    2.6核心动画
    Git常用操作
  • 原文地址:https://www.cnblogs.com/0307lmy/p/11510029.html
Copyright © 2011-2022 走看看