MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地( 二 )

内置函数参考博客:https://www.cnblogs.com/wupeiqi/articles/5713323.html 十分感谢!
自建函数delimiter //create function f1(arg1 int, arg2 int)returns intbegin declare num int; set nuim = arg1 + arg2; return (num);end//delimiter ;
在创建函数的时候报错:
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
需要 调用命令: set global log_bin_trust_function_creators=TRUE;就可以了 。

MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
函数与存储过程的不同点:
1.函数里不能返写SQL语句,存储过程可以 。
但函数中可以这样使用:
set id = 0;
select nid into id form student where name = ‘damon‘;
2.函数通过return返回返回值,存储过程通过参数返回返回值 。
删除函数:
drop fucntion f1;调用函数;
select f1(1, 2);
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
 五 索引
索引是数据库中专门用于快速查找数据的一种数据结构,其内部使用红黑查找树,所以可以快速查找到数据 。功能:建立索引加快寻找;约束;
种类:
普通索引:加速查找;
唯一索引:加速查找,约束列数据不能重复,可以为null;
主键索引:加速查找,约束列数据不能重复,不可以为Null;
组合索引:多列组合创建一个索引文件;
1. 普通索引
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
create table tb1( nid int not null auto_increment primary key, name varchar(20) not null, index ix_name(name)}--创建表时,将name列作为索引创建表+索引
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
create index ix_name on tb1(name)创建索引
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
drop ix_name on tb1删除索引
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
show index from tb1查看索引注意:如果创建索引是BLOB或者TEXT类型时,需要指定长度 。
2. 唯一索引
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
【MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地】create table tb2( nid int null auto_increment primary key, name varchar(20) not null, unique ix_name(name))创建表+唯一索引
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地

文章插图
create unique index ix_name on tb2(name)创建唯一索引
MySQL教程5 MySQL8存储引起 2.MySQL8锁策略 学习猿地