---增:insert into 表名(列1,列2,列3。。。) values (值1,值2,值3。。。);
---查:select 列1,列2,列3。。。 from 表名;
----删:delect from 表名 where 条件(userid='xxx');
--改:updata 表名 set 列1=‘xxx’,列2=‘sss’,。。。 where 条件(userId like ‘h%’(模糊处理,h开头的意思));
---------group by 子句
对前一个数据的筛选的结果进行重组,使用某个字段或多个字段进行分类,然后按照这些字段组合数据。注意:好像是按照字段从新得到了新表
select name from 表名 where 条件 group by name
------聚合函数
总数 最大值 最小值 平均值 求和
select name count(*),max(age),min(age),avg(age),sum(age) from 表名 group by name;
聚合函数忽略空值数据
--------开窗函数
select * avg(score) over() from 表名;(相当于在表后面加上了avg(score))
--------having 子句
where只能直接对数据源进行筛选
having可以对聚合后的数据进行筛选
-----别名
select 字段 as 别名
select 字段 别名(不推荐用)
select 别名=字段
-------distinct 去除重复数据(是对整个结果集进行数据重复处理,不是针对某一列)
select distinct * from 表名(只有完全重复才会去除,包括id);
---------top(只显示前n行数据)
select top 10 * from 表名;(只显示前10行数据)
select top 10 percent * from 表名;(只显示前10%的数据)
-------order by 字段或者表达式 (对结果进行排序)
select * from 表名 order by 字段;默认升序排列
select * from 表名 order by 字段 desc;降序排列
------sql语句执行优先级
from->where->group by-> having->select->order by->top(先排完序再取前n个数据)
------时间函数
加的值
dateadd :select dateadd(DAY,1,'2001-1-1');结果2001-1-2
开始时间 结束时间
datediff:select datediff(YEAR,‘2001-1-1’,‘2003-1-1’);结果2
-----转换函数
---cast(数据 as 类型)
select ‘123’+cast(456 as varchar);
-----convert(类型,数据)
select ‘123’+convert(varchar,456);
新闻热点
疑难解答