zoukankan      html  css  js  c++  java
  • 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.连接字符串参数解析

  • 相关阅读:
    I NEED A OFFER!
    水题 Codeforces Round #303 (Div. 2) A. Toy Cars
    模拟 HDOJ 5099 Comparison of Android versions
    模拟 HDOJ 5095 Linearization of the kernel functions in SVM
    贪心 HDOJ 5090 Game with Pearls
    Kruskal HDOJ 1863 畅通工程
    Kruskal HDOJ 1233 还是畅通工程
    并查集 HDOJ 1232 畅通工程
    DFS/并查集 Codeforces Round #286 (Div. 2) B
    水题 Codeforces Round #286 (Div. 2) A Mr. Kitayuta's Gift
  • 原文地址:https://www.cnblogs.com/pfwbloghome/p/15582282.html
Copyright © 2011-2022 走看看