• mysql版sql助记


    新建用户

    CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 

    [host 中 使用 % 为通配符, 匹配任意远程主机]

    赋权

    GRANT privileges ON databasename.tablename TO 'username'@'host' ;

    privileges [select / insert / update / delete / drop * ]

    查看用户

    select * from mysql.user

    插入

    insert [table] values (xxx,xxx);

    ALTER TABLE的使用

           //主要设置默认值,速度块

    ALTER TABLE [tablename] ALTER COLUMN [columname] set default 5;

    ALTER TABLE [tablename] ALTER COLUMN [columname] drop default;

    //重命名、列类型、位置修改

    ALTER TABLE [tablename] CHANGE COLUMN [oldcolumn] [newcolumn] varchar(32) NOT NULL FIRST;

    ALTER TABLE [tablename] CHANGE COLUMN [oldcolumn] [newcolumn] varchar(32) NOT NULL AFTER contents;

    //列类型、位置修改

          ALTER TABLE [tablename] MODIFY COLUMN [newcolumn] varchar(32) NOT NULL AFTER contents;

    unixtime

    select unix_timestamp("2013-10-10 23:00:00");   // 1381417200

    select from_unixtime(1381417200);                    //2013-10-10 23:00:00  

    datetime

    对于字段的时间加减date_add()

    set @dt = now();

    select date_add(@dt, interval 1 day); -- add 1 day
    select date_add(@dt, interval 1 hour); -- add 1 hour
    select date_add(@dt, interval 1 minute); -- ...
    select date_add(@dt, interval 1 second);
    select date_add(@dt, interval 1 microsecond);
    select date_add(@dt, interval 1 week);
    select date_add(@dt, interval 1 month);
    select date_add(@dt, interval 1 quarter);
    select date_add(@dt, interval 1 year);

    插入重复则更新

    INSERT ON DUPLICATE KEY UPDATE语法是原子操作,效率和语法都非常之优美.

    SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1 GROUP BY year,month; 

    bit_count函数 计算出二进制中1的个数        //例如      10->1010      bit_count(10) = 2

    外键约束的几种行为

    • cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 On delete cascade从mysql3.23.50开始可用; on update cascade从mysql4.0.8开始可用 
    • set null方式 在父表上update/delete记录时,将子表上匹配记录的列设为null 要注意子表的外键列不能为not null On delete set null从mysql3.23.50开始可用; on update set null从mysql4.0.8开始可用 
    •  No action方式 如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 这个是ANSI SQL-92标准,从mysql4.0.8开始支持 
    •  Restrict方式 同no action, 都是立即检查外键约束    . Set default方式 解析器认识这个action,但Innodb不能识别,不知道是什么意思...      注意:trigger不会受外键cascade行为的影响,即不会解发trigger

    修改外键约束

    alter table news drop foreign key news_ibfk_1;

    alter table news add constraint news_ibfk_1 foreign key(owner_id) references user(UUID) on update cascade on delete cascade; 

     

    if使用

    if(condition,expr2,expr3)   

    如果condition为真,返回expr2,否则返回expr3。

    IFNULL(expr1,expr2)

    假如expr1不为NULL,返回expr1,否则返回expr2。

    CASE column WHEN arg THEN data [WHEN arg2 THEN data2] ELSE ndata END AS alias

    当column为arg时,显示data[...],都不匹配显示ndata。

    show VARIABLES LIKE 'AUTOCOMMIT';

    设置启用或者禁用自动提交

    set SESSION TRANSACTION ISOLATION LEVEL READ COMMITED;

    可以设置4种隔离级别

    查看MySQL性能时使用的命令

    • SHOW GLOBAL STATUS
    • SHOW ENGINE INNODB STATUS
    • SHOW FULL PROCESSLIST

    转置字段(默认使用','分割)

    select group_concat(column_a) where group_by column_b;

  • 相关阅读:
    Sqlite3:Sqlite3命令行Linux操作
    Docker:docker部署Sqlite3数据库
    SpringBoot:Sqlite3+SpringBoot2.1.3+Mybatis-Puls整合项目
    Algorithm:Java加密解密之MAC(消息认证码)
    Springboot:SpringBoot2.0整合WebSocket,实现后端数据实时推送!
    windows10系统安装anaconda后CMD命令行里面的python默认版本变化的问题
    在树莓派中,minicom的一些使用方法
    树莓派软硬串口对调
    树莓派无显示屏连接wifi教程
    设备管理器添加到桌面
  • 原文地址:https://www.cnblogs.com/olenji/p/4752807.html
Copyright © 2020-2023  润新知