......select查询案例、远程连接、存储引擎
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