zoukankan      html  css  js  c++  java
  • SQL 笔记汇总

    基本语法(增,删,改,查)
    一、新增
    --1.1 增加数据的语法(增)
    insert into 表名 (列名,列名,...)
    values (值,值,...)
    
    --1.2 简化的增加数据的语法
    insert into 表名
    values (值,值,...)        ---注:此时值必须和表中列名对应,并且不能省略值
    
    --1.3 一次插入多行数据(增)
    insert into 表明
    select 值,值,...           --不需要小括号,此时输入的default是无效的,必须手动填默认值
    union                        --表示用于组合前后两条插入语句
    select 值,值,...
    
    --1.4 将现有表中的数据添加到已存在的表中(新表之前存在)(增)
    insert into 已存在新表名 (列名,列名)
    select 列名,列名,
    from 现有表名
    
    --1.5 将现有表中的数据添加到新表中(新表之前不存在)(增)
    select 列名,列名,...
    into 新表
    from 原表
    
    
    二、更新数据
    --2.1 更新数据(改)
    update 表名 set 列名=更新值,列名=更新值
    where 更新条件(可省略,意思是满足这个条件后执行更新) 
    --2.2 更新的数据来源于其他表
    UPDATE a SET a.要更新的列名=b.更新的值  from tbA a LEFT JOIN  tbB b
    ON a.ID=b.FID -- WHERE A.Process=6
    
    --2.3 更新的数据来源于本表的其他行 属性不同的值
    UPDATE a SET a.Money=a.Money+b.Money  from dbo.tb_InExpen a LEFT JOIN  tb_InExpen b
    ON a.ManifestID=b.ManifestID WHERE A.Abstract=6 AND B.Abstract=9 
    
    三、删除数据 
    --3.1 删除数据(删)
    delete from 表名
    where 条件表达式        --如果满足此条件就可以伤处
      
    --3.2 删除数据(删)
    truncate table 表名    --标的结构,列,约束,索引等不会被改动
    
    --3.3 删除表数据 关联条件 DELETE FROM LEFT JOIN 
    DELETE A FROM A  
    LEFT JOIN B ON A.ID =B.ID
    LEFT JOIN C ON C.ID=B.IDD
    WHERE B.ID=ID OR C.ID=ID

    四、查询数据 --4.1 查询一个表的所有数据(查) select * from 表名 --4.2 筛选符合条件的所有数据(查) selcet * from 表名 where 条件 --4.3 查询某些列或者列的数据(查) select 列名,列名 from 表名 where 条件 --4.4 在查询中使用别名(查) a). select 列名 as 别名, 列名 as 别名 from 表名 where 条件 b). select 别名=列名,别名=列名 from 表名 where 条件 --4.5 查询为空(不为空)的数据(查) select 列名 from 表名 where 列名 is null(为空) where 列名 is not null(不为空) --4.6 查询中使用常量(查) select 列名,列名,'常量' as 别名 from 表名 --4.7 查询返回限制的行数(查) select top 行数 * from 表名 select top 行数 percent * from 表名(按百分比查询) --4.8 排序 ORDER BY DESC/ASC 降序/升序 默认为 Asc 升序 select * from 表名 order by 列名 (asc/desc) --无筛选条件的升序排列,asc可以省略,默认为升序 五、常用函数字符串 --5.1 查找指定字符的位置 select 列名,charindex('字符',列名,起始位置)(as 别名) from 表名 --5.2 replace 替换 select 列名,replace(列名,'字符','替换成的') from 表名 --5.3 .stuff 插入替换 select 列名,stuff(列名,起始下标,修改长度,'替换成的') from 表名 --5.4 长度 Len SELECT Len(字段名) FROM 表名 --中文和英文字符 都是一个长度 --5.4 截取字符串 SUBSTRING('要截取的字符',截取开始位置,截取结束位置) --5.5 拼接字符 变量字符类型 DECLARE @str varchar(50) SET @str='如果变量是字符类型' DECLARE @ExccSql varchar(1000) SET @ExccSql='SELECT '''+@str+''' ' EXEC (@ExccSql) --5.6 拼接字符 变量数字类型 DECLARE @i int SET @i=5201314 DECLARE @ExccSql varchar(1000) --SET @ExccSql='SELECT '''+@i+''' ' --错误 SET @ExccSql='SELECT '+cast(@i as varchar(10)) EXEC (@ExccSql) SELECT SUBSTRING('ABCDEFGHIJKLMN',1,2) --结果为 AB 得出结论SQL下标从一开始 --常见错数 /* 1.对象名不存在 a.数据库选择错误 b.表名或者列名错误 2.不能为表'列名'中的标识插入显示值 出错原因:不能为标识列插入值 3.列名或所提供值的数目与表定义不匹配 出错原因:列的个数和值的个数不匹配 4.不能在对象'表名'中插入重复键 出错原因:主键值重复 5.约束"FK...."冲突,发生于"数据库名",表"表名",列名 出错原因:外链引用的数据不存在 6.将截断字符串二进制数据 出错原因:超出设置长度 7.约束"CK...."冲突,发生于"数据库名"表"表名",列名 出错原因:数据违背了检查约束 8.***附近有错误 出错原因:语法错误或者是符号错误 */
    --六 约束
    --6.1 创建完表以后添加多列 唯一约束 UNIQUE 
    ALTER TABLE YFCarryover 
    ADD CONSTRAINT uc_salvType UNIQUE (psid,salvType)
    --修改自增列 标识种子
    DECLARE @MaxID INT
    SET @MaxID=(SELECT MAX(ID) FROM cc1)
    DBCC CHECKIDENT(cc1, RESEED,@MaxID )
  • 相关阅读:
    JS在火狐浏览器下如何关闭标签?
    .NET3.5项目转.NET2.0项目技巧
    GCHandler的使用
    多类选择器
    线程的Abort方法有感
    多线程死锁
    mysql 查看数据库、表的基本命令
    PHP往mysql数据库中写入中文失败
    TLS / SSL密码强化的建议
    MongoDB在Linux下常用优化设置
  • 原文地址:https://www.cnblogs.com/suqifeng/p/3402311.html
Copyright © 2011-2022 走看看