• mysql基础语法


    快捷键【MySQL Workbench】
    1.执行整篇sql脚本: Ctrl+ Shift + Enter
    2.执行当前行: Ctrl + Enter
    3.注释/取消注释: Ctrl + /
     
    关闭mysql安全更新模式【执行更新语句时,不能通过非主键条件更新,则执行如下语句关闭安全模式】
    SET SQL_SAFE_UPDATES = 0;
     
    打开mysql安全更新模式
    SET SQL_SAFE_UPDATES = 1;
     
    1.mysql数据库生成poco实体模型
    SELECT
        COLUMN_TYPE,
        CONCAT(
            'public ',
            CASE
        WHEN LEFT (COLUMN_TYPE, 3) = 'int' THEN
            'int'
        WHEN LEFT (COLUMN_TYPE, 7) = 'tinyint' THEN
            'byte'
        WHEN LEFT (COLUMN_TYPE, 8) = 'smallint' THEN
            'short'
        WHEN LEFT (COLUMN_TYPE, 6) = 'bigint' THEN
            'long'
        WHEN LEFT (COLUMN_TYPE, 5) = 'float' THEN
            'float'
        WHEN LEFT (COLUMN_TYPE, 5) = 'double' THEN
            'double'
        WHEN LEFT (COLUMN_TYPE, 7) = 'decimal' THEN
            'decimal'
        WHEN LEFT (COLUMN_TYPE, 4) = 'char' THEN
            'string'
        WHEN LEFT (COLUMN_TYPE, 7) = 'varchar' THEN
            'string'
        WHEN LEFT (COLUMN_TYPE, 4) = 'text' THEN
            'string'
        WHEN LEFT (COLUMN_TYPE, 8) = 'datetime' THEN
            'DateTime'
        WHEN LEFT (COLUMN_TYPE, 4) = 'time' THEN
            'DateTime'
        WHEN LEFT (COLUMN_TYPE, 4) = 'date' THEN
            'DateTime'
        ELSE
            COLUMN_TYPE
        END,
        ' ',
        COLUMN_NAME,
        '{get;set;}'
        )
    FROM
        information_schema. COLUMNS
    WHERE
        table_name = '表名称'  
    AND table_schema = '数据库名称';
     
    2.分页语法(limit和offset用法)
    mysql里分页一般用limit来实现
    1. select* from article LIMIT 1,3
    2. select * from article LIMIT 3 OFFSET 1
    上面两种写法都表示取2,3,4三条条数据
     
    当limit后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量,例如
    select* from article LIMIT 1,3 就是跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据
    当 limit后面跟一个参数的时候,该参数表示要取的数据的数量
    例如 select* from article LIMIT 3  表示直接取前三条数据,类似sqlserver里的top语法。
    当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量 。
    例如select * from article LIMIT 3 OFFSET 1 表示跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据
     
    3.资源查询
    show full processlist   /*查看当前处于连接未关闭状态的进程列表*/
    下面针对每列做下介绍:
    Id:链接mysql 服务器线程的唯一标识,可以通过kill来终止此线程的链接。
    User:当前线程链接数据库的用户
    Host:显示这个语句是从哪个ip 的哪个端口上发出的。可用来追踪出问题语句的用户
    db: 线程链接的数据库,如果没有则为null
    Command: 显示当前连接的执行的命令,一般就是休眠或空闲(sleep),查询(query),连接(connect)
    Time: 线程处在当前状态的时间,单位是秒
    State:显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态,一个 sql语句,已查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成
    Info: 线程执行的sql语句,如果没有语句执行则为null。这个语句可以使客户端发来的执行语句也可以是内部执行的语句
    由于Command的状态大部分都是sleep对我们分析问题没什么作用,所以我们可以通过如下语句来排除sleep状态的线程:

    -- 查询非 Sleep 状态的链接,按消耗时间倒序展示,自己加条件过滤
    select id, db, user, host, command, time, state, info
    from information_schema.processlist
    where command != 'Sleep'
    order by time desc 

    这样就过滤出来哪些是正在工作的,然后按照消耗时间倒叙展示,排在最前面的,极大可能就是有问题的链接了,然后查看 info 一列,就能看到具体执行的什么 SQL 语句了,针对分析 

    4.连接字符串参数解析

  • 相关阅读:
    99%的人都理解错了HTTP中GET与POST的区别
    CSS3 Border-image
    Tween.js的使用示例
    HTML5的postMessage使用记要
    Vuejs——(2)Vue生命周期,数据,手动挂载,指令,过滤器
    nodejs ejs 请求路径和静态资源文件路径
    JS逗号运算符的用法详解
    toStirng()与Object.prototype.toString.call()方法浅谈
    正则表达式之 贪婪与非贪婪模式
    利用符号进行的类型转换,转换成数字类型 ~~
  • 原文地址:https://www.cnblogs.com/pfwbloghome/p/15582282.html
Copyright © 2020-2023  润新知