SQL 增删改语句
2019-04-20 19:25 龙恩0707 阅读(504) 评论(0) 编辑 收藏 举报阅读目录
一:插入数据
把数据插入表中的最简单方法是使用基本的 INSERT 语法。它的要求是需要我们指定表名和插入到新行中的值。
1.1 插入完整的行
比如如下语法:
INSERT INTO User(username, password) VALUES('kongzhi2', '654321');
如上基本的含义是: 将用户名和密码插入到User表中,存储到表中每一列的数据在VALUES子句中给出,必须给每一列提供一个值。如果某列没有值,则应该使用NULL值代替(假设该字段允许NULL值)。各列必须以他们在表定义中出现的顺序填充。
首先我们来查询下user表中的数据;如下所示:
然后我们使用插入操作,INSERT INTO user(username, password) VALUES('kongzhi2', '654321'); 插入一条数据到表中,然后我们继续使用查询该表操作,查询下数据,看看表中是否有该数据。如下图所示:
1.2 插入部分行
比如说,我只给username这个字段插入值,不给password这个字段设置值,可以如下语法代码:
INSERT INTO user(username, password) values ('kongzhi3', null); INSERT INTO user(username) values ('kongzhi3');
如上这两句代码插入的时候会报错的,或者我只给username插入值,不给password插入值,也会报错的,那是因为username和password 是必填的,不允许为空的。如果某个表中的字段允许为空的话,我们可以不给该值插入的。
为了演示插入部分数据,我们可以在创建一个user2表,该表有2个字段为 username和age字段,都可以允许为空,然后向表中user2中插入username字段,不插入age字段,可以看到,我们再查询下该表,age默认值就变成了 null了。
1.3 插入检索出的数据
什么叫插入检索出的数据呢?就是说,我们有2个表,一个是user表和另一个是user2表,我想把user2表中查询到的数据合并到user表中,那么这样的基本语法需要如下语法:
insert into user(username, password) select username, age from user2;
上面语法的含义是,我首先从user2表中查询username,age的值后,然后把该值合并到 user 表中对应的 username 和 password字段中。但是由于 user2表中的age字段为null,但是user表中的password字段不允许为null,因此会报错,
如下所示:
这边简单的为了演示,我们可以把user2表中的username的值合并到user表中的password的值就可以了。因为user2表中的username值不为空。如下基本语法:
insert into user(username, password) select username, username from user2;
如下图所示:
1.4 从一个表复制到另一个表的数据
我们要将一个表中的数据全部复制到另一个全新的表中,我们可以使用 INSERT INTO 语句。那么它和上面的 INSERT SELECT 语句有什么不同呢?INSERT SELECT 是将数据添加到一个已经存在的表中。而 SELECT INTO 是将数据复制到一个新表中。也就是说 INSERT SELECT 是导出数据,比如上面的从user2表中查询到的数据导出到user表中去。而我们的SELECT INTO 是导入数据,是把某一个表中的数据导入到另一个全新的表中。
比如如下语法:
create table user3 as select * from user2;
如上我们创建一个user3表,然后从user2表中的数据查询出来后,把user2中所有的数据复制到user3中新表中。
如下图所示:
然后我们再查询 user3表看下有如下数据;如下图所示:
二:更新数据
更新表中的数据,我们需要使用 UPDATE 语句。有两种使用UPDATE的方式;
1. 更新表中的特定行。
2. 更新表中的所有行。
2.1 更新表中特定的行。
基本语法是:update user set username = 'xxxx' where id=3;
上面的语法的含义是: 更新表中user中的数据,字段名为 username这个字段,它的条件是根据 id=3 这个条件进行更新的。
如下图所示:
2.2 更新表中特定的行中的多个字段
基本语法是:update user set username = 'yyy', password='aaaa' where id = 3;
如下图所示:
如上更新多个列字段时,使用一条 set 命令,每个 "列=值" 对之间用逗号分隔(最后一列不用逗号)。
2.3 更新表中所有的行。
如果我们想更新表中所有的行,那么我们就不需要where这个条件即可;如下:
update user set username = '我是空智', password = '123456abcder';
如上是更新user表中的username字段和password的字段的所有值更改成为 '我是空智',password="123456abcdef" 的值了,如下所示:
三:删除数据
从一个表中删除数据的话,需要使用DELETE语句。有两种使用DELETE的方式:
1. 从表中删除特定的行。
2. 从表中删除所有的行。
基本语法也是如下:
delete from user where id = 3;
如上语法的含义是:删除user表中的 id = 3 的数据。如下图所示:
3.2 删除表中所有的数据。
如果我们省略where这个条件,就会删除表中所有的数据了。基本语法如下:
delete from user;
执行结果如下所示: