Rumah >pangkalan data >tutorial mysql >Mysql 简单的命令语句续-*,as,group by,order by,group by,havin_MySQL

Mysql 简单的命令语句续-*,as,group by,order by,group by,havin_MySQL

WBOY
WBOYasal
2016-05-31 08:50:291109semak imbas

大哭-菜鸟在努力的学飞翔!

作为一枚菜鸟不容易啊,这个世界好难生存啊

继续在简陋的cmd命令里面敲击着sql命令!


首先这里着重的说下通配符*的问题!


如果让大家搜索全部的话 肯定是想也不想直接一个 select * from tablename 吧!

但是 这样的话是非常影响性能的!

如果你的列有很多的话!

因为在数据库里面

每次select * 都要把 * 解析成各个属性,所以当在实际开发当中千万不要偷懒

要列出自己要搜索的所有属性!从而提高整体的效率

for example:

select id,name,gender,age,job,createdate from teacher_tab order by createdate desc;


order by  列名  desc  是按照XXX排序 ,降序

order by  列名   不加,升序

效果如图1:


当你排列顺序遇到好多相等的时候,就可以考虑有第二列来排列

比如

select id,name,gender,age,job,createdate from teacher_tab order by createdate desc,age;
效果如图2  是两种排序方式



接下去我们怎么进行分组:

比如说我们要统计老师的数目,然后对老师性别分别进行统计 g=gg=男  m = mm = 女

代码如下“:

select gender ,count(gender) from teacher_tab group by gender;

效果如图3:


假如说我们只要计算m的个数,我们可以加having gender = 'm';

如图4:



不过不建议用having 当数据庞大之后,我们要在分组后,又进行搜索话是极耗费性能的。

建议使用如下代码:

select gender,count(gender) from teacher_tab where gender = 'm';

有时候我们对列名不太满意,想自定义使用其他的名字,这时候就需要用到as 别名了


代码如下:

select t.age,t.name from teacher_tab t;
select count(id) as counts from teacher_tab;
我们可以给列取别名也可以给表取别名!

效果如图5:


还有使用limit 限制 limit 起始量,偏移量

for example :

select * from teacher_tab limit 0,3;
select * from teacher_tab limit 1,3;
0是从第一条开始

1是指第二条开始

3是指0后面三条记录

效果如图6:


接下去是

事物的提交 回归等,下一篇再续


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn