• SQL 增删改语句


    阅读目录

    一:插入数据

    把数据插入表中的最简单方法是使用基本的 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;

    执行结果如下所示:

  • 相关阅读:
    微软谷歌开源 Python/Kotlin 入门视频课程 | 福利
    阿里云 EventBridge 系列公开课来袭
    KubeVela: 如何用 100 行代码快速引入 AWS 最受欢迎的 50 种云资源
    预约下载 | 《Serverless 开发速查手册》全新上线
    阿里云云原生微服务可观测实践
    20220317 16:51:17
    病毒和细菌的区别,人体免疫的三道防线,及抗生素
    Delphi 动态打开网页/网址的几种方式
    Delphi TBytes类型及与AnsiString、UnicodeString之间的转换
    微生物细菌肺炎链球菌(乳杆菌目细菌)
  • 原文地址:https://www.cnblogs.com/tugenhua0707/p/10742307.html
Copyright © 2020-2023  润新知