MySQL数据库相关操作

  • MySQL简介
  • 表的相关操作:创建、删除表
  • 表字段的相关操作:添加字段、删除字段、修改字段、修改类型
  • 触发器
  • 创建触发器
  • 触发器类型
  • 存储过程
  • 存储过程的优点
  • 创建存储过程(带参数、不带参数)
  • 调用存储过程
  • MySQL索引

 

MySQL

  简介:

    MySQL是一个关系型数据库管理系统,目前属于ORACLE。采用SQL标准化语言,并且体积小、速度快、成本低和开源的特点,搭配PHP、Apache可组成良好的开发环境。

  MySQL语法:

    表操作:创建表、删除表(彻底删除)

      create table t_user(

      id int primary key auto_increament comment '自增主键id',

      name varchar(12) not null comment '姓名',

      ……

      );

      drop table t_user;

 

 

    字段操作:修改字段类型、修改字段名称、添加字段、删除字段

      alter table t_user

        modify column age varchar(12);

        change name XXname varchar(12) not null comment '修改名称';

        add column age int  not null comment '年龄' after name;

        drop name;

 

    触发器(Trigger):

      触发器是与表有关的数据库对象,在满足定义的条件时候触发,并执行触发器中定义的语句集合。

      触发器可以协助应用在数据库端的完整性。

 

      例如:

        有一张【用户表】和【日志表】,当一个用户创建时,就需要在日志表中创建一条相关的记录。触发器不仅能够添加,还能进行删除、修改。

 

    创建触发器:

      语法:

        

        create trigger 【tr_触发器名称】 【触发器类型】 on 【对哪一张表创建触发器】for each row

        begin

          执行语句

        end

 

      • for each row:用来表示只要目标表中任何操作符合该触发器的类型,它都将执行该触发器。

 

       例子:

        create trigger tr_userInfo  after INSERT on t_studentinfo for each row
        begin

          declare acounts varchar(12) character set utf8;#声明两个变量
          declare times varchar(12) character set utf8;

          set acounts = NEW.acount;#获取到插入的值
          set times = '2018-4-15';

          insert into  t_studentinfolog(acount,time) value(acounts,times);
        end

 

        触发器类型:

        • 执行之前触发:Before Insert、Update、Delete;
        • 执行之后触发:After Insert、Update、Delete;

 

        注意:

        • NEW.字段名:获取插入数据的acount字段数据;
        • declare:用来声明变量;
        • OLD.字段名:获取删除数据的字段数据;

 

      

  存储过程:

          SQL语句需要先编译后执行,然而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,程序员在通过指定存储过程名称并且给定所需                                参数(存储过程存在参数的话)来进行调用。

        存储过程优点:

        • 增强SQL语句的灵活性和功能;
        • 标准组件式编程;
        • 较快的执行速度;
        • 减少网络流量;
        • 作为一种安全机制来使用;

 

       创建存储过程:

          语法:

            create procedure 【存储过程名】(参数,,,)

            begin

              语句;

            end

 

          例子:根据id查询数据表中的数据量

          create procedure pro_student_count()

          begin

            select COUNT(id) from t_studentInfo;

          end

          

       调用存储过程:

          call pro_student_count();

        

       例子:根据学号、姓名为条件创建存储过程

          create procedura pro_query_student(in _name varchar(12),in _acount varchar(12))

          begin

            select * from t_studentInfo where name=_name and acount =_acount;

          end

 

          call pro_query_student('韩雨舫','14612200036');

 

          注意:

          • 在记忆存储过程时,可以将它看作是自定义的一个函数,存储过程的名称就是函数名,它可以带参数,也可以不带参数,但是一定要加“()”;
          • 其中的参数 需要使用 IN 关键字进行定义说明,参数需要指定数据类型

 

  MySQL索引

    简介:在MySQL数据库中,如果数据库没有创建索引,那么假如有100万条数据,那么在数据库进行查询的时候,它会逐一的进行查找搜索,而如果创建了B-Tree索引,将会大大的减少数据库查询的时间。

    MySQL索引包括:

      • 普通索引:最基本的索引,它没有任何的限制;
        • 直接创建表索引:create index 【索引名称】 on 【为哪张表创建索引】(【对应字段】(【字段长度】));
        • 例子:create index indexAcount on t_studentInfo(acount(12));
        • 修改表结构创建索引:alter table 【表名】add index 【索引名】(【字段】(字段类型长度));
        • 注意:
            • 对应字段中的字段长度,如果是varchar类型,length可以小于实际长度;
            • 如果字段类型为blob、text,必须指定同长度的length;
        • 删除索引drop index 【索引名称】 on 【所在表表明】
        • 例子:drop index indexAcount on t_studentInfo
      •  唯一索引:它与普通索引类似,但是索引列的值必须是唯一的,而且允许为空;
        • 直接创建表索引:create  unique index 【索引名称】on 【对应的表】(【对应字段】(【字段长度】));
        • 例子:createunique index indexAcount on t_studentinfo(acount(12));
      •  全文索引(FULLTEXT):fullText索引仅可用于MyISAM表中,它可以从char、varchar或text列创建索引。所以对于大容量的全文索引,生成索引时将会耗费大量硬盘空间;
        • 直接创建语法:create FULLTEXT index 【索引名称】on 【对应的表】(【对应字段】);
        • 修改表结构添加索引:alter table 【对应的表】add fulltext index 【索引名称】(【对应字段名】);
      •  组合索引:因为在平时查询的时候,会有条件限制,所以就需要添加组合索引来优化查询效率;
        • 直接创建:create index 【索引名称】on 【所在表名称】(【字段一】(【类型长度】),【字段二】(【类型长度】),……);
        • 例子:create index index_name_pwd on t_studentInfo(name(12),pwd(18));

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

个人理解,不喜勿碰,欢迎指点,持续更新~

posted @ 2018-04-15 22:21  麋鹿森林h  阅读(139)  评论(0编辑  收藏  举报