前面定义好了数据库以及数据表,接下来就是存储数据了。
1. 概述
定义好数据结构,接下来就是对数据的一些操作。比如数据的插入、删除以及更新的等等,这些SQL语句被称为数据操作语句。先假设最基本的权限设置,对于字段非空、主键外键等限制先不考虑。
2. DML
DML语句主要有插入、修改和删除三种。
2.1 插入语句
上一篇文章提到,数据表是由一条条的数据组成,而数据则是由一个个字段组成。那么插入数据的时候,就需要规定好在哪个表插入,插入的数据是由哪几个字段组成(在字段允许非空的情况下),以及字段的具体值是什么。语法结构如下所示:
1 | insert into 表名(字段名1, 字段名2, 字段名3, ...) values (值1, 值2, 值3, ...)[, (值1, 值2, 值3, ...), (值1, 值2, 值3, ...), ...]; |
- 注意,值和字段名要一一对应:位置对应,数据类型对应。字段名可以不选取全部,未选中字段插入后即为默认值。
- 另外,字段名可以省略不写,默认插入的是全部字段,所以values中必须要有全部字段的值。
- 注意,MySQL中的字符串用单引号括起来,也可以用双引号括起来。
以t_student表格为例,该表有4个字段,分别插入两次数据,每次插入一条数据,其中第二次省略了email
字段,结果显示设为默认值null。其中查询语句见后续文章。
2.1.1 插入日期类型数据
除了一些常见的数据类型数据,还有日期类型,日期类型有短日期(年月日)和长日期(年月日时分秒)两种类型。MySQL提供了字符串转换成日期类型数据的函数**str_to_date()**,在插入数据的时候需要提前将字符串数据转换成日期数据。简单插入语句如下所示:
1 | insert into t_user(id, name, birth) values (1601, 'zhangSan', str_to_date('1997-05-20', '%Y-%m-%d')); |
注意,now()函数可以获取系统的当前时间,即长日期类型,不需要类型转换。
2.2 修改语句
数据不是一成不变的,想要修改已有的数据就需要用到修改语句。语法结构如下所示:
1 | update 表名 set 字段名1=值1[, 字段名2=值2, ...] where 条件(用于指明修改哪条/些记录); |
注意,如果没有条件限制,则会默认修改全部数据。简单案例如下所示:
1 | update t_student set no=2 where name='liSi'; |
2.4 删除语句
有时候需要删除某些数据,这时候就要用到删除语句。语法结构如下所示:
1 | delete from 表名 where 条件; |
注意,如果没有条件,则会删除全部数据。不是删除整张表
。
简单案例如下所示:
1 | delete from t_student where no=2; |
3. 备注
参考B站《动力节点》。