zoukankan      html  css  js  c++  java
  • mysql-基本命令与索引

    基本SQL命令

    库管理

    创建库(指定字符集):create database 库名 default charset = utf-8;
    查看创建库的语句:show create database 库名;
    切换库:use 库名;
    查看当前所在库:select database();
    查看库中已有表:show tables;
    删除库:drop database 库名;
    

    表管理

    创建表(指定字符集):CREATE TABLES 表名(字段名,数据类型,...)DEFAULT CHARSET = UTF-8;
    查看创建表的语句(字符集和存储引擎):show create table 表名;
    查看表结构:desc 表名;
    删除表:drop table 表名;
    表记录管理:
        插入:insert into 表名 values(),(),...; 
              insert into 表名(字段名列表) values(),(),...;
        查询:select * from 表名;
              select 字段名1,字段名2,...from 表名;
        删除:delete from 表名 where 条件;
        更新:update 表名 set 字段名=值1,...where 条件;
    表字段管理:
        添加:alter table 表名 add 字段名 数据类型 first ;
              alter table 表名 add 字段名 数据类型 after 字段名;
        修改:alter table 表名 drop 字段名;
        字段重命名: alter table 表名 change 旧字段名 新字段名 数据类型;
        表的重命名: alter table 表名 rename 新表名;
    

    修改默认字符集

    cd /etc/mysql/mysql.conf.d/
    cp -p mysqld.cnf mysqld.cnf.bak
    vi mysqld.cnf
         [mysqld]
         character_set_server = utf-8
    /etc/init.d/mysql restart
    

    SQL查询

    排序:order by 字段名 ASC/DESC 升序/降序
    范围:limit m,n  #放在最后
    聚合函数:avg(),sum(),max(),min(),count(字段名)##Null不会被统计
    分组:group by 
    过滤:having  #having与group by联合使用,用来过滤由group by语句返回的记录集
                  #where只能操作表中实际存在的列,having则可以操作聚合函数生成的显示列
    去重:distinct
    

    索引
    mysql索引的数据结构为B Tree
    优点:可以加快数据的检索速度
    缺点:需要动态维护,降低了数据的维护速度,索引占用物理空间
    索引性能分析:

    • 开启性能分析:set profiling = 1
    • 创建索引字段: create index 索引名 on 表名(字段名)
    • 执行sql命令
    • 查看性能分析结果:show profiling

    索引分类

    普通索引:index
        创建:create index 索引名  on 表名(字段名)
    唯一索引:UNI,字段值可以为空,但不允许重复
        创建:create unique index 索引名  on 表名(字段名)
        删除:只能一个一个删
            show index from 表名;
            drop index 索引名 on 表名;
    主键索引:PRI,字段值不能为空且不允许重复
        一个表中只能有一个字段为主键字段
        创建:alter table 表名 add primary key(字段名)  
        删除:先删除自增长属性 alter table 表名 modify 字段名 数据类型;
              删除主键 alter table 表名 drop primary key;
        已有表添加主键索引:alter table 表名 motify 字段名 数据类型 auto_increment;
    外键索引:让当前表字段值在另外一个表字段范围内去选择
        创建:foreigin key(参考字段名)
              reference 被参考表名(被参考字段名)
              on delete 级联动作
              on update 级联动作
              alter table 表名 add foregin key(...)...
        级联动作:cascade 同步更新
                  restrict 默认
                  set null 
                  no action
        删除:alter table 表名 drop foreign key 外键名;
              
        
    
  • 相关阅读:
    199. 二叉树的右视图
    二叉树前、中、后、层次、遍历的非递归法
    奇思妙想
    917. 仅仅反转字母【双指针】
    JVM性能监控与故障处理工具
    Java线程池使用和常用参数(待续)
    MySQL常用知识
    手写常用算法
    LightOj 1170
    逆元总结
  • 原文地址:https://www.cnblogs.com/miloli/p/12447436.html
Copyright © 2011-2022 走看看