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的消耗情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_39566715

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值