---增: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);
新聞熱點
疑難解答