【SQL语言是用于访问和处理数据库的标准的计算机语言,做为产品经理而言,经常会对产品的使用情况进行多种数据指标的分析,在没有更多前台统计功能存在时,我们更多是通过数据库中的数据进行SQL语句的查询得出,所以我们还是需要了解一些很基础的SQL语句,今天我就把我总结的内容分享给大家。】
这次分享主要涉及:单表查询、多表联合查询、同时给大家分享些部分常用的转换语句等,这几种方式给大家介绍常用的SQL语句。
关于单表查询:
简单的查询只需要记住 select 和 from 就可以了,用法是:select * from 【你要查询的表名】
举例:select*fromstudent1
查询结果:

查询部分列,用法是:select XXXX,XXXXXX from 你要查询的表名
举例:selectno,name,erp,calssfromstudent1

除此之外,还需要记住一些限制的单词,具体如下:
1、限制性条件:where
举例:查询1班的人员信息,查询语句:select * from student1 where class=‘1班’
查询结果:

如果在这个基础上 有多个条件 后面 会再 加上 and 或是 or 去满足多个限制条件查询
举例:查询2班里是男生的人员信息,查询语句:select * from student1whereclass=‘2班’andsex=‘男’
这样查询的结果就如下:
2、以XXX进行排序:ORDER BY

举例:按照班级进行排序展示,查询语句:select* fromstudent1ORDER BY class
查询结果:

当然,这个ORDER BY 也可以后面写多列,用,分隔即可,这样就会按照多列依次排序展示
假如需要按照升序和降序展示的话,也可以后面加上 DESC or ASC,
例如:select* fromstudent1ORDER BY class desc,age asc
3、去重查询:DISTINCT
举例:学生都来自哪些地方?查询语句:selectDISTINCT native place from student1
查询结果:
4、选取介于两个值之间的数据范围:where XXX between ... and

举例:在20-23岁的学生有哪些?查询语句:select * from student1 where age between 20 and 23
查询结果:

注:不同的数据库对 between...and 操作符的处理方式是有差异的。
某些数据库会列出介于 "20" 和 "23" 之间的人,但不包括 "20" 和 "23" ;
某些数据库会列出介于 "20" 和 "23" 之间并包括 "20" 和 "23" 的人;
而另一些数据库会列出介于 "20" 和 "23" 之间的人,包括 "20" ,但不包括 "23"
5、对于4延伸讲,还有不介于XXX之间的,再between前面增加一个not
举例:不在20-23岁的学生有哪些?查询语句:select *from student1 where age not between 20 and 23
查询结果:
6、要查询某列中值为多个的,可以用in(‘XX’,‘XX1’)这种方式

举例:查询北京和上海的学生信息,查询语句:select *from student1 where native place in ('北京’,‘上海’)
查询结果:

7、万能的like使用,比如我要查询所有姓张的学生,或是erp中包含那个字母/那几个字母的,或是以某列中以XXX为结束的,都可以通过like实现,也可以结合not like实现,不过通常都会和 "%"通配符联合使用,比如:‘张%’、‘%XXX%’
举例:
查询所有姓张的学生,查询语句:select *from student1 where name like ‘张%’
查询结果:

其他常用的函数如下:
1、查询一共多少条数据:count
举例:查询学生表中一共多少条记录,查询语句:select count(*)from student1
查询结果:6
2、查询汇总后结果:sum
举例:查询学生表中年龄加和后是多少,查询语句:select sum(age)from student1
查询结果:131
3、查询均值是:avg
举例:查询学生表中年龄加和后是多少,查询语句:select avg(age)from student1
查询结果:21.83
4、查询最大值:max
举例:查询学生表中年龄加和后是多少,查询语句:select max(age)from student1
查询结果:25
5、查询最小值:min
举例:查询学生表中年龄加和后是多少,查询语句:select min(age)from student1
查询结果:20
6、函数用于把数值字段舍入为指定的小数位数 round,常用法:select round(查询的字段名,几位小数) from 表名
7、用于对字段的显示进行格式化,通常用于时间格式使用:date_format,常用法:select date_format (字段名,格式) from表名
常用转换格式如下:
查询某天: date_format(字段, “%Y-%m-%d” )
某月:date_format(字段, “%Y-%m” )
某时:date_format(字段, “%Y-%m-%d %H” )
8、转换日期to_date, 通常用于时间格式使用:to_date,常用法:to_date(字段名)
9、过滤空格的函数:TRIM ,常用法:select trim(字段名) from表名
10、转大写字母的:ucase,常用法:select ucase (查询的字段名) from 表名
转小写字母: lcase,常用法:select lcase (查询的字段名) from 表名
多表联合查询:下期补充,敬请关注~
网友评论