查询表:
select zname,zmaney from zhangwu;:这个查询的是俩个列的数据
select * from zhangwu;:这个是查询表中的所有的数据
select distinct money from zhangwu:这个是查询的时候去掉money这个列中的重复的数据
select zname as ‘name’ from zhangwu:这个是查询的是zname这个列名被临时的去修改为name这个名字,查询显示的是这个名字,但是数据表里面本身是没有修改的。
select zname,zmoney+1000 as ‘sum’ form zhangwu:就是把账务这个表里面的zmoney都加上1000元 就是显示的时候那个列名是sum
查询表中所有吃饭支出的条目
select * from zhangwu where zname=“吃饭支出”
查询金额大于1000
select * from zhangwu where zmoney>1000;
查询金额在2000和5000之间
select * from zhangwu where zmoney between 2000 and 5000 (前面的那个数必须要比后面的那个数小,而且还是包含这俩个数的) 而且还可以用于日期之间的查询
查询的金额是1000,2000,3000 其中的任意一个 not in就表示的是除了这三个而其他的全部都是可以显示
select * from zhangwu where zmoney in(1000,2000,3000)
模糊查询,
select * from zhangwu where zname like ‘%支出%’:不管前面和后面是什么,只要中间是支出即可
查询表中zname那一列有五个字符,其中一个下划线代表一个字符,那么五个下划线就是五个字符%代表的是多个字符,
select * from zhangwu where zname like ‘_____’;
查询表中zname不为空的内容
select * from zhangwu where zname is not null;
将表中的内容进行升序(asc)或者是降序(desc),
select * from zhangwu order by zmoney;默认是升序的,所以就不用去写了
select * from zhangwu order by zmoney desc;降序排列
selec * from zhangwu where zname like ‘%支出%’ order by zmoney;有条件的话写过滤条件,然后再对所有的结果进行排列(也就是条件是要写在前面的)
注意:一般情况下不要对中文进行排列,因为这个结果可能是未知的,因为不一定是对编码表进行排序的
数据的聚合(就是对表里面的内容进行纵向排序,然后呢利用函数就是对里面的一列进行计算,而我学的是函数)
count 求和,对表中的数据个数求和 用法:count(列名)
select count ()as‘count’ from zhangwu (这个显示的列名是count()如果想要去修改的话就用as‘count’)查询zhangwu表中一共有多少条数据
sum 求和,对一列中的数据进行求和计算 sum(列名)但是呢,他只能是对数据类型的去计算,如果不是数据类型的话就是0
select sum(zmoney) from zhangwu 对账务表中金额求和
select sum(zmoney)from zhangwu where zname like‘%支出%’ 对支出的金额求和
max ,min 对某列数据获取最大值或者是最小值
SELECT MAX(price)FROM product (写的时候一定要注意是在英文环境下)
SELECT SUM(price),pname FROM product GROUP BY pname 分组查询,就是对重复的元素计算归类显示(其中必须和聚合函数一起显示)
having和where 的区别:
having是分组后对数据进行过滤
where是在分组前对数据进行过滤
having后面是可以使用分组函数(统计函数)
where后面不可以使用分组函数