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;

    执行结果如下所示:

  • 相关阅读:
    URL编码及解码
    Javascript解析URL
    为什么在JavaScript中0.1+0.2不等于0.3?
    void 0 与 undefined
    Windows7、Windows10下把Git Bash Here 添加到右键菜单(ContextMenu)
    [菜鸟]C++创建类对象时(无参)后不加括号与加括号的区别
    git常用命令
    git 出错及解决
    Vim升华之树形目录插件NERDTree安装图解
    rails.vim环境安装(ubuntu)
  • 原文地址:https://www.cnblogs.com/tugenhua0707/p/10742307.html
Copyright © 2011-2022 走看看