sql数据库增删改查语句讲解

发布时间:2020-09-22编辑:脚本学堂
有关sql server数据库中增删改查语句的用法,包括数据的插入、数据的更新、数据的删除等操作,并介绍了sql数据库一次性插入多条记录的方法。

sql数据库增删改查语句

一、sql数据的插入:(增)
insert into 表名(字段列表) values(值列表)
如果不写字段列表就要为表添加全部的列数据
其实into也可以省略
每次只能插入一条数据
1.如果字段可以为null或有默认值,也可以在添加值的时候使用null/default代替 ,但不能什么都不填
2.非空字段一定要传入值
3.插入的值必须要符合表的Check约束
4.所有的字段都可以使用单引号’’ 如果本来是字符串的值 没有加‘ ’号,那么会报错,因为会被当成变量
5.日期值一定要加单引号,如果没有加也不会报错,但显示的是系统默认值1905-6-20
6.如果表没有设置自动增长标识种子,那么添加字段的值要从id开始 也就是标识列开始

二、sql数据更新(数据修改) 修改删除一定需要考虑有没有条件
语法:
update 表名 set 字段=值/表达式 where 条件
一般来说可以作为是条件的是主键或唯一键
1.多条件查询要用and连接
2.修改多个字段用,号隔开
Null值的处理:
如果要把本来是null值的数据改成别的数据 使用is null不是=号,如下把Person表中是null的电话号码改成110 代码如下:
 

update Person set phone=‘110’where phone is null
 

如果把本来有的数据改成null值的话 就用=号赋值就可以,不用用is 但赋的这个null值不可以加单引号,大小写都不要紧 如下:
 

Update Person set phone=NUll where id=3

三、sql数据的删除:只是删除表的数据行
语法:
Delete 【from】 表名 where 条件
1.删除是一条一条删除,所有效率低下,它每一次删除都要将操作写入到日志文件中,所以效率低下,而且标识列不会从种子值重新计算,而是接着上次删除最后的标识列,比如删除了标识列为4的行数据,那么再添加一条数据标识列就从5开始
--truncate 删除方法:
语法:truncate table 表名         --没有条件
它是一次性删除整个表  这种删除方式可以只写入一次日志文件,删除后标识列会从种子值重新计算 如设置的标识种子是1,就从1

四、sql数据检索:数据的搜索 也就是查询--返回虚拟结果集
语法:
select 字段列表/*from 表列表 where 条件
 

eg:select name,age,sex from Student where id=10

添加虚拟结果集的列名:设置列名通过as,也可以用= 也就是字段as值 如:name as 姓名  或name=姓名
--select可以做查询,也可以赋值和输出如:
select 1  输出的结果是1
select 1+1  输出的结果是2
select '1'+1  结果也是2
select 1+‘1’输出的结果是2
select ‘1’+‘1’  输出的结果是11
只有当加号的两边都是字符串时,是字符串连接

五、一次性插入多条记录  (很少使用,效率太低)
1、将数据移动到新表中  新表不能先存在,它是系统自动创建的,它会根据所查询的列自动生成一个对应的表结构
生成的表结构只保留字段名称和类型以及标识列属性,其它的类似于主键,唯一键,关系等约束都没有。
 

Select * into newGrade from grade
 

然后,再删除原表数据:
 

Truncate table grade

将临时表的数据移动到已经存在的源表中
 

--目标表必须已经存在,且查询出的列的类型和数量必须和已经存在的目标表的结构一致,且不能破坏目标表的数据完整性。
*Insert into 目标表 select * from 源表
Insert into grade select classname from newGrade
eg:
select * into newPerson from Person
truncate table Person
insert into Person select name,age from newPerson

注意:也可以用数据的导出和导入。