作業(yè)0926
1省骂、 一鍵安裝 mariadb 數(shù)據(jù)庫腳本
注:在centos 7 一鍵安裝 mariadb 10.5.5
#!/bin/bash
# 準(zhǔn)備環(huán)境與變量
DIR=`pwd`
NAME="mariadb-10.5.5-linux-systemd-x86_64.tar.gz"
FULL_NAME=${DIR}/${NAME}
yum install -y libaio perl-Data-Dumper libncurses* &> /dev/null
# 安裝環(huán)境檢查
if [ ! -f ${FULL_NAME} ] ; then
echo "安裝包不存在"
exit 1
fi
if [ -h /usr/local/mysql ] ; then
echo "Mysql 已經(jīng)安裝"
exit 2
fi
# mysql用戶檢查
if id mysql ; then
userdel -f -r mysql
fi
useradd -r -s /sbin/nologin mysql
# 解壓刀脏、軟鏈接局荚、文件屬性
tar xf $NAME -C /usr/local/
cd /usr/local/
ln -s /usr/local/mariadb-10.5.5-linux-systemd-x86_64 /usr/local/mysql &> /dev/null
chown -R root.root /usr/local/mysql/
# 設(shè)置PATH路徑
ln -s /usr/local/mysql/bin/* /usr/bin/ &> /dev/null
# 編輯配置文件
cp /etc/my.cnf{,.bak}
cat > /etc/my.cnf << EOF
[mysqld]
datadir=/data/mysql
skip_name_resolve
EOF
# 初始化數(shù)據(jù)庫
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql &> /dev/null
# 服務(wù)啟動腳本與開機自啟
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start
2、簡述Event 事件介紹以及它的優(yōu)缺點
事件(event)是MySQL在相應(yīng)的時刻調(diào)用的過程式數(shù)據(jù)庫對象愈污。一個事件可調(diào)用一次耀态,也可周期性的啟動,它由一個特定的線程來管理的暂雹,也就是所謂的“事件調(diào)度器”首装。
事件和觸發(fā)器類似,都是在某些事情發(fā)生的時候啟動杭跪。當(dāng)數(shù)據(jù)庫上啟動一條語句的時候仙逻,觸發(fā)器就啟動了,而事件是根據(jù)調(diào)度事件來啟動的涧尿。由于它們彼此相似桨醋,所以事件也稱為臨時性觸發(fā)器。
【優(yōu)點】一些對數(shù)據(jù)定時性操作不再依賴外部程序现斋,而直接使用數(shù)據(jù)庫本身提供的功能,可以實現(xiàn)每秒鐘
執(zhí)行一個任務(wù)偎蘸,這在一些對實時性要求較高的環(huán)境中非常實用
【缺點】定時觸發(fā)庄蹋,不可以直接調(diào)用
3瞬内、在 students 表中,查詢年齡大于25歲限书,且為男性的同學(xué)的名字和年齡:
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)
4虫蝶、在 students 表中,以 ClassID 為分組依據(jù)倦西,查詢顯示每組的平均年齡
MariaDB [hellodb]> select classid,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.000 sec)
5能真、顯示第4題中平均年齡大于30的分組及平均年齡
MariaDB [hellodb]> select classid,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.000 sec)
完