zoukankan      html  css  js  c++  java
  • 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));

        

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

  • 相关阅读:
    输入输出,数据类型,运算符
    queue与pair
    迪杰斯特拉算法学习
    IP地址/数字表示学习
    作业与进程的关系
    直写和回写学习
    OS中的时空局部性
    scanpy包的预处理函数学习
    keras编译与训练过程
    力扣:前缀和、差分题目
  • 原文地址:https://www.cnblogs.com/mysouler/p/8849843.html
Copyright © 2011-2022 走看看