注:此篇文章仅介绍sql数据操纵的语言基础,不涉及高级操纵。
通常情况下,我们总会听到掌握了“增删改查,你就拿下了sql语句的半壁江山”这句话。从一开始的不以为然到今天的深以为然,我认为sql语句的基础就在“增删改查”。而“查”更是这四字诀的重中之重!个人认为“增删改“是”查“的增强版!
查询语句(简称“查”)
我认为查询语句的组成由这几部分组成:关键字、运算符、数据类型、特殊符号、对象名。其中关键字和对象名是查询语句不可或缺的挚爱,而运算符和数据类型则是查询语句可有可无的Lover。
查询语句:作为一对难兄难弟,select 和 from 可谓是不离不弃了。这对组合既可以查询表内全部字段的内容(各个字段名及与字段对应的各个记录的值),还可以查询指定字段的内容。关键就在于一个小小的fairy“*”,具体见下面的例子。
实验数据表
使用“*”
如上图所示,使用特殊符号“*”后我们将得到基于“Test1”表的所有字段的内容 。
插入语句(简称“增”)
数据的插入大体可以分为整行插入和插入到自定字段。
整行插入的语法格式为:
INSERT INTO 表名VALUES (字段1 的值、字段2的值、……、字段n的值)
我们需要注意的是:VALUES字句必须列出所有字段的值,且必须将各字段的值按照表中字段的顺序进行排序。如字段1的值需要对应表中的字段1。
举例:
1、整段插入
首先我们先看一个表的全部信息。
接下来我们执行整行插入的操作:
我们再来看看效果如何:
2、插入到指定字段
同样以表“User_Info”为例:
效果:
更新语句(简称“改”)
更新语句包括更新单个字段和更新多个字段这两种类型。1、更新单个字段的数据
语法:
UPDATE 表名
SET 字段名=更新值
WHERE 条件表达式
举例:
依然以“User_Info”表为例。
效果:
2、更新多个字段的数据
语法:UPDATE 表名
SET 字段名1=更新值1,
字段名2=更新值2,
……
字段名n=更新值N
WHERE 条件表达式
由于更新多个字段的数据和更新单个字段的数据情况类似,在这里我们就不在列举该种情况的情形了,请读者自行检验。
删除语句(简称“删”)
用于删除记录的语句有DELETE语句和TRUNCATE语句,前面这两个是血统比较纯正的删除语句。除了这两个血统比较纯正的删除语句还有一个取巧的删除语句,即用来删除指定字段的“UPDATE语句”。这样说有点牵强,但是通过UPDATE语句我们确实可以将指定字段的内容替换为“NULL”,从而实现删除指定字段的功能(在这里不再对UPDATE的这一功能做详细解说,请各位伙伴自行尝试)。Then,我们先看DELETE语句。相对于TRUNCATE语句仅能删除表中的所有记录,DELETE语句不仅可以删除表中的所有记录还可以删除指定记录。但是世界上没有绝对完美的存在:虽然DELETE语句的功能足够强大,但是DELETE语句也依然有让人难以取舍的纠结。这个纠结我们在后面阐述,下面先来看看DELETE语句和TRUNCATE语句各自的功能。
一、DELETE语句
1、删除表中指定记录语法:
DELETE FROM 表名
WHERE 条件表达式
举例,我们仍以表“User_Info”做例:
原始状态:
我们删除行号为4的记录:
运行结果1:
运行结果2:
2、删除表中所有记录
语法:
DELETE FROM 表名
这里不做详细举例,参照删除指定记录的用法即可。
二、TRUNCATE语句删除所有记录
语法:TRUNCATE TABLE 表名
同样,我们不再做该用法的详细解说,请大家参照DELETE进行检验。
注:接下来我们介绍前面提到的DELETE语句相对于TRUNCATE语句的一个让人难以取舍的纠结。简单点来说就是,使用DELETE语句删除表中所有记录的开销相对于使用TRUNCATE语句删除表中所有记录的开销要大很多:在使用DELETE语句删除表中所有记录的同时,sql Server会向事务处理日志写入一些内容,从而降低使用DELETE语句删除表中所有记录的效率。但也正是这些内容让人纠结:这些内容可以在误删后帮助操作人员进行恢复或者是在删除遇到错误时帮助我们将数据回滚到执行删除前的状态进而保证数据的完整性。
以上就是我对sql“增删改查”的理解,篇幅可能有点长了机房收费系统之数据查询基础 - 12期 刘超 - 刘超 廊坊师范学院提高班十二期对此向大家说声抱歉。另不足之处还望各位伙伴慷慨指点,敬请您的指导~
感谢您的宝贵时间,谢谢~