1、 导入hellodb.sql生成数据库
[root@centos7 ~]#mysql < hellodb.sql
[root@centos7 ~]#mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 5.5.68-MariaDB MariaDB Server
Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| hellodb |
| mysql |
| performance_schema |
| test |
±-------------------+
5 rows in set (0.00 sec)
(1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄
MariaDB [(none)]> use hellodb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [hellodb]> show tables;
±------------------+
| Tables_in_hellodb |
±------------------+
| classes |
| coc |
| courses |
| scores |
| students |
| teachers |
| toc |
±------------------+
7 rows in set (0.00 sec)
MariaDB [hellodb]> select * from students;
±------±--------------±----±-------±--------±----------+
| StuID | Name | Age | Gender | ClassID | TeacherID |
±------±--------------±----±-------±--------±----------+
| 1 | Shi Zhongyu | 22 | M | 2 | 3 |
| 2 | Shi Potian | 22 | M | 1 | 7 |
| 3 | Xie Yanke | 53 | M | 2 | 16 |
| 4 | Ding Dian | 32 | M | 4 | 4 |
| 5 | Yu Yutong | 26 | M | 3 | 1 |
| 6 | Shi Qing | 46 | M | 5 | NULL |
| 7 | Xi Ren | 19 | F | 3 | NULL |
| 8 | Lin Daiyu | 17 | F | 7 | NULL |
| 9 | Ren Yingying | 20 | F | 6 | NULL |
| 10 | Yue Lingshan | 19 | F | 3 | NULL |
| 11 | Yuan Chengzhi | 23 | M | 6 | NULL |
| 12 | Wen Qingqing | 19 | F | 1 | NULL |
| 13 | Tian Boguang | 33 | M | 2 | NULL |
| 14 | Lu Wushuang | 17 | F | 3 | NULL |
| 15 | Duan Yu | 19 | M | 4 | NULL |
| 16 | Xu Zhu | 21 | M | 1 | NULL |
| 17 | Lin Chong | 25 | M | 4 | NULL |
| 18 | Hua Rong | 23 | M | 7 | NULL |
| 19 | Xue Baochai | 18 | F | 6 | NULL |
| 20 | Diao Chan | 19 | F | 7 | NULL |
| 21 | Huang Yueying | 22 | F | 6 | NULL |
| 22 | Xiao Qiao | 20 | F | 1 | NULL |
| 23 | Ma Chao | 23 | M | 4 | NULL |
| 24 | Xu Xian | 27 | M | NULL | NULL |
| 25 | Sun Dasheng | 100 | M | NULL | NULL |
±------±--------------±----±-------±--------±----------+
25 rows in set (0.00 sec)
MariaDB [hellodb]> select Name as 名字,Age as 年龄 from students where Age >25 and Gender = ‘M’;
±-------------±-------+
| 名字 | 年龄 |
±-------------±-------+
| 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)
MariaDB [hellodb]>
(2) 以ClassID为分组依据,显示每组的平均年龄
MariaDB [hellodb]> select ClassID as 班级号,avg(Age) as 平均年龄 from students group by Classid;
±----------±-------------+
| 班级号 | 平均年龄 |
±----------±-------------+
| 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.00 sec)
(3) 显示第2题中平均年龄大于30的分组及平均年龄
MariaDB [hellodb]> select ClassID as 班级号,avg(Age) as 平均年龄 from students group by Classid having 平均年龄 > 30;
±----------±-------------+
| 班级号 | 平均年龄 |
±----------±-------------+
| NULL | 63.5000 |
| 2 | 36.0000 |
| 5 | 46.0000 |
±----------±-------------+
3 rows in set (0.00 sec)
MariaDB [hellodb]>
(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)
MariaDB [hellodb]>
2、数据库授权magedu用户,允许192.168.1.0/24网段可以连接mysql
3、总结mysql常见的存储引擎以及特点。
转载于:https://blog.csdn.net/weixin_41459547/article/details/87929431
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以成为表类型)(及存储和操作此表的类型)。
Oracle和Sql Server等数据库只有一种存储引擎,也就是InnoDB。
下面介绍Mysql常见存储引擎:
1、InnoDB存储引擎(MySQL默认存储引擎)
特点:
· 提供的功能:事务、回滚、奔溃修复能力和多版本并发控制的事务安全。
· 是Mysql是第一个提供外键约束的表引擎。
· 支持自动增长列AUTO_INCREMENT(Mysql中规定自动增长列的必须为主键)。
优缺点:
· 优势在于提供了良好的事务管理、奔溃修复能力和并发控制。
· 缺点是读写效率稍差,占用的数据空间相对比较大。
适用场合:
· 更新密集的表:InnoDB存储引擎特别适合处理多重并发的更新请求。
· 事务:InnoDB存储引擎是唯一支持事务的标准MySQL存储引擎,这是管理敏感数据(如金融信息和用户注册信息)的必须软件
· 自动灾难恢复:与其他存储引擎不一样,InnoDB表能够自动从灾难中恢复。虽然MyISAM表也能在灾难后修复,但其过程要长的多
附:
· InnoDB可提供高效的ACID特性,具体的ACID特性可参考其他相关文章。
2、MyISAM存储引擎
前身:
· MyISAM存储引擎是基于ISAM存储引擎发展起来的。
文件类型(MyISAM储存引擎的表存储成3个文件,文件名与表名相同,扩展名包括frm、myd、myi):
· frm:存储表的结构;
· myd:存储数据,是MYData的缩写;
· myi:存储索引,是MYIndex的缩写;
存储格式:
· MyISAM静态:如果所有表列的大小都是静态的(即不使用xBLOB、xTEXT或者VARCHAR数据类型),MySQL就会自动使用静态MyISAM格式,使用这种类型的表的性能非常高,因为在访问和维护以预定义格式存储的数据时需要很低的开销,但是却要以控件为代价。
· MyISAM动态:如果有表列(及时只有一列)定义为动态的(使用xBLOB、xTEXT、VARCHAR),MySQL就会自动使用动态格式。虽然MyISAM动态表占用的空间比静态格式所占空间少,但空间的节省带来了性能的下降。如果某个字段的内容发生改变,其位置很可能就需要移动,这会导致碎片的产生。随着数据集中的碎片增加,数据访问性能就会相应降低。这个问题有两种修复方法:
a. 尽可能使用静态数据类型。
b. 经常使用OPTIMIZE TABLE语句,他会整理表的碎片,恢复由于表更新和删除而导致的空间丢失。
· MyISAM压缩:有时会创建在整个应用程序生命周期中都只读的表。如果是这种情况,就可以使用myisampack工具将其转换为MyISAM压缩表来减少空间。在给定硬件配置情况下,性能的提升将相当显著。
优缺点:
· MyISAM存储引擎的优势在于占用空间小,处理速度快,缺点是不支持事务和并发性。
3、MEMORY存储引擎
前言:
MEMORY存储引擎是MySQL中的一类特殊的存储引擎。其使用存储在内存中的内容来创建表,而且所有数据也放在内存中。
MEMORY存储引擎的文件存储形式:
· 每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm。该文件只存储表的结构。而其数据文件都是存储在内存中。这样有利于对数据的快速处理,提高整个表的处理效率。
MEMORY存储引擎的索引类型:
· MEMORY存储引擎默认使用哈希(HASH)索引。其速度要比使用BTREE索引快。
MEMORY存储引擎的存储周期:
· MEMORY存储引擎通常很少用到。因为MEMORY表的所有数据都是存储在内存上的,如果内存出现异常就会影响到数据的完整性。如果重启机器或者关机,表中的所有数据都会消失。因此MEMORY存储引擎的表生命周期很短,一般都是一次性的。
MEMORY存储引擎的优缺点:
· MEMORY表的大小是受到限制的。表的大小主要取决于两个参数,分别是max_rows和max_heap_table_size。其中,max_rows可以在创建表时指定:max_heap_table_size的大小默认为16MB,可以按需要进行扩大。因其存在内存中的特性,这类表的处理速度非常快。但是其数据容易丢失,生命周期短。(注意:mysqld守护进程奔溃时,所有的MEMORY数据都会丢失)
· MEMORY表不支持VARCHAR、BLOB、TEXT数据类型,因为这种表类型按固定长度的记录格式存储。此外,如果使用版本4.1.0之前的MySQL,这不支持自动增长列。
适用场景:
· 暂时:目标数据只是临时需要,在其生命周期中必须立即可用。
· 相对无关:存储在MEMORY表中的数据如果突然丢失,不会对应用服务产生实质的负面影响,而且不会对数据完整性有长期影响。