MySQL 查詢,mysql event 變量_DQL--select和MySQL的Event

 2023-10-21 阅读 22 评论 0

摘要:1.在students表中,查詢年齡大于25歲,且為男性的同學的名字和年齡MySQL 查詢。MariaDB [hellodb]> select name,age from students where age>25 and gender='M';+--------------+-----+| name | age |+--------------+--

1.在students表中,查詢年齡大于25歲,且為男性的同學的名字和年齡

MySQL 查詢。MariaDB [hellodb]> select name,age from students where age>25 and gender='M';

+--------------+-----+

| name | age |

+--------------+-----+

| Xie Yanke | 53 |

| Ding Dian | 32 |

| Yu Yutong | 26 |

| Shi Qing | 46 |

| Tian Boguang | 33 |

| Xu Xian | 27 |

| Sun Dasheng | 100 |

+--------------+-----+

7 rows in set (0.000 sec)

2.在students表中,以ClassID為分組依據,查詢顯示每組的平均年齡

MariaDB [hellodb]> select classid,avg(age) avg_age from students group by classid;

+---------+---------+

| classid | avg_age |

+---------+---------+

| NULL | 63.5000 |

| 1 | 20.5000 |

| 2 | 36.0000 |

| 3 | 20.2500 |

| 4 | 24.7500 |

| 5 | 46.0000 |

| 6 | 20.7500 |

| 7 | 19.6667 |

+---------+---------+

8 rows in set (0.001 sec)

3.在students表中,以ClassID為分組依據,查詢顯示平均年齡大于30的分組及平均年齡

MariaDB [hellodb]> select classid,avg(age) avg_age from students group by classid having avg_age > 30;

+---------+---------+

| classid | avg_age |

+---------+---------+

| NULL | 63.5000 |

| 2 | 36.0000 |

| 5 | 46.0000 |

+---------+---------+

3 rows in set (0.001 sec)

Event介紹:Event,事件,是MySQL在相應的時刻調用的過程式數據庫對象。一個事件可調用一次,也可周期性的啟動,它由一個特定的線程來管理的,也就是“事件管理器”

事件的優缺點:

優點:

一些對數據定時性操作不再依賴外部程序,而直接使用數據庫本身提供的功能,可以實現每秒鐘執行一個任務,這在一些對實時性要求較高的環境下就非常使用

缺點:

定時觸發,不可以直接調用

事件和觸發器:

事件和觸發器類似,都是在某些事情發生的時候啟動。當數據庫上啟動一條語句的時候,觸發器就啟動了,而事件是根據調度事件來啟動的。由于他們彼此相似,所以事件也稱為臨時性觸發器。

事件的開啟:

--event_scheduler,event_scheduler

根據文檔,event_scheduler既是服務選項也是系統變量,那么就既可以在配置文件中寫上它從而開啟,也可以通過SET global event_scheduler=1 來開啟,當然變量方式開啟是臨時的。

通過查看線程命令可以看到event的線程 show processlist;

創建Event

CREATE

[DEFINER = {USER|CURRENT_USER}]

EVENT

[IF NOT EXISTS]

event_name

ON SCHEDULER scheduler #注釋1

[ON COMPLETION [NOT] PRESERVE] #注釋2

[ENABLE | DISABLE | DISABLE ON SLAVE] #注釋3

[COMMENT 'comment'] #這句就是代表注釋的意思

DO event_body #注釋4

注釋1:ON SCHEDULER 計劃任務

scheduler 決定event的執行時間和頻率(時間一定要是未來的時間),有兩種形式“at”,“every”

scheduler:

AT TIMESTAMP [+ INTERVAL interval] | EVERY INTERVAL [STARTS timestamp] [ENDS timestamp]

interval:

quantity {YEAR|MONTH|DAY|HOUR|MINUTE|WEEK|SECOND|...}

注釋2:ON COMPLETION [NOT] PRESERVE 默認是 ON COMPLETION NOT PRESERVE 任務執行后drop該事件;ON COMPLETION PRESERVE 就是不會DROP

注釋3:ENABLE,DISABLE 開啟或關閉事件

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/157858.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息