• MySQL易忘知识点梳理


    一、零碎知识

    1、mysql where子句区分大小写:WHERE BINARY

    2、判断是否为null,只能用is null,is not null,不能用=null或!=null

    3、函数

    4、SQL中Where与Having的区别

    • “Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。
    • “Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。

    二、事务

    • begin,rollback,commit;
    • 改变 MySQL 的自动提交模式:
      SET AUTOCOMMIT=0 禁止自动提交
      SET AUTOCOMMIT=1 开启自动提交

    三、ALTER

    1、删除,添加或修改表字段

    ALTER TABLE testalter_tbl  DROP i;
    ALTER TABLE testalter_tbl ADD i INT;
    TABLE testalter_tbl ADD i INT FIRST;// FIRST (设定位第一列)
    TABLE testalter_tbl ADD j INT AFTER c;// AFTER 字段名(设定位于某个字段之后)
    

    2、修改字段类型及名称

    ALTER TABLE testalter_tbl MODIFY c CHAR(10);
    
    ALTER TABLE testalter_tbl CHANGE j j INT;
    

    3、ALTER TABLE 对 Null 值和默认值的影响

    • 如果你不设置默认值,MySQL会自动设置该字段默认为 NULL
    ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;
    
    • 设置默认值
    ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
    
    ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
    

    4、修改表名

    ALTER TABLE testalter_tbl RENAME TO alter_tbl;
    

    5、修改存储引擎

    ALTER TABLE testalter_tbl ENGINE = MYISAM;
    

    四、索引

    实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录
    单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。
    索引可以大大提高MySQL的检索速度,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
    建立索引会占用磁盘空间的索引文件。

    1、普通索引

    CREATE INDEX indexName ON mytable(username(length)); 
    
    ALTER table tableName ADD INDEX indexName(columnName);
    
    CREATE TABLE mytable(  
     
    ID INT NOT NULL,   
     
    username VARCHAR(16) NOT NULL,  
     
    INDEX [indexName] (username(length))  
     
    );  
    

    2、唯一索引

    它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
    UNIQUE

    CREATE UNIQUE INDEX indexName ON mytable(username(length)) ;
    

    3、使用ALTER 命令添加和删除索引

    • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
    • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
    • ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
    • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。

    五、处理重复数据

    • 可以在MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。
    CREATE TABLE person_tbl
    (
       first_name CHAR(20) NOT NULL,
       last_name CHAR(20) NOT NULL,
       sex CHAR(10),
       PRIMARY KEY (last_name, first_name)
    );
    
    • 去重,用DISTINCT,或是用唯一索引做GROUP BY
    SELECT DISTINCT last_name, first_name 
    FROM person_tbl;
    
    SELECT last_name, first_name
    FROM person_tbl
    GROUP BY (last_name, first_name);
    
  • 相关阅读:
    Mysql学习笔记(十四)备份与恢复
    Mysql学习笔记(十三)权限管理
    docker容器持久化卷讲解
    logstash关于date时间处理的几种方式总结
    ELK收集tomcat状态日志
    ELK收集tomcat访问日志并存取mysql数据库案例
    利用fpm制作rpm包
    Elasticsearch一些常用操作和一些基础概念
    Linux Cluster
    LNMP下动静分离部署phpmyadmin软件包
  • 原文地址:https://www.cnblogs.com/diffx/p/10096120.html
Copyright © 2020-2023  润新知