日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

SQL 增删改查等操作

發(fā)布時(shí)間:2023/12/9 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL 增删改查等操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

SQL 增刪改查等操作

  • 增加
  • 刪除
  • 修改
  • 查詢
  • SQL 將查詢的數(shù)據(jù)插入到另一張表中
  • SQL 將JSON格式的數(shù)據(jù)轉(zhuǎn)換后解析成SQL數(shù)據(jù)
  • 未完待續(xù)...

增加

  • 增加一整條完整記錄
--增加一整條完整數(shù)據(jù),可以省略各個(gè)字段名 INSERT INTO [Test].[dbo].[Test.Source] VALUES (N'11',N'21',N'k',N'女',N'1','2020-11-01 00:00:00.000')
  • 結(jié)果:

  • 增加多條完整記錄
--增加多條完整數(shù)據(jù) INSERT INTO [Test].[dbo].[Test.Source] VALUES (N'12',N'22',N'l',N'女',N'1','2020-11-01 00:00:00.000'),(N'13',N'23',N'm',N'男',N'2','2019-08-01 00:00:00.000'),(N'14',N'24',N'n',N'女',N'3','2018-01-01 00:00:00.000')
  • 結(jié)果:

  • 增加指定字段的記錄
--增加指定字段的數(shù)據(jù) INSERT INTO [Test].[dbo].[Test.Source] ([id],[工號(hào)],[姓名],[性別]) VALUES (N'15',N'25',N'O',N'男')
  • 結(jié)果:

  • 增加字段
ALTER TABLE [表名] ADD [字段名] DECIMAL(38, 0) NULL DEFAULT 0

刪除

  • 刪除數(shù)據(jù)庫(kù)
