前言
数据库的原理就是增删改查,本次将用T-SQL 实现对数据库的增删改。查询会在下一篇博客详细的讲解。
一. 插入数据
1.1 插入一条数据
/*
* 注意事项: 1. [中括号]中是可选项,可以省略不写
* 2. 标识列不可以添加数据,系统会自动生成数据
*/
--1.使用 insert values 插入一行数据
语法:
insert [into] 表名[字段,字段,字段,...]
values('值','值','值',...)
例如:
insert into Student(StudentNo,StudentName,Age)
value('S122020','小源',19)
--2.简写 省略列名,列表数量和表中的值以及数据类型必须一致,自增列除外
语法:
insert 表名
values('值','值','值',...)
例如:
insert Student
value('S122020','小源',19)
1.2 插入多条数据
--1.使用 insert union 插入多行数据 (多行插入)
--最后一行不用写 union
语法:
insert [into] 表名[字段,字段,字段,...]
select '字段','字段','字段',... union
select '字段','字段','字段',... union
select '字段','字段','字段',...
例如:
insert into Student(StudentNo,StudentName,Age)
select 'S122020','小源',19 union
select 'S122021','小红',18 union
select 'S122022','小洋',18
--2.使用 insert select 插入多行数据 (选择插入)
--从指定表中选出指定数据,插入到新表中,新表必须提前创建好,并且数据类型必须一直
语法:
insert [into] 新表名[字段,字段,字段,...]
select 字段,字段,字段,... -
from 原表名
例如:
insert into Address_IS(SName,Phone,Address)
select StudentName,Phone,Address
from Student
--3.使用 select into 插入多行数据 (生成表插入)
--从指定表中选择指定数据,不需要创建表,系统会自动生成一个新表
语法:
select 字段,字段,字段,...
into 新表名
from 原表名
例如:
select StudentName,Phone
into Address_SI
from Student
二. 删除数据
两种删除方式的区别:
1.truncate删除数据后,标识列会从新标记
delete删除数据后,标识列不会从新标记
2.truncate比delete删除时运行数据快
3.truncate删除数据后不能恢复,一般情况下不会使用
2.1 使用delete删除数据
/*
* 注意事项:1.不带where条件,会删除所有数据
* 2.删除时须遵循,先删除从表中数据,在删除主表主数据
*/
--使用delete from 删除数据
语法:
delete from 表名
[where 删除条件]
例如:
--带条件删除一行数据
delete from Student
where StudentName='小源'
--不带条件删除所有数据
delete from Student
2.2 使用truncate结构删除
/*
* 注意事项:1.不能用于有外键约束引用的表
* 2.结构删除不能带条件
*/
--使用truncate table 删除所有数据
语法:
truncate table 表名
例如:
truncate table Student
三. 更新数据
3.1 使用update更新数据
/*
* 注意事项: 1.如果不添加条件会更新所有数据
* 2.在更新数据时,最好添加上where条件
* 底层原理: 底层有个临时表 inserted、deleted分别存储临时的更新删除信息
* 修改原理 == 先删除后添加
*/
--使用 update 更新数据
语句:
update 表名
set 列=更新值,列=更新值,...
[where 更新条件]
例如:
--不带条件会更新所有数据
update Student
set Sex='男'
--待条件会更新满足条件的数据
update Student
set Sex='女'
where StudentName='小源'