Sql server基础使用(四):数据增删改

对所学Sqlserver知识进行一下记录总结,某些用法之间还可以关联使用,欢迎补充和讨论。本人比较懒,结果的截图暂时就先不传了,什么时候想起来再说吧~~

1.数据表增加数据

增加数据,下面列出我所知道的几种方法

(1)普通插入 inset into + values

INSERT INTO dbo.basic_User ( userID, userName, age, gender, birthday, DeptID, Remark )
VALUES  ( 'ceshi','测试',20,'男/女',GETDATE(),5,'我是备注')

(2)select 插入

INSERT INTO dbo.basic_User ( userID, userName, age, gender, birthday, DeptID, Remark )
SELECT 'ceshi','测试',20,'男/女',GETDATE(),5,'我是备注'

(3)这里呢,增加点其他的知识,变量

----定义变量 需要用 DECLARE 进行定义,变量前用 @ 符号作为前缀,后面加上变量的数据类型(table 也可以定义变量)
DECLARE @userID AS VARCHAR(30),@userName VARCHAR(30), @age INT, @gender VARCHAR(30), @birthday DATETIME, @DeptID VARCHAR(30), @Remark VARCHAR(100)
----给变量赋值
SET @userID='ceshi'
SET @userName='测试'
SET @age=18
SET @gender='男/女'
SET @birthday='2020-01-01'
SET @DeptID='财务'
SET @Remark='我是备注'

----除了直接赋值.也可以做查询赋值,但是需要注意的是,查询语句的返回值必须是 唯一行,唯一列,否则报错,所以我习惯在查询是加上 top 1
SET @userID=(SELECT TOP 1 userID FROM dbo.basic_User WHERE userName='张三')

----此时可以这样插入数据
INSERT INTO dbo.basic_User ( userID, userName, age, gender, birthday, DeptID, Remark )
VALUES  ( @userID,@userName,@age,@gender,@birthday,@DeptID,@Remark)

----或
INSERT INTO dbo.basic_User ( userID, userName, age, gender, birthday, DeptID, Remark )
SELECT  @userID,@userName,@age,@gender,@birthday,@DeptID,@Remark

(4)从其他表插入,如下,SELECT 的表数据必须与要插入的表结构相同,且数据类型相同,特殊的字段也可以自定义、或使用变量等,这时候会一次性导入 basic_User111 表中符合条件的所有数据,这种情况比较常用于一次性导入多条数据

INSERT INTO dbo.basic_User ( userID, userName, age, gender, birthday, DeptID, Remark )
SELECT userID, userName, age, gender, birthday, DeptID,'我是特殊的字段' Remark FROM dbo.basic_User111

(5)比较特殊的

----将源表数据插入到其他表 这里运行后,数据库会新增一个名叫 test1 的数据表,表结构和数据与basic_User完全一样,当然查询语句也可以加条件 WHERE ,这样新表的结构相同,数据只有符合 WHERE 条件的数据
SELECT * INTO test1 FROM dbo.basic_User
----说到这里,如果只想建一个与原表结构相同的空表,您可以这样做 (top 0 意思就是只查询 前面0条数据,也就是一条数据也不查出来)
SELECT TOP 0 * INTO test2 FROM dbo.basic_User
----或 (设置一个永远为false 的 where 条件)
SELECT * INTO test3 FROM dbo.basic_User WHERE 1=2

(6)从其他数据库或EXCEL表中插入

  这里就不做演示了,具体步骤大概如下:

  右键数据库名->任务->导入数据->下一步(这里首先选择数据源,一般我比较常用到的就是 EXCEL导入 和 从其他服务器的 Sqlserver 数据库导入)...按步骤走就可以

2.数据表修改数据

友情提示,删改的时候,一定要慎重,慎重,再慎重,
一定不要忘记加 where 条件,只操作需要删改的数据,如果不加where条件,会删改表中的所有数据

小技巧:修改/删除时,不一定非要手写修改语句,您可以先根据条件查出要修改/删除的数据,然后 按 Ctrl+Shift+Q(或 右键->在编辑器中设计查询))在弹出的窗体的空白地方点击右键->更改类型->更新(增删改查都可以这么操作)->确定

----普通修改 要修改的多个字段之间用 逗号 隔开 
UPDATE dbo.basic_User SET userName='张三三',Remark='普通修改' WHERE userName='张三'

----如果需要在原字段数据中拼接一些东西,或是int/decimal等类型 加/减 值时,您可以这么做
UPDATE dbo.basic_User SET userName=userName+'',Remark='拼接修改字符串' WHERE userName='张三'
UPDATE dbo.basic_User SET age=age+1,Remark='增减int型数据' WHERE userName='张三'

----多表联查修改,操作这些时,一定要确定您对表连接等已经相当熟悉甚至精通了,否则还是建议慎用
----比如根据表B中的某些信息,修改相关联的表A中的数据,FROM 后面跟着的表就是要修改的表
UPDATE  Table_A
SET           AAA ='要修改成的信息'
FROM      Table_A INNER JOIN
                   Table_B AS b ON Table_A.AID = b.BID
WHERE   (b.AID = 3)

----或直接将表B中的数据更新到表A中
UPDATE  Table_A
SET           AAA =b.BBB
FROM      Table_A INNER JOIN
                   Table_B AS b ON Table_A.AID = b.BID
WHERE   (b.AID = 3)

3.数据表删除数据

----删除数据 再次提醒,不要忘记 WHERE条件,否则整张表的数据都将被删掉
----也可以多表关联删除,方法和修改是一样的
DELETE FROM dbo.basic_User WHERE userName='张三'

 

posted @ 2023-11-10 11:19  v迷糊v  阅读(93)  评论(0)    收藏  举报