美文网首页
mysql基础(二)

mysql基础(二)

作者: Zeyu2333 | 来源:发表于2019-05-19 14:33 被阅读0次
    索引的引入

    索引定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度; 类似于图书的目录,方便快速定位,寻找指定的内容;

    索引的优缺点

    优点:提高查询数据的速度;
    缺点:创建和维护索引的时间增加了;

    索引分类

    1,普通索引
    这类索引可以创建在任何数据类型中;
    2,唯一性索引
    使用 UNIQUE 参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的;
    3,全文索引
    使用 FULLTEXT 参数可以设置,全文索引只能创建在 CHAR,VARCHAR,TEXT 类型的字段上。主要作用就是提高查询较大字符串类型的速度;只有 MyISAM 引擎支持该索引,Mysql 默认引擎不支持;
    4,单列索引
    在表中可以给单个字段创建索引,单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引;
    5,多列索引
    多列索引是在表的多个字段上创建一个索引;
    6,空间索引
    使用 SPATIAL 参数可以设置空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率;只有 MyISAM 引擎支持该索引,Mysql 默认引擎不支持;

    创建索引

    创建表的时候创建索引


    63f0e4e9d8352cecff380b0b59d7829.png
    在已经存在的表上创建索引
    CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名

    ON 表名 (属性名 [(长度)] [ ASC | DESC]);

    用 ALTER TABLE 语句来创建索引

    ALTER TABLE 表 名 ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX
    索引名 (属性名 [(长度)] [ ASC | DESC])

    删除索引

    DROP INDEX 索引名 ON 表名 ;

    视图

    视图的引入

    1,视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
    2,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
    3,使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

    创建视图

    CREATE [ ALGORITHM ={ UNDEFIEND | MERGE | TEMPTABLE }]
    VIEW 视图名 [ ( 属性清单) ]
    AS SELECT 语 句
    [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

    ALGORITHM 是可选参数,表示视图选择的算法;
    “视图名”参数表示要创建的视图的名称;
    “属性清单”是可选参数,其指定了视图中各种属性的名词,默认情况下与 SELECT 语句中查询的属性相同;

    SELECT 语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导入视图中;

    WITH CHECK OPTION 是可选参数,表似乎更新视图时要保证在该视图的权限范围之内;

    ALGORITHM 包括 3 个选项 UNDEFINED、MERGE 和 TEMPTABLE。
    UNDEFINED 选项表示 MySQL 将自动选择所要使用的算法;
    MERGE 选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分;
    TEMPTABLE 选项表示将视图的结果存入临时表,然后使用临时表执行语句;
    CASCADED 是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;LOCAL 表示更新视图时,要满足该视图本身的定义条件即可;

    查看视图

    DESCRIBE 语句查看视图基本信息
    SHOW TABLE STATUS 语句查看视图基本信息
    SHOW CREATE VIEW 语句查看视图详细信息
    在 views 表中查看视图详细信息

    修改视图
    CREATE OR REPLACE VIEW 语句修改视图

    CREATE OR REPLACE [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]
    VIEW 视图名 [( 属性清单 )]
    AS SELECT 语 句
    [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

    ALTER 语句修改视图

    ALTER [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]
    VIEW 视图名 [( 属性清单 )]
    AS SELECT 语 句
    [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

    更新视图

    更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图是一个虚拟的表,其中没有数据。通过视图更新时,都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。超出了范围,就不能更新。

    删除视图

    删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;
    DROP VIEW [ IF EXISTS ] 视图名列表 [ RESTRICT | CASCADE ]

    触发器

    触发器的引入

    触发器(TRIGGER)是由事件来触发某个操作。这些事件包括 INSERT 语句、UPDATE 语句和 DELETE 语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。

    创建与使用触发器

    1 创建只有一个执行语句的触发器
    CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件
    ON 表名 FOR EACH ROW 执行语句
    2 创建有多个执行语句的触发器
    CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件
    ON 表名 FOR EACH ROW
    BEGIN
    执行语句列表
    END

    查看触发器

    1 SHOW TRIGGERS 语句查看触发器信息
    2 在 triggers 表中查看触发器信息

    删除触发器

    DROP TRIGGER 触发器名;

    MySQL 常用函数

    日期和时间函数

    1,CURDATE() 返回当前日期;
    2,CURTIME() 返回当前时间;
    3,MONTH(d) 返回日期 d 中的月份值,范围是 1~12

    字符串函数

    1,CHAR_LENGTH(s) 计算字符串 s 的字符数;
    2,UPPER(s) 把所有字母变成大写字母;
    3,LOWER(s) 把所有字母变成小写字母;

    数字函数

    1,A BS(x) 求绝对值
    2,SQRT(x) 求平方根
    3,MOD(x,y) 求余

    加密函数

    1,PASSWORD(str) 一般对用户的密码加密 不可逆
    2,MD5(str) 普通加密 不可逆
    3,ENCODE(str,pswd_str) 加密函数,结果是一个二进制数,必须使用 BLOB 类型的字段来保存它;
    4,DECODE(crypt_str,pswd_str) 解密函数;

    相关文章

      网友评论

          本文标题:mysql基础(二)

          本文链接:https://www.haomeiwen.com/subject/hxqqzqtx.html