数据库怎么做单表查询?


当前第2页 返回上一页

3、where 筛选行语句

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

1:#范围查询

    #< > >= <= !=  <>代表不等于和!=是一个意思

    select age from 表名 where age <100 and age>20;(多条件查询)

    #between 1 and 10 找寻1到10之间的

    select age from 表名 where between 1 and 100; >>注意包含1和100

    #in (1,2,3,4) 多选一

    select age from 表名 where age in (10,20,30,40);

    #将age=10和age=20的都能取出来

    select age from 表名 where age=10 or age=20;

2:#模糊查询

    #like

    like的表现形式是,'%a'查询以a结尾的,'a%'查询以a开始的,'%a%'查询包含a的

    select name from 表名 where name like '田%';>>>查询出姓田的所有人

    like还有一种形式,'_a','a_','a__'一个划线代表一个字符,%代表的是任意长度

    select name from 表名 where name 'like '田_';>>>查询出以田开头的两个字的姓名

    #regexp 可以使用正则匹配(记一下正则表达式)

3:#is is not

    is null is not null 一般用来判断是不是空,

4:#逻辑运算

    and or not

4、group by(分组)

1

2

3

4

5

6

7

'''group by可以对某个字段的值进行分组,这个字段有多少种值就分多少组,group by还有一个特性就是去重,一旦使用group by对数据分组了,就不能对某一条数据进行操作,永远都是这一组数据'''

group_concat()函数(只用来做最终的显示,不做中间数据的操作)可以显示当前这一组的所有信息,拼在一起显示

select post,group_concat(name),count(id) from employee group by post having count(id) < 2;

'''

mysql> set global sql_mode='STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY';

ONLY_FULL_GROUP_BY的语义就是确定select target list中的所有列的值都是明确语义,简单的说来,在ONLY_FULL_GROUP_BY模式下,target list中的值要么是来自于聚集函数的结果,要么是来自于group by list中的表达式的值。(了解就好)

'''

5、聚合函数

1

2

3

4

5

1:#count 计数

2:#max  求最大值

3:#avg  求平均值

4:#min  求最小值

5:#sum  求和

6、having 过滤条件

1

2

3

4

5

'''

having是针对一个组做的过滤条件,是放在group by 后面执行的,他的意思和where是一样的

where group 和 having的执行顺序是,where>group by>having,所以having一般都是和having一起用的

'''

select post,group_concat(name),count(id) from employee group by post having count(id) < 2;

7、order by 排序

1

2

3

4

5

6

'''

对查询出来的数据进行排序,可以升序或者降序(desc),可以使用多个条件一起排序,执行顺序按照从左到右执行排序

'''

SELECT * FROM employee ORDER BY salary; #默认是升序排列

SELECT * FROM employee ORDER BY salary ASC; #升序

SELECT * FROM employee ORDER BY salary DESC; #降序

8limit 分页

1

2

3

4

5

6

7

8

9

10

11

'''

可以和order by一起使用,先排序再分页取几个,还可以指定删选的范围,limit m,n这个意思是从m+1开始取n条数据,不如limit 0,6,就是从1开始取六条数据,然是limit分页时,只适合做小数据的分页,当数据量过大时,效率就会非常慢,limit还有一种语法是:limit n offset m,这个意思也是从m+1开始,取n条,这个语法知道就行,

'''

#默认初始位置为0,从第一条开始顺序取出三条

SELECT * FROM employee ORDER BY salary DESC LIMIT 3;

#从第0开始,即先查询出第一条,然后包含这一条在内往后查5条

    SELECT * FROM employee ORDER BY salary DESC

        LIMIT 0,5; 

##从第5开始,即先查询出第6条,然后包含这一条在内往后查5条

    SELECT * FROM employee ORDER BY salary DESC

        LIMIT 5,5;

相关学习推荐:mysql视频教程

以上就是数据库怎么做单表查询?的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

mysql数据如何生成php数组文件

如何干净卸载mysql

mysql表的四种分区方式总结

mysql如何修改表字符编码

如何设置mysql 时区

e-r图是什么

mysql主键id如何实现自定义

mysql-innodb锁的相关内容介绍

4 个好用的 mysql 调优工具推荐

mysql脏读怎么解决

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...