自己总结的一些常用sql :插入、删除、批量更新、判重、新增列、数据库连接数


----------------
批量插入跨数据库 insert into ejpms.dbo.role (Name,Info,[Level]) select RoleName,RoleNote,[Level] from ttrj.dbo.T_role
------
删除表 truncate table ejpms.dbo.role
--------
批量更新 update table1 set name=table2.name from table1 inner join table2 on table1.id=table2.id
-----------
bit类型取反 update table1 set ***=~ ***
--------------
判断是否为null select * from table where remark is null
---------------
两个select 合并 select DISTINCT Code from dbo.C_Purview UNION select DISTINCT Code from dbo.OA_StaffPersonalPurview union去掉重复的、union all 不去掉重复的 、distinct 返回唯一不同的值 -------------
数据库表新增列 alter table A add 列名 nvarchar(50)
alter table tableName drop column columnName
--加默认值
alter table table1 add col1 int default 0
-----------------
查询时的Case When
CASE WHEN sex = '' THEN '男'
WHEN sex = '' THEN '女'
ELSE '其他' END -------------------------------------
查询重复列的数据
select * from ttrj.dbo.T_CommissionCard where a.id in
(select id from ttrj.dbo.T_CommissionCard group by id having count(*)>1 ) SQL查询的基本原理:两种情况介绍。
第一、单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的);然后根据SELECT的选择列选择相应的列进行返回最终结果。 第二、两表连接查询:对两表求积(笛卡尔积)并用ON条件和连接连接类型进行过滤形成中间表;然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果。 第三、多表连接查询:先对第一个和第二个表按照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到所有的表都连接上为止,最终形成一个中间的结果表,然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果。 ON后面的条件(ON条件)和WHERE条件的区别:
ON条件:是过滤两个链接表笛卡尔积形成中间表的约束条件。
WHERE条件:在有ON条件的SELECT语句中是过滤中间表的约束条件。在没有ON的单表查询中,是限制物理表或者中间查询结果返回记录的约束。在两表或多表连接中是限制连接形成最终中间表的返回结果的约束。
从这里可以看出,将WHERE条件移入ON后面是不恰当的。推荐的做法是:
ON只进行连接操作,WHERE只过滤中间表的记录。 ------------------------------------
查看数据库连接数
SELECT [dec].client_net_address,
[des].[program_name],
[des].[host_name],
Count([dec].session_id) AS connection_count
FROM sys.dm_exec_sessions AS [des]
INNER JOIN sys.dm_exec_connections AS [dec]
ON [des].session_id = [dec].session_id
GROUP BY [dec].client_net_address,
[des].[program_name],
[des].[host_name]
ORDER BY [des].[program_name],
[dec].[client_net_address];



--数据库回滚
--判断是否有某一列
--开启修改自增长列
--插入数据
--当前时间加三个月(可类推日、月、年)
--向商户版账号表中插入默认数据
BEGIN tran
USE Eplus365
IF not exists (SELECT null from Eplus365.dbo.commercialtenant_account where name ='system')
begin
SET IDENTITY_INSERT Eplus365.dbo.commercialtenant_account ON --关闭
insert INTO Eplus365.dbo.commercialtenant_account (id,commercialtenantid,name,mobile,password,passwordsalt,status,gmt_create,gmt_modified,creator,creatorid,roleid,type)
select 0,0,'system','','','',1,getdate(),getdate(),'system',0,0,0 SET IDENTITY_INSERT Eplus365.dbo.commercialtenant_account OFF --开启
end
if(@@ERROR<>0)
Rollback TRAN
ELSE
COMMIT TRAN --向商户表中添加有效期字段
--默认增加三个月有效期 BEGIN tran
USE Eplus365
IF NOT EXISTS (SELECT 1 FROM syscolumns INNER JOIN sysobjects ON sysobjects.id = syscolumns.id
WHERE syscolumns.name = 'startdate' AND sysobjects.name = 'commercialtenant')
ALTER TABLE commercialtenant ADD startdate datetime NULL default getdate()
alter table commercialtenant add enddate datetime null default getdate()
UPDATE [Eplus365].[dbo].[commercialtenant] SET startdate=getdate(),enddate=convert(datetime,convert(char(20),dateadd(month,3,getdate()),102))
if(@@ERROR<>0)
Rollback TRAN
ELSE
COMMIT TRAN

数据库中存储过程、视图、表数量

SELECT count(*) 存储过程个数
FROM sys.sysobjects
WHERE (type = 'P')
GO

