SQL Server数据库知识点整理

0、在SQLSERVER安装目录下【H:\DataBase\SQLServer\MicrosoftSQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\】找到需要还原的文件(*.mdf和*.LDF),如BJ808-GB.mdf、BJ808-GB.LDF文件,将这两个文件复制到需要还原的数据库安装对应目录下,在登录数据刷新一下数据库即可出现已还原的数据库。

1、查询表格新增序号:ROW_NUMBER()OVER(ORDER BY LOGID)

  实例:SELECT ROW_NUMBER()OVER(ORDER BY A00) AS NUMBER FROM A01

2、查询指定行数据

SELECT * FROM(SELECT JXKH2202,NUMBER = ROW_NUMBER() OVER (ORDER BY JXKH2200) FROM JXKH22 WHERE JXKH2212 = '1')J22 WHERE NUMBER = 1

3、获取property文件值。

String dbtype = System.getProperty("dataBaseType");

4、日期转换,比如2021-01-17 21:42:40

SELECT CONVERT(VARCHAR(20),LOGTIME,120) FROM BAP_OPERATIONLOG;

Select CONVERT(varchar(100), GETDATE(), 0);--;-- 05 16 2006 10;--57AM 
Select CONVERT(varchar(100), GETDATE(), 1);-- 05/16/06 
Select CONVERT(varchar(100), GETDATE(), 2);-- 06.05.16 
Select CONVERT(varchar(100), GETDATE(), 3);-- 16/05/06 
Select CONVERT(varchar(100), GETDATE(), 4);-- 16.05.06 
Select CONVERT(varchar(100), GETDATE(), 5);-- 16-05-06 
Select CONVERT(varchar(100), GETDATE(), 6);-- 16 05 06 
Select CONVERT(varchar(100), GETDATE(), 7);-- 05 16, 06 
Select CONVERT(varchar(100), GETDATE(), 8);-- 10;--57;--46 
Select CONVERT(varchar(100), GETDATE(), 9);-- 05 16 2006 10;--57;--46;--827AM 
Select CONVERT(varchar(100), GETDATE(), 10);-- 05-16-06 
Select CONVERT(varchar(100), GETDATE(), 11);-- 06/05/16 
Select CONVERT(varchar(100), GETDATE(), 12);-- 060516 
Select CONVERT(varchar(100), GETDATE(), 13);-- 16 05 2006 10;--57;--46;--937 
Select CONVERT(varchar(100), GETDATE(), 14);-- 10;--57;--46;--967 
Select CONVERT(varchar(100), GETDATE(), 20);-- 2006-05-16 10;--57;--47 
Select CONVERT(varchar(100), GETDATE(), 21);-- 2006-05-16 10;--57;--47.157 
Select CONVERT(varchar(100), GETDATE(), 22);-- 05/16/06 10;--57;--47 AM 
Select CONVERT(varchar(100), GETDATE(), 23);-- 2006-05-16 
Select CONVERT(varchar(100), GETDATE(), 24);-- 10;--57;--47 
Select CONVERT(varchar(100), GETDATE(), 25);-- 2006-05-16 10;--57;--47.250 
Select CONVERT(varchar(100), GETDATE(), 100);-- 05 16 2006 10;--57AM 
Select CONVERT(varchar(100), GETDATE(), 101);-- 05/16/2006 
Select CONVERT(varchar(100), GETDATE(), 102);-- 2006.05.16 
Select CONVERT(varchar(100), GETDATE(), 103);-- 16/05/2006 
Select CONVERT(varchar(100), GETDATE(), 104);-- 16.05.2006 
Select CONVERT(varchar(100), GETDATE(), 105);-- 16-05-2006 
Select CONVERT(varchar(100), GETDATE(), 106);-- 16 05 2006 
Select CONVERT(varchar(100), GETDATE(), 107);-- 05 16, 2006 
Select CONVERT(varchar(100), GETDATE(), 108);-- 10;--57;--49 
Select CONVERT(varchar(100), GETDATE(), 109);-- 05 16 2006 10;--57;--49;--437AM 
Select CONVERT(varchar(100), GETDATE(), 110);-- 05-16-2006 
Select CONVERT(varchar(100), GETDATE(), 111);-- 2006/05/16 
Select CONVERT(varchar(100), GETDATE(), 112);-- 20060516 
Select CONVERT(varchar(100), GETDATE(), 113);-- 16 05 2006 10;--57;--49;--513 
Select CONVERT(varchar(100), GETDATE(), 114);-- 10;--57;--49;--547 
Select CONVERT(varchar(100), GETDATE(), 120);-- 2006-05-16 10;--57;--49 
Select CONVERT(varchar(100), GETDATE(), 121);-- 2006-05-16 10;--57;--49.700 
Select CONVERT(varchar(100), GETDATE(), 126);-- 2006-05-16T10;--57;--49.827 
Select CONVERT(varchar(100), GETDATE(), 130);-- 18 ???? ?????? 1427 10;--57;--49;--907AM

