玖叶教程网

前端编程开发入门

SQL - 通过TSQL代码增删改数据 152

#头条创作挑战赛#

插入数据

向表中新增数据在数据库中叫做插入数据(insert into)可使用以下几种方式插入数据

1)使用标准的插入数据格式(推荐使用)

--切换至表所在的数据库
--否则插入数据时会报错
--报错信息:对象名 '表名' 无效
use School;

--插入数据的标准格式
insert into 表名 (列名1,...,列名N) values(值1,...,值N)
--示例:向Class表中插入一条数据
--以便情况下自动编号列不能填写数据(后面说明)
insert into Class (CName, CDesc, CIsDel)
values ('晋','西晋',0)

2)省略列名格式;前提:除了自动编号列,其他列需要依次填写数据(可以用,不推荐)

--省略列名 CName, CDesc, CIsDel
--直接填写数据
insert into Class values ('晋','东晋',0)

3)向表中的部分列插入数据;前提:其他列必须是自动编号或有默认值或可为空的列

--SId, SCId, SName, SAge, SGender, SPhone, SAddress
--SId(自动编号列)SAge, SGender, SPhone, SAddress(默认值列)
insert into 
Student (SCId, SName, SAge)
values(6,'张昭',50)

4)向表中插入多条数据(使用部分列格式)

insert into Student (SCId, SName, SAge)
select 2,'蒙武',38 union
select 2,'蒙恬',38 union
select 2,'蒙毅',38 

5)如果列名过多可通过鼠标拖拽列名直接到查询窗口插入语句中

拖拽列名至插入语句中

6)自动编号列一般无法通过手动插入数据(无论设计还是代码模式)因为自动编号列的属性 identity_insert 值默认为 off(关闭状态)

自动编号列无法插入

要想手动插入数据需要将自动编号列的属性 identity_insert 值设置为 on(打开状态)

--1 设置identity_insert为 on
set identity_insert Class on
--2 编写插入数据的语句
insert into 
Class (CId, CName, CDesc, CIsDel)
values(11,'唐','唐朝',0)
--再次执行此插入语句即可插入数据

7)如果数据是非数值类的,数据前面使用N为前缀(作用:简单来说就是防止数据出现乱码)

insert into 
Class (CName, CDesc, CIsDel)
values(N'宋',N'北宋',0)

通过代码插入数据

删除数据

删除数据有三种方式:

1)使用 delete/truncate 删除数据,只删除表中数据,不会删除表结构

2)使用 drop 不只删除数据,还会删除表结构

3)通过更新标志字段(如IsDel)决定是否删除数据(被称为软删除)

--不带条件的删除语句
--将删除所有的表中数据(不带条件将会删除所有数据即清空数据)
delete from Student
truncate table Student
drop table Student

--带条件的删除数据(多为delete与软删除方式中使用)
--条件中的符号都有如 =,<>(不等于)>,>=,<=,and(并且) or(或者)等
--单条件删除表中性别为男的数据(0:女  1:男)
delete from Student where SGender = 1
--多条件删除数据
--删除表中性别为男并且年龄是20岁的数据(同时满足两个条件)
delete from Student where SGender = 1 and SAge=20

--删除表中性别为男或年龄是20岁的数据(满足任一条件)
delete from Student where SGender = 1 or SAge=20

清空数据中使用 delete 与 truncate 的区别

delete from 表名
truncate table 表名
--区别:
	--1)对自动编号的影响
	--使用delete语句清空数据,自动编号列不会回到初始值 1
  --会在之前的编号基础上继续累加
	--使用truncate语句清空数据,自动编号会回到初始值 1
	
    --2)如果要清空的数据在数百万行时建议使用truncate语句
	 --因为truncate语句会按照最小的方式来记录日志因此比较高效

修改数据

在数据库中修改事件被称为更新(update)数据,一般配合条件表达式

--更新数据格式
update 表名  set 列1=值1,...,列N=值N where 条件

--不带条件将会更新表中所有数据
update Student set SGender=1

--更新带条件的数据
--将条件CIsDel=1的数据更新性别为男 SGender=1
update Student set SGender=1 where CIsDel=1

--将名为周瑜的性别修改为男
update Student set SGender=1 
where SName = N'周瑜'

更新数据

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言