常用sql 增删改、批量、合并、去重、增列、
自己总结的一些常用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 增删改、批量、合并、去重、增列、的更多相关文章
- day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作
在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...
- mybatis学习(五)——增删改查及自增主键的获取
一.mybatis的增删改查 1.修改hotelMapper接口 package com.pjf.mybatis.dao; import com.pjf.mybatis.po.Hotel; publi ...
- python3-list列表增删改查合并排序
# Auther: Aaron Fan names = ["aaron", "alex", "james", "meihengfa ...
- 在SQL Server中批量修改有规律列的定义
)=N'要修改的表名'; --修改所有以sl结尾的列名的小数位数为4位 select syscolumns.name into #t1 from syscolumns,systypes where s ...
- 常用sql:按照表中的某一列对数据进行分组,统计数据条数
select FROM_UNIXTIME(start_time,'%Y-%m-%d')as date,COUNT(*) FROM random_num GROUP BY FROM_UNIXTIME(s ...
- 数据库基本查询语句(SQL常用增删改查语句 简单复习 mark)
SQL常用增删改查语句 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) ...
- SQL学习之MYSQL的常用命令和增删改查语句和数据类型
连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...
- MYSQL的常用命令和增删改查语句和数据类型
连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...
- MYSQL的常用命令和增删改查语句和数据类型【转】
连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...
- OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)
公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...
随机推荐
- Python-常用库扩展
图片处理: PIL HTTP请求模拟: requests
- 设置SSH编码为中文
http://www.qzz.in/?post=198下面是详细方法: 方法1: vi /etc/sysconfig/i18n 将内容改为 LANG="zh_CN.GB18030" ...
- android 签名、混淆打包
1.android 签名 使用eclipse导出带签名的apk,最简单的方式. 最后一步finish ,就能导出一个xxx.keystore的文件了. 下次再发布新版本的时候,使用这个生成的签名继续使 ...
- Android---Handler消息处理机制
搞Android的人都知道.android是不同意你在子线程中更新UI操作的.这主要出于线程安全方面的考虑.通常的做法是在主线程中创建一个Handler对象,在子线程中创建一个Message对象.该M ...
- 在Win7中IIS配置Asp.Net虚拟文件夹的方法及错误总结!
在Win7中IIS配置Asp.Net虚拟文件夹的方法总结! 一.右键[站点].点击[加入虚拟文件夹]或[虚拟应用程序],笔者建议最好建立虚拟应用程序,由于这就跟一个站点差点儿相同.不用考虑路径问题. ...
- [svc][op]从历险压缩日志里网站pv uv统计
http://myhoop.blog.51cto.com/5556534/1367523 tomcat日志格式: http://www.cnblogs.com/anic/archive/2012/12 ...
- POJ 2409 Let it Bead(Polya简单应用)
Let it Bead 大意:给你m种颜色,n个珠子串起来.旋转跟反转同样算同样,问有多少种不同的涂色组合方式. 思路:Polya的简单应用. /*************************** ...
- mui中删除某个节点的子节点
targetNode.removeChild(targetNode.firstElementChild);//删除元素的第一个子节点
- android - px(像素)、dpi(像素密度)、dip(密度无关像素)之间的关系
使用ImageView会遇到的问题 在Android应用中,都少不了图片的显示,ImageView,轮播图,ViewPager等等,很多都是来显示图片的,很多时候,我们都希望图片能够在宽度上填充父窗体 ...
- 495. Implement Stack【easy】
Implement a stack. You can use any data structure inside a stack except stack itself to implement it ...