5、字符串转数字,使用函数CONVERT

  SELECT CONVERT(NUMERIC(10,2),JXKH0503) AS JXKH0503 FROM JXKH05

  如果值为空,则显示0

 SELECT ISNULL(CONVERT(NUMERIC(10,0),JXKH0503),0) AS SCORE FROM JXKH05

6、修改字段长度

ALTER TABLE JXKH_PSKHDCPD ALTER COLUMN XJNR VARCHAR(4000)

7、修改表中字段名称:EXEC SP_RENAME '表A.列','新列名','COLUMN';

 EXEC SP_RENAME 'JXKH_JXQJ.DESC','DESCS','COLUMN';

8、SQL自动生成UUID

    SELECT CAST(REPLACE(NEWID(), '-', '-') AS VARCHAR(36)) AS UUID

9、对比两个库中不相同的表,A库中10表,B库中8张表,找出其他2张表。

     SELECT * FROM A_GBZ_GB_QSTG_2020_PSKH.SYS.TABLES WHERE NAME NOT IN (SELECT NAME FROM A_GBZ_GB_QSTG_2020.SYS.TABLES)

10、把一个库中表添加到另一个库中,如下

      SELECT  'SELECT *  INTO  B.dbo.'+name+'  FROM A.dbo.'+name FROM sys.tables

11、查询身份证号码重复的数据

     SELECT * FROM A01 WHERE A0184 IN (SELECT A0184 FROM A01 GROUP BY A0184 HAVING COUNT(A0184) > 1);

12、SQL SERVER中数字小数保留后两位(四舍五入),使用的函数CONVERT,示例如下

 SELECT 
    CONVERT(NUMERIC(10,2),A.DCSZBL) AS DCSZBL
FROM JXKH_CYRSSJTJ A

12、将数据库表结构及数据复制到另一张表中
(1)Oracle中,如果目标表不存在:
   CREATE TABLE 目标表 AS SELECT * FROM 原表;
   Oracle中,如果目标表存在:
   INSERT INTO 目标表 SELECT * FROM 原表;
(2)SQL SERVER中,如果目标表不存在:
   SELECT * INTO 目标表 FROM 原表;
   SQL SERVER中,如果目标表存在:
   INSERT INTO 目标表 SELECT * FROM 原表;

13、根据字段值拼接INSERT语句

SELECT 
      'INSERT INTO PSKH65(JXKH6500,B00,JXKH6501,JXKH6502,JXKH6504,PXH,ZDYXB0156)VALUES('''+CONVERT(varchar(50),B00)+''','''+CONVERT(varchar(50),B0101)+''','''+CONVERT(varchar(50),B0104)+''','''+CONVERT(varchar(50),B0144B)+''','''+CONVERT(varchar(50),BJXB0168)+''','''+CONVERT(varchar(50),B0131)+''')'';''' AS UPDATESA,
       B00, 
       B0101 AS JXKH6501,
       B0104 AS JXKH6502,
       B0144B AS JXKH6504,
       BJXB0168 AS PXH,
       B0131 AS ZDYXB0156
FROM B01
WHERE 
B0144B IN ('A109439F-DBBD-40E7-98F1-9EA44A3BB5B5','BBA35F16-5762-4B16-B50C-3A270D8FBD12')

14、sqlserver复制表
    sqlserver中通用的两种复制表的两种方法
  (1)目标表不存在
   select  * into 目标表 from 原表
   (2)目标表存在只复制原表中的数据
   insert into 目标表 select * from 原表

15、查询重复数据:

SELECT * FROM JXKH_PSKHDCPD WHERE A0184 IN (SELECT A0184 FROM JXKH_PSKHDCPD GROUP BY A0184 HAVING COUNT(*) > 1) ORDER BY A0184;

16、查询表死锁

SELECT  
      DISTINCT
      --REQUEST_SESSION_ID AS 进程,
      --OBJECT_NAME(RESOURCE_ASSOCIATED_ENTITY_ID) 被锁表名,
      'KILL '+ CAST(REQUEST_SESSION_ID AS NVARCHAR(36)) +';'  AS 执行死锁语句
FROM SYS.DM_TRAN_LOCKS 
WHERE RESOURCE_TYPE = 'OBJECT';

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值