• MYSQL题目练习以及profile


    题1:
    创建一个存储引擎为InnoDB ,字符集为GBK的表TEST ,字段为ID和NAMEVARCHAR(16),并查看表结构完成下列要求:
    ①插入一条数据:1,newlhr。
    ②批量插入数据:2,小麦苗;3,ximaimiao。要求中文不能乱码。
    ③首先查询名字为newlhr的记录,然后查询ID大于1的记录。
    ④把数据ID等于1的名字newlhr更改为oldlhr。
    ⑤在字段NAME前插入AGE字段,类型为TINYINT(4)。
    答案:

    
    ```sql
    #1
    CREATE TABLE TEST ( 
    ID  INT ( 4 ) NOT NULL,
    NAME VARCHAR ( 20 ) NOT NULL 
    ) ENGINE = INNODB DEFAULT charset = GBK;
    #2
    INSERT INTO TEST(ID,NAME) VALUES(1,"newhr");
    #3
    INSERT INTO TEST VALUES(2,"小麦"),(3,"xiaomai");
     #4
     update TEST set NAME="OLDHR" WHERE ID = 1;
     #5
     ALTER TABLE TEST ADD AGE TINYINT(4) AFTER ID;
    

    题2:
    有如下表结构,其中,NAME字段代表“姓名”,SCORE字段代表“分数”。
    在这里插入图片描述

      CREATE TABLE T1(
       ID DOUBLE,
         NAME VARCHAR(30),
         SCORE DOUBLE
        );
    		
    
    
    INSERT INTO T1 VALUES ( 1, "N1", 59 ),( 2, 'N1', 66 ),
    ( 3, 'N3', 78 ),
    ( 4, 'N4', 74 ),
    ( 5, 'N5', 51 ),
    ( 6, 'N2', 67 ),
    ( 7, 'N1', 48 ),
    ( 8, 'N4', 85 ),
    ( 9, 'N4', 98 ),
    ( 10, 'N3', 88 );
    
    

    1)查询单分数最高的人和单分数最低的人。
    2)查询两门分数加起来的第2~5名。
    3)查询两门总分数在150分以下的人。
    4)查询两门平均分数介于60和80的人。
    5)查询总分大于150分,平均分小于90分的人数。
    6)查询总分大于150分,平均分小于90分的人数有几个。

    SELECT  * FROM T1 WHERE SCORE IN(SELECT MAX(SCORE) FROM T1 UNION ALL SELECT MIN(SCORE) FROM T1);
    SELECT NAME,SUM(SCORE) FROM T1 GROUP BY NAME ORDER BY SUM(SCORE) DESC LIMIT 1,4;
    SELECT NAME,SUM(SCORE) FROM T1 GROUP BY NAME HAVING SUM(SCORE)<150;
    SELECT NAME,AVG(SCORE) FROM T1 GROUP BY NAME HAVING AVG(SCORE) BETWEEN 60 AND 80;
    SELECT NAME ,AVG(SCORE) ,SUM(SCORE) FROM T1 GROUP BY NAME HAVING AVG(SCORE)<90 AND SUM(SCORE)>150;
    SELECT count(NAME) FROM T1 GROUP BY NAME HAVING AVG(SCORE)<90 AND SUM(SCORE)>150;
    
    

    MySQL中的IFNULL()有什么作用?

    使用IFNULL()方法能使MySQL中的查询更加精确。IFNULL()方法将会测试它的第一个参数,若不为NULL,则返回该参数的值,否则返回第二个参数的值.

    profile的意义及使用场景
    MySQL可以使用profile分析SQL语句的性能消耗情况。例如,查询到SQL会执行多少时间,并看出CPU、内存使用量,执行过程中系统锁及表锁的花费时间等信息。
    通过have_profiling参数可以查看MySQL是否支持profile,通过profiling参数可以查看当前系统profile是否开启:
    show variable like “%profil%”
    以下是有关profile的一些常用命令。
    ●set profiling=1;:基于会话级别开启,关闭则用set profiling=off。
    ●show profile cpu for query 1;:查看CPU的消耗情况。
    ●show profile memory for query 1;:查看内存消耗情况。
    ●show profile block io,cpu for query 1;:查看I/O及CPU的消耗情况。

    不经一番彻骨寒,哪有梅花扑鼻香?
  • 相关阅读:
    史玉柱语录
    马云语录
    打开IE窗口自动最大化效果
    两个DIV平行存放
    学习ExtJS(一)
    30而立男人必须明白的事
    学习ExtJS(二) Button常用方法
    UltraWebGrid控件在开发ASP.NET项目中的使用方法和技巧(转)
    GridView模板列DropDownList当前行索引
    TreeView触发TreeNodeCheckChanged事件
  • 原文地址:https://www.cnblogs.com/zongyao/p/13831093.html
Copyright © 2020-2023  润新知