• 史上最简单MySQL教程详解(基础篇)之SQL语句(一)


    插入语句——INSERT

    其实在之前我们就已经接触过了【INSERT】语句,这里我们就更加详细的介绍一些【INSERT】语句。
    语法:

    INSERT INTO 表名 (列名1,列名2,列名3...) VALUES (值1,值2,值3...);

    我们往之前就建好的【user】表中插入数据,运行结果如下:

    mysql> INSERT INTO user VALUE (1,’张三’,0);
    Query OK, 1 row affected (0.00 sec)
    mysql> INsert INTO user(userId,sex) VALUE (2,1);
    Query OK, 1 row affected (0.00 sec)
    mysql> INSERT INTO user (userId,name) VALUE (3,’李四’);
    Query OK, 1 row affected (0.00 sec)
    INSERT INTO user (userId,sex,name) VALUE (4,1,’王五’);
    Query OK, 1 row affected (0.00 sec)
    mysql> SELECT * FROM user;
    +——–+——+——+
    | userId | name | sex |
    +——–+——+——+
    | 1 | 张三 | 0 |
    | 2 | NULL | 1 |
    | 3 | 李四 | 0 |
    | 4 | 王五 | 1 |
    +——–+——+——+
    4 rows in set (0.27 sec)

    这里我就详细的说下我这几行插入命令的区别:

    • 第一个:对表中所有列进行值的插入,这个时候是可以省略列表的。但是需要注意的是,插入值的顺序必须要和列的顺序是一致的,否则很容易报错,或者插错数据。这一点要切记;
    • 第二个:因为我们【name】这一列是没有默认值的,所以当我们插入数据时,这一列就会默认为【NULL】;’
    • 第三个:这一列我们没有插入【sex】这个字段,但是当初我们建表的时候设置的默认值为【0】,所以当我们没有指定插入的值时,他就默认为【0】;
    • 第四个: 虽然和第一个一样,我们每一个列都插入了数据,但是因为我们在插入时指定了插入的列的顺序,所以我们需要插入的值的顺序和我们写的列的顺序保持一致即可,不需要和表中列的顺序保持一致;

    注意事项:

    • 如果我们在定义表的结构的时候,如果给某列设置的是非空值即【NOT NULL】,那么我们在插入的时候一定要给这列赋予值,否则就会报错;
    • 如果报错【ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘PRIMARY’】那么就是我们在插入的时候造成了主键的冲突,因为主键的值通常是唯一的;
    • 当我们插入的值为【字符串】,【日期】的情况下,必须要使用英文的单引号【”】进行包裹;

    更新语句——UPDATE

    当我们需要更新某个已经在数据表中存在的数据时,我们就需要使用到【UPDATE】语句。
    语法如下:

    UPDATE 表名 SET 列名1=值1,列名2=值2,...WHERE 条件表达式;

    我们试着更新一下数据表中【userId】为【1】的数据,运行结果如下:

    mysql> UPDATE user set name = ‘张四’ where userId =1;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1 Changed: 1 Warnings: 0
    mysql> SELECT * FROM user;
    +——–+——+——+
    | userId | name | sex |
    +——–+——+——+
    | 1 | 张四 | 0 |
    | 2 | NULL | 1 |
    | 3 | 李四 | 0 |
    | 4 | 王五 | 1 |
    +——–+——+——+
    4 rows in set (0.00 sec)

    我们就成功的将第一条数据的【name】从【张三】改成了【张四】;

    注意事项:

    • 条件表达式中【WHERE】后面的【=】与前面【SET】中的【=】是具有不同的含义的。【WHERE】中应该是比较运算符,判断是否相等,但是【SET】表达的则是赋值的含义。
    • 【WHERE】这部分条件表达式实际上是跨域省略的,但是会将指定列的所有的数据都进行修改,例如:

      mysql> UPDATE user SET sex =1;
      Query OK, 2 rows affected (0.00 sec)
      Rows matched: 4 Changed: 2 Warnings: 0


    mysql> SELECT * FROM user;
    +——–+——+——+
    | userId | name | sex |
    +——–+——+——+
    | 1 | 张四 | 1 |
    | 2 | NULL | 1 |
    | 3 | 李四 | 1 |
    | 4 | 王五 | 1 |
    +——–+——+——+ 我们就将所有的【sex】都改为了【1】; 所以在执行没有条件的UPDATE的命令前,请务必确认一下是否真的有必要进行这样的操作,因为这会影响到整张表的数据信息。

    删除命令——DELETE命令

    当我们需要删除表中存在的某一数据时,就需要使用到删除命令【DELETE】了。 语法如下:
    DELETE FROM 表名 WHERE 条件表达式;
    我们尝试着删除【user】表中【userId】为【4】的数据,运行结果如图:

    mysql> DELETE FROM user where userId=4;
    Query OK, 1 row affected (0.00 sec)
    mysql> SELECT * FROM user;
    +——–+——+——+
    | userId | name | sex |
    +——–+——+——+
    | 1 | 张四 | 1 |
    | 2 | NULL | 1 |
    | 3 | 李四 | 1 |
    +——–+——+——+
    3 rows in set (0.00 sec)

    删除成功。 注意事项:
    • 与【UPDATE】命令一样,【DELETE】命令后的条件语句也是可以省略的,这时将删除的是表中的所有数据。但是当我们需要删除表中的所有数据时,有一个更加高效的语句【TRUNCATE TABLE 】命令。语法如下:
    TRUNCATE TABLE 表名;

    【TRUNCATE TABLE 】命令与【DELETE】的区别是:【TRUNCATE TABLE 】首先将破坏整个表的数据结构,然后在重新创建一张结构相同的表;

    因为【SELECT】的语句更加复杂,所以我们将在下一篇文章史上最简单MySQL教程详解(基础篇)之SQL语句(二)中进行讲解。

  • 相关阅读:
    Python数组操作将一维数组变成二维数组
    Python做一个计时器的动画
    tkinter添加背景音乐
    IDEA——配置代码检测
    Jenkins构建 前端node项目
    linux下python相关命令
    推荐几个IT交流社区
    jenkins常用插件
    linux上安装newman
    linux+jenkins+postman持续集成
  • 原文地址:https://www.cnblogs.com/newtol/p/10159109.html
Copyright © 2020-2023  润新知