震惊君的Linux之旅 ------ MYSQL查询语言与存储引擎

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

在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)

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

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

MariaDB [hellodb]> select * from (select ClassID ,AVG(age) avg_age from students group by ClassID) a where a.avg_age>30;
±--------±--------+
| ClassID | avg_age |
±--------±--------+
| NULL | 63.5000 |
| 2 | 36.0000 |
| 5 | 46.0000 |
±--------±--------+
3 rows in set (0.00 sec)

OR

select ClassID ,AVG(age) avg_age from students group by ClassID having avg_age >30;

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

MariaDB [hellodb]> select * from students where name regexp ‘^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)

OR

select * from students where name like ‘L%’;

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

先创建用户,也可通过 GRANT命令直接授权加创建(但之后版本可能取消该功能)

CREATE user 'magedu'@'192.168.1.%' IDENTIFIED BY '密码';

授权并刷新

GRANT ALL ON * TO 'magedu'@'192.168.1.%';
flush privileges;

测试 (192.168.1.%网段主机),若成功登陆且所有数据库可见即为成功

mysql -umagedu -p密码 -h主机ip地址
show databases;

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

MySQL 5.5之后的默认存储引擎皆为 InnoDB

MyISAM
优点:

读取数据较快,占用资源较少

缺点:

不支持事务
表级锁定
读写相互阻塞,写入不能读,读时不能写
只缓存索引
不支持外键约束
不支持聚簇索引
不支持MVCC(多版本并发控制机制)高并发
崩溃恢复性较差

InnoDB
优点:

支持事务,适合处理大量短期事务
行级锁定
读写阻塞与事务隔离级别相关
可缓存数据和索引
支持聚簇索引
支持MVCC高并发
崩溃恢复性更好
MySQL5.5后支持全文索引

缺点:

将数据和索引都放在ibdata1,2…文件中,不好区分,建议在配置文件中启用innodb_file_per_table

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值