mysql数据库相关操作_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 ont_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 【对应的表】(【对应字段】(【字段长度】));

例子:createuniqueindex indexAcounton 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));

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值