思来想去还是决定拿出买件衣服的钱加入初级班进行学习,争取进一步提升自己的数据技能。
实际工作中用DB2、Oracle多年了,本以为mysql没什么好学的,但是自己搜了下mysql的相关资料,发现它作为一款开源数据库在很多企业都有很好的应用。
于是乎,我还是跟着本周课程边听边练,发现了很多以前没有用过的技能,还自行跟oracle做了对比呢,具体如下:
1、Mysql查看建表语句:Show create table classes;
2、oracle 创建类似表结构:create table ... as select * from example;
3、行列转化的语法:
mysql的用法:select gender,group_concat(name) fromstudents group by gender;
+--------+-----------------------------------------------------------+
| gender | group_concat(name) |
+--------+-----------------------------------------------------------+
| 男 |彭于晏,刘德华,周杰伦,程坤,郭靖 |
| 女 |小明,小月月,黄蓉,王祖贤,刘亦菲,静香,周杰 |
+----------------------------------------------------------------------+
oracle的用法:select gender,listagg(name,',') withingroup(order by id) from students group by gender;
4、分组加合计
mysql的用法:select gender,count(*) from students groupby gender with rollup;
+--------+----------+
| gender | count(*) |
+--------+----------+
| 男 | 5 |
| 女 | 7 |
| 中性 | 1 |
| 保密 | 1 |
| NULL | 14 |
oracle的用法:select gender,count(*) from students groupby rollup(gender);
5、查询前3行男生信息
mysql的用法:select *from students where gender=1 limit 0,3;
oracle的用法:select *from students where gender=1 and rownum<=3
6、如果没有生日则显示无:
Mysql的用法:ifnull(birthday,’无’)
Oracle的用法:nvl(birthday,’无’)
7、计算年龄:year(now())- year(birthday) as age
8、sql语句执行顺序为:
from 表名
where ....
group by ...
select distinct *
having ...
order by ...
limit start,count
9、所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性
10、对mysql库进行dump:
1)开始-命令提示符(右键选择以管理员的身份运行)
2)cd mysql对应的bin目录
3)mysqldump -uroot -p 数据库名> 文件名
11、将备份文件导入数据库:
1)首先进入数据库,比如use python_test_1;
2)Source 绝对目录\python_test.sql
12、监测sql执行时间:
1)Set profiling=1;
2)执行语句
3)Show profiles; 可以看到该执行语句用了多长时间
13、索引的创建:
Create index indexname on tablename(字段名称)
Show index from tablenam
索引记录的是数据行存储的位置,所以更新表数据时索引文件也会相应更改,所以如果表中数据频繁更新则不建议使用索引
网友评论