以下SQL基本语法皆由本人整理,以下做一个汇总,关于游标,可作为了解,不要求掌握,其他查询、修改、删除操作等基本语法必须会使用。
select * from [dbo].[TBICJE]
select myktsqye+myktczze+mykttfze-myktxfze-myktye-mhkje+myjje,*from [dbo].[TBYKTPDB]
select*from [dbo].[TBYKTPDBmx]
-----所有医疗卡余额查询
门诊查询日结 :SELECT * from YXHIS2016..TBYLKZHCZ201610 where CRJBH='1610000819' and czffs='现金'
住院查询日结 : SELECT mje 金额, * from YXHIS2016..TBYJJL201611 WHERE DSJ>'2016-11-11 08:37:45' AND DSJ<'2016-11-14 17:07:53' and CSHRMC='1611000286' and czffs='银联卡'
更新两张表里的某个字段:update TBZDMZYS set czcmc=(select czcmc from YXHIS..TBZDMZYS_bak where TBZDMZYS.ibm=TBZDMZYS_BAK.ibm)

---------------转换拼音码------------------------------
UPDATE YXHQGL..tbwzzdwplb SET CPYM=YXHIS.DBO.GETPY(CMC)
【1】、查询:
select * from tbsystables where cmc='tbzdcycj'
select * From YXHIS2017..tbylkzhcz201701 WHERE CCZY LIKE'%自助机%' ----自助机查询

-----查询重复字段的语句--------
Select * from TBXMFMBMX with(NoLock) where CMBBH='03031' AND CSFXMBM='JYK148'
SELECT * FROM TBXMFMBMX with(NoLock) WHERE CMBBH='03031' AND CSFXMBM IN
(SELECT CSFXMBM FROM TBXMFMBMX with(NoLock) WHERE CMBBH='03031' GROUP BY CSFXMBM HAVING COUNT(CSFXMBM)>1 )

SELECT * FROM A--查询单表
SELECT * FROM A UNION SELECT * FROM B UNION SELECT * FROM C--查询多表,UNION函数要求各表字段属性相同
SELECT A.CSZ'药品编码',A.CMC'药品名称',B.MLSJ'零售价',B.NSL'数量' FROM YXHIS..TBYPXX A,YXHIS..TBYPKC01 B WHERE A.CSZ=B.CYPBM --联合查询

【2】、根据条件修改
UPDATE A SET CMC='1' WHERE CMC='2'

【3】、批量替换:将A表CMC里面所有包含a替换成b而不影响其他内容
UPDATE A SET CMC=REPLACE(CMC,'a','b')

【4】、删除A表数据:
DELETE FROM A--FROM 可不写,此为全部删除
DELETE A WHERE CMC='1'--按条件删除
TRUNCATE TABLE A--快速删除A表数据,快速格式化

【5】、建立表
CREATE TABLE A(CBM VARCHAR(6),CMC VARCHAR(10))--自定义建立
SELECT * INTO A FROM B WHERE 1=2--快速根据B表建立,可作为对B表数据快速备份

【6】、删除表
DROP TABLE A

【7】加字段:
ALTER TABLE A ADD IBM INT--I开头的字段基本都是INT类型
ALTER TABLE A ADD CMC VARCHAR(40)--C开头的字段基本都是VARCHAR类型

ALTER TABLE [dbo].[TBSCBMXJL2016] ADD [NSSY] [numeric](18, 0) NULL
ALTER TABLE [dbo].[TBSCBMXJL2016] ADD [NSSY2] [numeric](18, 0) NULL
ALTER TABLE [dbo].[TBSCBMXJL2016] ADD [NSZY] [numeric](18, 0) NULL
ALTER TABLE [dbo].[TBSCBMXJL2016] ADD [NSZY2] [numeric](18, 0) NULL
ALTER TABLE [dbo].[TBSCBMXJL2016] ADD [NSPO2] [numeric](18, 0) NULL
ALTER TABLE [dbo].[TBSCBMXJL2016] ADD [NCVP] [numeric](18, 0) NULL
SELECT * FROM YSGZZ..TBSCBMXJLBQ111 WHERE 1=2
SELECT * FROM YSGZZ..TBSCBMXJLBQ112 WHERE 1=2

【8】修改字段长度:
SQL SERVER : ALTER TABLE A ALTER COLUMN CMC VARCHAR(100)
ORACLE: alter table test modify(name varchar(255));
MYSQL: alter table test modify column name varchar(255);

【9】删除字段:
ALTER TABLE A DROP COLUMN CBZ

【10】数据插入:
INSERT INTO A(CBM,CMC) VALUES('1','测试')--单条数据插入
INSERT INTO A(CBM,CMC)SELECT '1','测试'--单条数据插入
INSERT INTO A(CBM,CMC)SELECT CBM,CMC FROM B--批量插入B中所有数据

【11】数据截取:
SELECT SUBSTRING(CSCCJ,2,10) ,* FROM TBYPKC03--从第二个字符开始往后截取数据
SELECT LTRIM(CSCCJ) ,* FROM TBYPKC03--函数从字符串左侧删除空格或其他预定义字符。
SELECT RTRIM(CSCCJ) ,* FROM TBYPKC03--函数从字符串右侧删除空格或其他预定义字符。

