第十四周

1、导入hellodb.sql生成数据库

(1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄

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.00 sec)

(2) 以ClassID为分组依据,显示每组的平均年龄

MariaDB [hellodb]> select classid,avg(age) from students where classid is not null group by classid;
+---------+----------+
| classid | avg(age) |
+---------+----------+
|       1 |  20.5000 |
|       2 |  36.0000 |
|       3 |  20.2500 |
|       4 |  24.7500 |
|       5 |  46.0000 |
|       6 |  20.7500 |
|       7 |  19.6667 |
+---------+----------+
7 rows in set (0.00 sec)

(3) 显示第2题中平均年龄大于30的分组及平均年龄

MariaDB [hellodb]> select s.classid,s.aage from (select classid,avg(age) as aage from students where classid is not null group by classid) as s where s.aage > 30;
+---------+---------+
| classid | aage    |
+---------+---------+
|       2 | 36.0000 |
|       5 | 46.0000 |
+---------+---------+
2 rows in set (0.00 sec)

(4) 显示以L开头的名字的同学的信息

MariaDB [hellodb]> select * from students where name like "L%";
+-------+-------------+-----+--------+---------+-----------+
| StuID | Name        | Age | Gender | ClassID | TeacherID |
+-------+-------------+-----+--------+---------+-----------+
|     8 | Lin Daiyu   |  17 | F      |       7 |      NULL |
|    14 | Lu Wushuang |  17 | F      |       3 |      NULL |
|    17 | Lin Chong   |  25 | M      |       4 |      NULL |
+-------+-------------+-----+--------+---------+-----------+
3 rows in set (0.00 sec)

2、数据库授权magedu用户,允许192.168.1.0/24网段可以连接mysql

(1)数据库服务器设置

[root@centos01 ~]#mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all on *.* to 'magedu'@'192.168.7.%' identified by '123123';
Query OK, 0 rows affected (0.00 sec)

(2)客户端连接

[root@centos02 ~]#mysql -umagedu -h192.168.7.71 -p123123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

3、总结mysql常见的存储引擎以及特点

常见存储引擎有MyISAM,InnoDB,Memory,Archive,NDB等

MyISAM

(1)引擎特点
不支持事务 
表级锁定 
读写相互阻塞,写入不能读,读时不能写 
只缓存索引 
不支持外键约束 
不支持聚簇索引 
读取数据较快,占用资源较少 
不支持MVCC(多版本并发控制机制)高并发 
崩溃恢复性较差 
MySQL5.5.5前默认的数据库引擎

(2)适用场景
只读(或者写较少)、表较小(可以接受长时间进行修复操作) 

(3)引擎文件
tbl_name.frm        表格式定义  
tbl_name.MYD        数据文件 
tbl_name.MYI        索引文件 

InnoDB

(1)引擎特点
行级锁 
支持事务,适合处理大量短期事务 
读写阻塞与事务隔离级别相关 
可缓存数据和索引 
支持聚簇索引 
崩溃恢复性更好 
支持MVCC高并发 
从MySQL5.5后支持全文索引 
从MySQL5.5.5开始为默认的数据库引擎

(2)引擎文件
所有InnoDB表的数据和索引放置于同一个表空间中 
每个表单独使用一个表空间存储表的数据和索引
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。