mysql教学sq语句_史上最简单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语句(二)中进行讲解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值