【12】分组查询
SELECT CBM FROM A GROUP BY CBM
查找A中所有编码重复的数据
SELECT * FROM A WHERE CBM IN(SELECT CBM FROM A GROUP BY CBM HAVING COUNT(CBM)>1)

【13】计算:
合计:
SELECT SUM(MLSJ*NSL) MKCJE FROM TBYPKC03--查询库存总金额
SELECT CYPBM,SUM(MLSJ*NSL) MKCJE FROM TBYPKC03 GROUP BY CYPBM --按药品编码分别统计各药品库存金额
加减乘除:
SELECT MGRJ+MLSJ,MLSJ-MGRJ,MGRJ*MLSJ,MLSJ/MGRJ FROM A

【14】排序
SELECT * FROM A ORDER BY CBM ASC--从小到大排序
SELECT * FROM A ORDER BY CBM DESC--从大到小排序

【15】将A表里面的MDJ四舍五入
UPDATE A SET MDJ=ROUND(MDJ,2)

【16】将表TBCWKFSY的CCH不足三位的数据加0,便于程序排序正常
UPDATE TBCWKFSY SET CCH='00'+CCH WHERE LEN(CCH)<2
UPDATE TBCWKFSY SET CCH='0'+CCH WHERE LEN(CCH)<3 AND LEN(CCH)>1

【17】属性查看语句:
SP_HELP TBYPXX--查看TBYPXX表属性,包括字段属性
SP_HELPTEXT VTBZYBR--查看视图的文本取数属性。

【18】数据转换:
float转varchar格式数据:
select CONVERT(VARCHAR(30),CONVERT(DECIMAL(30,0),cbm))cbm1,* from sheet8--从表格导入数据时会用
时间转字符:
select CONVERT(VARCHAR(7),dyxq,121),* from TBYPKC03--取年月
select CONVERT(VARCHAR(10),dyxq,121),* from TBYPKC03--取年月日

【19】导数据时自定义从某个数字排列:
自定义从某个数字排列:如将库存编码从3730开始往后排序
select identity(int,3730,1) IKCBM1,* into sheet2 from TBYPKC03

【20】CASE语法:
将TBYPXX里面CYPZLFL只区分西药和其他:以下两种语法皆可使用
select CASE CYPZLFL WHEN'西药'THEN'西药'WHEN'中成药'THEN'西药'ELSE '其他'END from tbypxx
select CASE WHEN CYPZLFL='西药'THEN'西药'WHEN CYPZLFL='中成药'THEN'西药'ELSE '其他'END from tbypxx

【21】后台将测试库的报表数据导入正式库,不同服务器间数据操作:

--创建链接服务器
exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '10.10.2.200'
exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , 'sa' , '123qwe,.' --账号密码

--查询示例
select * from ITSV.yxhis.dbo.tbreportxx where cbbmc='自助机住院费用明细表'
select * from yxhis.dbo.tbreportxx where cbbmc='自助机住院费用明细表'

--从测试库里面修改正式库报表内容示例:
UPDATE b SET MDATA=a.MDATA FROM YXHIS..TBREPORTXX A,ITSV.YXHIS.dbo.TBREPORTXX B WHERE A.CID=B.CID AND B.CBBMC='门诊长期医嘱单'
--数据导入示例
insert into ITSV.YXBADB_ICD10.dbo.TBSJKZH_GJ select * from YXBADB_ICD10.dbo.TBSJKZH_GJ
select * into 表 from ITSV.数据库名.dbo.表名

