zoukankan      html  css  js  c++  java
  • 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;

    执行结果如下所示:

  • 相关阅读:
    14.18 InnoDB Backup and Recovery 备份和恢复:
    14.18 InnoDB Backup and Recovery 备份和恢复:
    php使用 _before_index() 来实现访问页面前,判断登录
    php使用 _before_index() 来实现访问页面前,判断登录
    查询方式实例演示
    查询方式实例演示
    haproxy timeout server 46000 后台超时时间
    haproxy timeout server 46000 后台超时时间
    14.10.5 Reclaiming Disk Space with TRUNCATE TABLE 回收空间使用TRUNCATE TABLE
    14.10.5 Reclaiming Disk Space with TRUNCATE TABLE 回收空间使用TRUNCATE TABLE
  • 原文地址:https://www.cnblogs.com/tugenhua0707/p/10742307.html
Copyright © 2011-2022 走看看