Sql知识点总结

select concat(name,id) as name  from table  这种将两列的结果拼在一起

select concat(concat(name,' '),id) as nameid,age from table  这种将两列的结果拼在一起,中间有空格隔开

select name+id as name  from table  这种如果有一列的值为null  则结果为null

decimal值的精度与小数位数。精度是总的数字位数,包括小数点左边和右边位数的总和。而小数位数是小数点右边的位数。decimal(6,4):总精度是6,小数点后保留4位。结果为:12.4000。

round(  ,  ,  ,)第一个参数是取值的数据,第二个参数是精度,第三个参数是数据取值模式(1,四舍五入2,截断),其中第三个参数是可选参数,默认是四舍五入模式。第三个参数如果是0,则四舍五入,如果是非0,则截断。

sql取了别名之后,不能够使用别名做运算,除非套用一层。

时间格式  23  2019-12-03   112  20191203

sum()用于求和,SUM 函数会忽略所有 NULL 值,且只能应用于数字类型的字段。,count()用于行数的统计NULL 不计入,但‘ ’计入

USE [SOADB]
GO
/****** Object:  Table [dbo].[udt_mm_Dictionary]    Script Date: 07/05/2019 17:56:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[udt_mm_Dictionary](
 [ID] [int] IDENTITY(1,1) NOT NULL,
 [TypeCode] [varchar](50) NULL,
 [TypeDesc] [varchar](50) NULL,
 [ProdCode] [int] NULL,
 [ProdDesc] [varchar](50) NULL,
 CONSTRAINT [PK_udt_MM_Dictionary] PRIMARY KEY CLUSTERED
(
 [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
对于状态的描述,用一张表存起来。将需要修改的数据封装到数据,这样修改的工作就大大减少
 判断DataTable是否查询出来数据    if (list.Select("Password='845'").Length>0)  Password表中的字段
将A表数据导入B表
INSERT INTO udt_mm_Warehouse (ProdGID,ProdCode,ProdDesc)
(SELECT PROD_ID ,PROD_CODE,PROD_DESC FROM  v_PA_Material_Complete)   没有values
select * into A from B  将B表的f复制新表A
一张表必须有主键且自增
insert into [soadb0308].dbo.udt_tb_WipInventory
select * from [soadb0408].dbo.udt_tb_WipInventory
select * into udt_mm_WFCurrent0512 from udt_mm_WFCurrent 备份临时表加上日期,用完后删除

--局部  SQL_Server关闭后自动清除
select * into #Temp from udt_mm_Account
--全局
select * into ##Temp from udt_mm_Account
 
不能对varchar调用方法
错误原因:select A.B,C, FROM 表  查询字段之间使用了.
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'udt_mm_DailyPlan_Detail' 中的标识列插入显式值
错误原因:主键自增,在插入数据的时候为其赋值
(getdate())  数据库默认当前时间
行转列【将本来一行显示的数据,用列的形式横着显示】
select * from 表名
PIVOT(MAX(分数) for
课程 in(语文,数学,物理)) as  A
 
度娘  最短的语句描述问题
SQL修改之前查询,在临时表上修改  避免where条件错误
数据量很大的时候不建议放在临时表

truncate table udt_mm_ApplyBuy_Main   清空表中的数据【保留表的数据结构】
Deleete  删除之前使用select 查询出where条件  只删除表的行  保留表的结构,属性,索引
drop
varchar(100)   UTF-8(每个汉字3个字节)
表的内连接(INNNER JOIN)必须保证该条数据在每张表都存在
(NOT)Between 小 and 大  等价与  A>=  AND A<=
错误:在将 varchar 值 'KT' 转换成数据类型 int 时失败。
原因:将varchar类型的数据当做int类型来处理了

聚集索引:正文内容按照一定规则排列  类比字典的拼音查找汉字
非聚集索引:正文纯粹的排列方式  类比字典的偏旁部首查找汉字
order by 放在最后面且前面没有and
group by 分组  必须跟聚合函数(COUNT()计数,SUM()求和,AVG()平均值,MAX()最大值,MIN()最小值)一起使用  条件使用having而非where
select Group_Desc, COUNT( Group_Desc ) as 各个权限组人数 from v_PA_SecurityGroup_Storage_User 
group by  Group_Desc
having COUNT(Group_Desc)>10
LIKE
LIKE 'a%' 以a开头
LIKE '%a' 以a结束
LIKE '%a%' 任何位置有a
LIKE '_a%' 第二个位置具有a
LIKE 'a_%_%' 以a开头且至少有3个字符
LIKE 'a%o' 以a开头o结尾的值
派生表:子查询,一个查询嵌套另一个查询
IO瓶颈
1,磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询都会产生大量的IO,降低查询的速度   分库  垂直分表
2,网络IO瓶颈,请求的数据太多,网络带宽不够   分库
CPU瓶颈
1,SQL问题,如SQL中包含JOIN,GROUP BY,ORDER BY,非索引字段条件查询等,增加CPU运行的操作  SQL优化,建立合适的索引,在业务层进行业务运算
2,单标数据量太大,查询时扫描的行太多,SQL效率低,增加CPU运行的操作    水平分表
Hi, Tomorrow!
原文地址:https://www.cnblogs.com/aikeming/p/11906286.html