zoukankan      html  css  js  c++  java
  • MySQL常用功能语句分类总结

    C(创建型功能)

    1. 创建数据库:CREATE DATABASE
    2. 创建用户:CREATE USER 用户名@主机 IDENTIFIED BY 密码; -- 如果想让该用户可以从任意远程主机登陆,可以使用通配符%
    3. 授权:GRANT ALL PRIVILEGES|权限列表 ON 库名.*|库名.表名 TO 用户名 IDENTIFIED BY 密码 WITH GRANT OPTION
    4. 如果想让用户可以对其他用户授权,需加上WITH GRANT OPTION

    5. 创建表:CREATE TABLE(字段名 数据类型 约束)引擎类型 字符集
    6. 创建索引:
      • CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX [USING 索引类型] 索引名 ON 表名 (列名1[, 列名2 …]);
      • 普通索引:ALTER TABLE 表名 ADD INDEX 索引名 (列名1[, 列名2 …]
      • 主键索引:ALTER TABLE 表名 ADD PRIMARY KEY(列名)
      • 唯一索引:ALTER TABLE 表名 ADD UNIQUE 索引名(列名)
    7. 插入数据:INSERT INTO TABLE 表名(列名1[, 列名2 …]) VALUES(值1[, 值2 …])

    R(查询型功能)

    1. DBMS信息:
    2. 数据表信息
      • 查看表:SHOW TABLES; DESC 表名
      • 查看表索引:SHOW INDEX FROM|IN 表名;
    3. 查看用户的权限:SHOW GRANTS FOR 用户名@主机;

    U(更新型功能)

    1. 重命名表:ALTER TABLE 原表名 RENAME [TO] 新表名
    2. 设置与更改用户密码:
      • 为其它用户设置:SET PASSWORD FOR 用户名@主机 = PASSWORD(密码);
      • 为当前登陆用户设置:SET PASSWORD = PASSWORD(密码);
    3. 添加列:
      • 新列在表最后面:ALTER TABLE 表名 ADD 列名 类型 约束
      • 新列在某列后面:ALTER TABLE 表名 ADD 列名 类型 约束 AFTER 某列
      • 新列加在最前面:ALTER TABLE 表名 ADD 列名 类型 约束 FIRST
    4. 修改列:
    5. 重建索引:REPAIR TABLE 表名 QUICK;
    6. 更新数据:UPDATE TABLE 表名 SET 列名1=值1[, 列名2=值2 …] WHERE 条件

    D(删除型功能)

    1. 删除数据库:DROP DATABASE [IF EXISTS] 库名
    2. 删除表:DROP TABLE [IF EXISTS] 表名 -- 对于不存在的表,使用IF EXISTS防止错误发生
    3. 删除列:ALTER TABLE 表名 DROP 列名
    4. 删除索引:DROP INDEX可以在ALTER TABLE内部作为一条语句处理
      • DROP INDEX 索引名 ON 表名(列名1[, 列名2 …]);
      • ALTER TABLE 表名 DROP INDEX|UNIQUE|PRIMARY KEY 索引名(列名1[, 列名2 …]);
    5. 删除用户:DROP USER 用户名@主机;
    6. 撤销用户权限:
    7. REVOKE privilege ON 库名.表名 FROM 用户名@主机;

      注意:[REVOKE SELECT ON *.* FROM ‘pig’@’%’]不能撤销[GRANT SELECT ON test.user TO ‘pig’@’%’]对用户pig的SELECT授权;[REVOKE SELECT ON test.user FROM ‘pig’@’%’]不能撤销[GRANT SELECT ON *.* TO ‘pig’@’%’]对用户pig的SELECT授权

    备注:

    • 对列名编制前缀索引:

    对于CHAR和VARCHAR类型的列,只用列的一部分就可创建索引。创建索引时,使用“列名(length)”语法对前缀编制索引,意为前缀包括每列值的前length个字符,例如:

    CREATE INDEX customer_index ON customer (name(10));

    对列名编制前缀索引的好处是减小索引文件的大小,有可能提高INSERT操作的速度。

    BLOB和TEXT列也可以编制索引,但是必须给出前缀长度。

     

    前缀最长为255字节。对于MyISAM和InnoDB表,前缀最长为1000字节。注意前缀的限长以字节计,而CREATE INDEX语句中的前缀长度指的是字符的数目。对于使用多字节字符集的列,在指定列的前缀长度时,要考虑这一点。

     

    在MySQL中,只有使用MyISAM, InnoDB或BDB表类型时,才可以向有NULL值的列及BLOB或TEXT类型的列建立索引。

     

    一个索引列可以以ASC或DESC为结尾。这些关键词将来可以扩展,用于指定递增或递减索引值存储。目前,这些关键词被分析,但是被忽略;索引值均以递增顺序存储,例如:

    CREATE INDEX customer_index ON customer (name(10) DESC);

     
    • 索引类型:
    • 存储引擎

      允许的索引类型

      MyISAM

      BTREE

      InnoDB

      BTREE

      MEMORY/HEAP

      HASH, BTREE

    FULLTEXT索引只能对CHAR, VARCHAR和TEXT列编制索引,并且只能在MyISAM表中编制。

    SPATIAL索引只能对空间列编制索引,并且只能在MyISAM表中编制。

    • 关于索引创建

    向表的列添加唯一约束和主键约束时也会为这些列默认创建索引。

  • 相关阅读:
    Django使用redis
    Django中static media的简单配置
    套接字,TCP,UDP
    nginx常用配置
    使用systemctl管理nginx
    jumpserver 安装
    elasticsearch7.x集群安装(含head、bigdesk、kibana插件)
    codepush安装
    mysql优化后的主配置文件
    nginx优化、负载均衡、rewrite
  • 原文地址:https://www.cnblogs.com/mark-chan/p/5382178.html
Copyright © 2011-2022 走看看