MYSQL的索引和常見函數


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位小數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM