MYSQL的索引和常见函数

时间:2021-08-14 10:55:37

MySQL的索引


索引机制

MySQL属于关系型数据库,为了提高查询速度,可以创建索引。

索引:由表中的一个或多个字段生成的键组成,这些键存储在数据结构(B树或者hash表中),于是又分为B树索引(InnoDB和MyISAM引擎支持)和哈希索引(Memory引擎支持)。

  • 适合创建索引的字段:
    • 1、经常查询的字段;
    • 2、分组的字段(GROUP BY);
    • 3、主键和外键字段;
    • 4、唯一完整性约束的字段;

创建索引

普通索引

CREATE TABLE table-name(id int auto_increment not null, ... , INDEX index-name(column);
CREATE INDEX index-name ON table-name(column1);#已经有的表上创建普通索引
ALTER TABLE table-name ADD INDEX index-name(column);#同上

唯一索引

CREATE TABLE table-name(id int auto_increment not null, ... , UNIQUE INDEX index-name(column));
CREATE UNIQUE INDEX index-name ON table-name(column1);#已经有的表上创建唯一索引
ALTER TABLE table-name ADD UNIQUE INDEX index-name(column);#同上

全文索引

CREATE TABLE table-name(id int auto_increment not null, ... , FULLTEXT INDEX index-name(column));
CREATE FULLTEXT INDEX index-name ON table-name(column1);#已经有的表上创建全文索引
ALTER TABLE table-name ADD FULLTEXT INDEX index-name(column);#同上

多列索引

CREATE TABLE table-name(id int auto_increment not null, ... , UNIQUE INDEX index-name(column1, ...));
CREATE UNIQUE INDEX index-name ON table-name(column1, ...);#已经有的表上创建多列索引
ALTER TABLE table-name ADD UNIQUE INDEX index-name(column1, ...);#同上

删除索引

DROP INDEX index-name ON table-name;

MySQL的常见函数


字符串常用的函数

SUBSTRING(str,x,y) 返回字符串从x位置起y长度的字符串;

LOWER()和UPPER()

STRCMP(str1,str2)字符串比较

CONCAT()和CONCAT_WS()字符串拼接函数

LENGTH(str)字符串长度

CHAR_LENGTH(str)字符数

数值函数

MOD(x,y)求x模y的值

ABS(x)绝对值

CEIL(x)和FLOOR(x)#向上取整和向下取整

RAND()返回0-1内的随机数

时间日期函数

CURDATE()当前日期

CURTIME()当前时间

NOW()当前日期和时间

UNIX_TIMESTAMP(date)日期转时间戳

FROM_UNIXTIME()获取unix时间戳的日期值

WEEK()\YEAR()\HOUR()\MINUTE()\MONTHNAME()

系统函数

VERSION()

DATABASE()

USER()

IF(value,doiftrue,doifflase)

FORMAT(x,n)保留x的n位小数