SELECT count(*) 视图个数
FROM sys.sysobjects
WHERE (type = 'V')
GO

SELECT count(*) 表个数
FROM sys.sysobjects
WHERE (type = 'U')
GO


查询所有存储过程中有没有某一内容

select a.* from
(select a.name,a.[type],b.[definition] from sys.all_objects a,sys.sql_modules b
where a.is_ms_shipped=0 and a.object_id = b.object_id and a.[type] in ('P','V','AF')
) a
where a.definition like '%vi_RoomDetailRentCases%'

常用sql 增删改、批量、合并、去重、增列、的更多相关文章

  1. day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作

    在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...

  2. mybatis学习(五)——增删改查及自增主键的获取

    一.mybatis的增删改查 1.修改hotelMapper接口 package com.pjf.mybatis.dao; import com.pjf.mybatis.po.Hotel; publi ...

  3. python3-list列表增删改查合并排序

    # Auther: Aaron Fan names = ["aaron", "alex", "james", "meihengfa ...

  4. 在SQL Server中批量修改有规律列的定义

    )=N'要修改的表名'; --修改所有以sl结尾的列名的小数位数为4位 select syscolumns.name into #t1 from syscolumns,systypes where s ...

  5. 常用sql:按照表中的某一列对数据进行分组,统计数据条数

    select FROM_UNIXTIME(start_time,'%Y-%m-%d')as date,COUNT(*) FROM random_num GROUP BY FROM_UNIXTIME(s ...

  6. 数据库基本查询语句(SQL常用增删改查语句 简单复习 mark)

    SQL常用增删改查语句 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) ...

  7. SQL学习之MYSQL的常用命令和增删改查语句和数据类型

    连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...

  8. MYSQL的常用命令和增删改查语句和数据类型

    连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...

  9. MYSQL的常用命令和增删改查语句和数据类型【转】

    连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...

  10. OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)

    公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...

随机推荐

  1. 转:maven3常用POM属性及Settings属性介绍

    原文:http://blog.csdn.net/lgm277531070/article/details/6922645 A.pom.xml属性介绍: project: pom的xml根元素. par ...

  2. Exception sending context initialized event to listener instance of class ssm.blog.listener.InitBloggerData java.lang.NullPointerException at ssm.blog.listener.InitBloggerData.c

     spring注入是分两部分执行的     首先是 先把需要注入的对象加载到spring容器     然后在把对象注入到具体需要注入的对象里面   这种就是配置和注解的注入    getbean方式其 ...

  3. Ubuntu下开启mysql远程登陆权限

    在腾讯云上租了个云服务器,并且安装启动了mysql. 这时候用本地的mysql workbench去连接就会报错,提示无法成功连接. 其实这是因为没有开启账户的远程登陆权限.那么下面就开启一下: 1. ...

  4. base、this、new、override、abstract、virtual、static

    前言 本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base.this.new.override.abstract.virtual以及针对static字段和s ...

  5. unity, 什么时候用静态类,什么时候用单例

    如果没有成员变量,或者成员变量都是常量,则用静态类. 如果有成员变量,则用单例.(以便让成员变量有初始化机会). //静态类 public class CmyFuncs{ public float m ...

  6. 在linux下运行jmeter

    之前在用JMeter做性能测试时基本都用自己的笔记本电脑. 考虑到网络传输和占用系统资源情况时进行了以下分析: 1 在笔记本上,开始-cmd "ping 服务器",得到传输时间.在 ...

  7. Linux 连续运行多条命令

    每条命令使用";"隔开.则不管前边的命令运行成功与否都会继续运行下一条命令 这里,有益将第二条命令中的echo多写了一个o.命令运行出错,但并不影响兴许命令的运行 能够这么想,假设 ...

  8. Atitit..css的体系结构

    Atitit..css的体系结构 1. Oocss 与 bem标准化1 1.1. 四种样式表及六种选择器1 1.2. 常用的css框架  amazeui   bootstrap1 1.3. Css图标 ...

  9. 新标准C++程序设计读书笔记_类和对象

    面向对象的程序设计方法 抽象:将某类客观事物共同特点(属性)归纳出来,形成一个数据结构(可以用多个变量描述事物的属性):将这类事物所能进行的行为也归纳出来,形成一个个函数,这些函数可以用来操作数据结构 ...

  10. Java - web.xml文件中可以配置哪些内容?

    web.xml用于配置Web应用的相关信息,如:监听器(listener).过滤器(filter).Servlet.相关参数.会话超时时间.安全验证方式.错误页面等,下面是一些开发中常见的配置: ①配 ...