DROP DATABASE 數(shù)據(jù)庫(kù)名稱
  • 刪除數(shù)據(jù)庫(kù)表
  • DELETE
  • --只刪除表里的數(shù)據(jù),表的結(jié)構(gòu)不受影響,自動(dòng)編號(hào)不會(huì)恢復(fù)為初始值 DELETE FROM 表名 --表名后還可以根據(jù)需求接WHERE子句,限定刪除條件 DELETE FROM 表名 WHERE [CreateTime] < N'2020-01-01 00:00:00.000'
  • TRUNCATE
  • --刪除表里的全部數(shù)據(jù),無(wú)法接WHERE子句限定刪除條件,自動(dòng)編號(hào)恢復(fù)為初始值 --由于TRUNCATE采取按最小方式記錄日志,所以刪除效率高于DELETE,且不觸發(fā)DELETE觸發(fā)器 TRUNCATE TABLE 表名
  • DROP
  • --刪除表本身,表中的數(shù)據(jù)以及表的結(jié)構(gòu)(列、鍵、約束、視圖)全部刪除 DROP TABLE 表名
    • 刪除字段
    ALTER TABLE [表名] DROP COLUMN [字段名]

    修改

    • SQL 修改表名
    EXEC SP_RENAME '原表名', '新表名'

    • SQL 字段操作
  • 修改字段
  • --修改字段名 EXEC SP_RENAME '表名.原列名','新列名'
  • 修改字段數(shù)據(jù)類型
  • --修改字段數(shù)據(jù)類型 ALTER TABLE [表名] MODIFY (COLUMNName 數(shù)據(jù)類型) ALTER TABLE [表名] ALTER COLUMN [列名] DECIMAL(38, 0) NULL
    • 修改數(shù)據(jù)
    UPDATE [表名] SET [修改字段]=修改內(nèi)容 WHERE 修改限定條件 --舉例:將[Test].[dbo].[Test.Source]表中工號(hào)為20的員工工齡從“1”改為“2” UPDATE [Test].[dbo].[Test.Source] SET [工齡]=N'2' WHERE [工號(hào)]=N'20'
    • 修改前:
    • 修改后:

    查詢

    --查詢語(yǔ)句 SELECT * FROM 表名 --查詢指定列 SELECT 表名.指定列名稱1, 表名.指定列名稱2 FROM 表名 --查詢條件 SELECT * FROM 表名 WHERE 條件 --模糊查詢 SELECT * FROM 表名 WHERE 列名 LIKE 模糊值 --查詢以A作為起始的數(shù)據(jù) SELECT * FROM 表名 WHERE 列名 LIKE 'A%' --查詢A*的數(shù)據(jù) SELECT * FROM 表名 WHERE 列名 LIKE 'A_' --查詢A**的數(shù)據(jù) SELECT * FROM 表名 WHERE 列名 LIKE 'A__' --查詢包含A的數(shù)據(jù) SELECT * FROM 表名 WHERE 列名 LIKE '%A%' --查詢包含A或B的數(shù)據(jù) SELECT * FROM 表名 WHERE 列名 LIKE '[A,B]%' --查詢除包含A和B以外的全部數(shù)據(jù) SELECT * FROM 表名 WHERE 列名 LIKE '[^A,B]%' --查詢字段值為空的數(shù)據(jù) SELECT * FROM 表名 WHERE 列名 IS NULL --查詢字段值非空的數(shù)據(jù) SELECT * FROM 表名 WHERE 列名 IS NOT NULL --范圍查詢 SELECT * FROM 表名 WHERE 列名 BETWEEN MIN AND MAX --查詢前10條記錄 SELECT TOP 10 * FROM 表名 --允許臟讀查詢 SELECT * FROM 表名 WITH(NOLOCK)

    SQL 將查詢的數(shù)據(jù)插入到另一張表中

    • 查詢?cè)幢碇行詣e為“男”的所有行數(shù)據(jù)插入到目標(biāo)表中
  • 操作前:
  • 操作后:
  • SQL 將JSON格式的數(shù)據(jù)轉(zhuǎn)換后解析成SQL數(shù)據(jù)

    DECLARE @input1 NVARCHAR(MAX)='{"AssociatedConditionDTO":[{"associateDimensionName":"dim_ghs1","id":"0","relevancy":"dim_ghs3.rowguid=dim_ghs1.rowguid "},{"associateDimensionName":"dim_ghs2","id":"1","relevancy":"dim_ghs3.salestaxrateid=dim_ghs2.salestaxrateid and dim_ghs3.stateprovinceid=dim_ghs2.stateprovinceid "}]}' CREATE TABLE #1(output1 NVARCHAR(MAX)) DECLARE @sqlStr NVARCHAR(MAX) SET @sqlStr='SELECT output1='''+REPLACE(@input1,'}]}','}]')+'''' PRINT (@sqlStr) INSERT INTO #1 EXEC(@sqlStr) DECLARE @json1 NVARCHAR(MAX) SELECT * FROM #1 SELECT SUBSTRING(output1, CHARINDEX(':[',output1)+1,LEN(output1)-CHARINDEX('":',output1)) FROM #1 SET @json1=(SELECT SUBSTRING(output1, CHARINDEX(':[',output1)+1,LEN(output1)-CHARINDEX('":',output1)) FROM #1) SELECT * FROM OPENJSON(@json1) WITH ( rename VARCHAR(50) '$.associateDimensionName', id VARCHAR(15) '$.id',relevancy VARCHAR(150) '$.relevancy' ) DROP TABLE #1
    • 結(jié)果:
    • 可以看出我們的代碼有些冗長(zhǎng),接下來(lái)我們對(duì)代碼進(jìn)行優(yōu)化。
    DECLARE @input NVARCHAR(MAX)='{"AssociatedConditionDTO":[{"associateDimensionName":"dim_ghs1","id":"0","relevancy":"dim_ghs3.rowguid=dim_ghs1.rowguid "},{"associateDimensionName":"dim_ghs2","id":"1","relevancy":"dim_ghs3.salestaxrateid=dim_ghs2.salestaxrateid and dim_ghs3.stateprovinceid=dim_ghs2.stateprovinceid "}]}' --把最后的大括號(hào)去掉 SET @input=REPLACE(@input,'}]}','}]') SELECT @input --從中括號(hào)出現(xiàn)的位置開(kāi)始截取,到最后一位 SET @input=SUBSTRING(@input,CHARINDEX('[',@input),1000) SELECT @input PRINT (@input) --解析json SELECT * FROM OPENJSON(@input) WITH ( rename VARCHAR(50) '$.associateDimensionName', id VARCHAR(15) '$.id',relevancy VARCHAR(150) '$.relevancy' )
    • 優(yōu)化后得到相同的輸出結(jié)果:

    未完待續(xù)…

    總結(jié)

    以上是生活随笔為你收集整理的SQL 增删改查等操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。