【22】游标简单使用:
简单了解:
use yxhis
go
DECLARE CurTable CURSOR /*定义一个游标*/
FOR
SELECT name FROM sysobjects where name like 'TBZD%' AND TYPE='U' /*设置游标取数来源*/
OPEN CurTable /*打开游标*/
DECLARE @TBNAME VARCHAR(20),@CSQL VARCHAR(5000) /*定义两个局部变量@TBNAME和@CSQL*/
FETCH NEXT FROM CurTable INTO @TBNAME /*将数据放入局部变量@TBNAME中*/
WHILE (@@FETCH_STATUS <> -1) /*@@为全局变量0表示上一个FETCH执行成功,-1所要读取的行不在结果集中,-2被提取的行已不存在(已被删除)*/
BEGIN
begin
SET @CSQL='IF EXISTS(SELECT * FROM '+@TBNAME+') PRINT(''SELECT * FROM '+@TBNAME+''')'
EXEC (@CSQL)
end
FETCH NEXT FROM CurTable INTO @TBNAME
END
CLOSE CurTable /*关闭游标*/
DEALLOCATE CurTable /*删除游标*/

游标使用:
用游标改字段长度:
DECLARE CurTable CURSOR
FOR

select a.name from sysobjects a,syscolumns b
where a.id=b.id and b.name='CSFZL' and a.type='U' and a.name like 'tbzy%'---所有表名为TBZY开头的表里面的包含CSFZL字段都会修改

OPEN CurTable
DECLARE @TBNAME VARCHAR(20)
FETCH NEXT FROM CurTable INTO @TBNAME
WHILE (@@FETCH_STATUS <> -1)
BEGIN
if exists (select * from sysobjects where name=@TBNAME)
EXEC('alter table '+@TBNAME+' ALTER COLUMN CSFZL varchar(20)')
FETCH NEXT FROM CurTable INTO @TBNAME
END
CLOSE CurTable
DEALLOCATE CurTable
GO

---------------------------------------------------------------------------------
现在要删除表1中含有表2中id的数据,可用以下语句

delete from 表1YXHQGL..seet5 where cbm in(select cbm from 表2YXHQGL..tbwzzdwplb)

现在要删除表1中id和name同时等于表2中id和name的数据,可用以下语句:
1
delete from 表1 where exists (select 1 from 表2 where 表1.id=表2.id and 表1.name=表2.name);

-------------------------------------------------------------------------------------------------------------
select * from yxhqgl..tbwzzdkw
select * from yxhqgl..tbwzwpkc_01 order by ikcbm desc

insert yxhqgl..tbwzwpkc_01
drop table a

SQL SERVER数据库基本语法汇总,仅代表个人整理,仅供参考的更多相关文章

  1. SQL Server 数据库还原进度查看

    SQL Server 数据库还原进度查看 关键字:数据库,还原,进度,查看 文档说明: 本文档受某实际需求启发,某约500G大小数据库还原,由于对应服务器性能较差(内存仅4G且可用内存仅2.8G),数 ...

  2. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  3. 通过一个正则表达式,让SQL Server数据库的带参sql也支持位置参数语法!

    .NET Framework 2.0 中,Microsoft 在 System.Data.Common 名称空间下定义了一组类用来让程序员编写适用于不同数据库的数据访问代码,而且还在 Enterpri ...

  4. 极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)

    原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方 ...

  5. Microsoft SQL Server 数据库 错误号大全

    panchzh :Microsoft SQL Server 数据库 错误号大全0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒 ...

  6. 【转】sql server数据库操作大全——常用语句/技巧集锦/经典语句

    本文为累计整理,有点乱,凑合着看吧! ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ☆ ☆ ☆ sql 宝 典 ☆ ☆ ☆ 2012年-8月 修订版 ☆ ...

  7. SQL SERVER 数据库备份的三种策略及语句

    1.全量数据备份    备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋 ...

  8. SQL Server数据库性能优化之SQL语句篇【转】

    SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...

  9. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

随机推荐

  1. 【Offer】[55-2] 【平衡二叉树】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入一棵二叉树的根节点,判断该树是不是平衡二叉树.如果某二叉树中任意节点的左.右子树的深度相差不超过1,那么它就是一棵平衡二叉树.例如, ...

  2. 相同类中方法间调用时日志Aop失效处理

    本篇分享的内容是在相同类中方法间调用时Aop失效处理方案,该问题我看有很多文章描述了,不过大多是从事务角度分享的,本篇打算从日志aop方面分享(当然都是aop,失效和处理方案都是一样),以下都是基于s ...

  3. 前端-HTML-web服务本质-HTTP协议-请求-标签-01(待完善)

    目录 前端 什么是前端 什么是后端 学习流程 前端三剑客的形容 web服务的本质 测试--浏览器作为客户端向服务器发起请求 浏览器输入网址回车发生了几件事 ***** HTTP协议(超文本传输协议) ...

  4. Mybatis打印SQL

    配置mybatis日志级别,打印SQL 1.方案一:配置日志级别 logging.level.org.springboot.demo.mapper=debug 其中org.springboot.dem ...

  5. Mybatis使用入门,这一篇就够了

    mybatis中,封装了一个sqlsession 对象(里面封装有connection对象),由此对象来对数据库进行CRUD操作. 运行流程 mybatis有一个配置的xml,用于配置数据源.映射Ma ...

  6. 让我们一起学习如何使用AIDL,它其实并不难(Android)

    前言 该篇文件讲述的是AIDL最基本的使用(创建.调用),关于对于AIDL更深的认识,在后续的随笔中,会持续与大家分享并探讨. 正文 AIDL的定义(什么是AIDL?) AIDL的应用场景(AIDL可 ...

  7. Python语法基础之DataFrame

    转载自https://blog.csdn.net/lijinlon/article/details/81676859 Python数据分析首先需要进行数据清洗处理,涉及到很多DataFrame和Ser ...

  8. 线控性能比拼,MKZ与CRV作为自动驾驶开发平台的全面测评

    全球自动驾驶创业公司最主流的测试开发用车是林肯MKZ,这是因为其高性能高精度的线控能力表现,易于使用逆向工程实现改装,以及存在成熟的线控改造服务提供商AS和Dataspeed,共同为自动驾驶初创及辅助 ...

  9. 微服务SpringCloud之注册中心Consul

    Consul 介绍 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发 ...

  10. java架构之路-(mysql底层原理)Mysql之让我们再深撸一次mysql

    让我再深撸一次mysql吧,这次主要以应对面试来说说mysql,大概几个方向,索引结构,查询引擎,索引优化,explain的详解和trace工具的使用. 索引: 我们先来看一下mysql的B+tree ...