• 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!
  • 相关阅读:
    [leetCode]100.相同的树
    [leetCode]88.合并两个有序数组
    [leetCode]83.删除排序链表中的重复元素
    排序算法总结
    [leetCode]69. x 的平方根
    POJ 1151 Atlantis
    POJ 3468 A Simple Problem with Integers
    SGU 271 Book Pile
    POJ 2970 The lazy programmer
    FZU 2254 英语考试
  • 原文地址:https://www.cnblogs.com/aikeming/p/11906286.html
Copyright © 2020-2023  润新知