一、Sql 语言基本特点
不区分大小写
分号";"表断句,换行符不断句
二、数据查询(按执行顺序排列)
Select distinct column_1, Function ( column_or_expression) , column2 as c2
From my_table
JOIN another_table
on my_table. key1 = another_table. key2
where conditon1
group by column_3
having group_conditon1
order by column_4 asc / desc
limit m offset n
1. From & Join
说明查询数据来源:可以单表查询,也可以多表查询,多表之间需要有main_key将表格相连。
From 或 Join 会第一个执行,确定一个整体的数据范围. 如果要join不同表,可能会生成一个临时Table来用于下面的过程。总之第一步可以简单理解为确定一个数据源表(含临时表)。
From single_table
From table1 inner join table2 on table1. key1 = table2. key2
From table1 right join table2 on table1. key1 = table2. key2
From table1 left join table2 on table1. key1 = table2. key2
From table1 Full join table2 on table1. key1 = table2. key2
2. Where
Where 说明查询条件(只能用于group by
之前),多个条件用and
或or
链接。
确定了数据来源 Where 语句就将在这个数据源中按要求进行数据筛选,并丢弃不符合要求的数据行,所有的筛选Column属性只能来自From圈定的表。
As别名还不能在这个阶段使用,因为可能别名是一个还没执行的表达式。
常用数值条件语法:
col_num != 4
col_num between 0 and 100
col_num not between 0 and 100
col_num in ( 2 , 4 , 6 )
col_num not in ( 2 , 4 , 6 )
col_num % 2 = 0
col_num % 2
col_num % 2 = 1
col_str = "abc"
col_str != "abc"
col_str like "abc"
col_str like "%abc%"
col_str like "abc_"
col_str in ( "A" , "B" , "C" )
col_str not in ( "A" , "B" , "C" )
3. Group by
Group by 对之前的数据进行分组,统计等,并将结果集缩小为分组数。这意味着其他的数据在分组后会丢弃。
Group by 可以同时按照多个变量分组
例:原数据表
按1个变量分组
SELECT role, count ( * ) as count, building is not Null as bn FROM employees
group by role
SELECT role, count ( * ) as count, building is not Null as bn FROM employees
group by role, bn
4. Having
如果用了Group by分组, Having会在分组完成后对结果集再次筛选。
As别名也不能在这个阶段使用.
5. Select
确定结果之后,Select用来对结果Column简单筛选或计算,决定输出什么数据.
表示表格内所有列变量,也可以单独筛选某个变量
Select *
Select column_1, column_2, column_3
Count ( * )
6. Distinct
7. Order by
在结果集确定的情况下,Order by对结果做排序,asc正排从小到大,desc倒排从大到小。
因为Select中的表达式已经执行,此时可以用AS别名.
8. Limit/ Offset
最后 Limit和 Offset从排序的结果中截取部分数据.
常和Order By 语句一起使用,当对整个结果集排序之后,可以用 Limit 指定只返回多少行结果 ,用 Offset 指定从哪一行开始返回。
三、功能公式
1. 字符处理
Length( str)
Locate( substr, str)
LTrim( str)
RTrim( str)
Trim( str)
Left ( str, n)
Right ( str, n)
Upper( str)
2. 时间处理
AddDate( )
AddTime( )
CurDate( )
CurTime( )
Date ( )
DateDiff( )
Date_Add( )
Date_Format( )
Day ( )
DayOfWeek( )
Hour ( )
Minute ( )
Month ( )
Now ( )
Second ( )
Time ( )
Year ( )
3. 统计计算
Avg ( )
Max ( )
Min ( )
Sum ( )
Count ( )
Abs( )