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='张三'
浙公网安备 33010602011771号