跳转至

插入表记录


点击这里,看视频讲解,学习下面内容

我们辛辛苦苦创建了数据库,定义了表,主要就是为了能够操作表中的记录。

所谓 操作表记录, 就是 对记录的 添加、查询、修改、删除。当然这些都是通过SQL语句进行的。

插入记录

前面我们使用如下SQL语句 创建了名为user的表

CREATE TABLE user (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(150)  NOT NULL,
  `password` varchar(128)  NOT NULL,
  `realname` varchar(30)  NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB;

这还是一张空表,要添加一条记录,使用 INSERT INTO 语句,

比如

INSERT INTO user (username,`password`,realname) VALUES ('byhy1','password1','baiyueheiyu1');

这样就可以添加一条记录到 表 user 中了。

注意,我们不需要为id这个字段填上对应的值,因为它是 AUTO_INCREMENT 的,MySQL系统会自动为这个字段填值。

您需要高效学习,找工作? 点击咨询 报名实战班

点击查看学员就业情况

字符编码

因为MySQL缺省的字符编码是latin1(拉丁字符编码),这种字符编码是不支持存储中文的。

要存储中文,推荐使用utf8字符编码。

我们可以:

  • 指定MySQL 整个系统 的缺省字符编码

  • 也可以指定 某个数据库 的缺省字符编码

  • 也可以指定 某张表 的缺省字符编码

  • 也可以指定 表中某列 的字符编码

比如,我们在创建user表的时候,就可以指定字符编码方式,如下所示

CREATE TABLE user (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(150)  NOT NULL,
  `password` varchar(128)  NOT NULL,
  `realname` varchar(30)  NOT NULL,
  PRIMARY KEY (id)
) 
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_520_ci;

这样,我们添加记录时,里面可以有中文字符。如下所示

mysql> INSERT INTO user (username,`password`,realname) VALUES ('byhy1','password1','白月黑羽1');
Query OK, 1 row affected (0.00 sec)


我们更加推荐,在创建数据库的时候,就指定缺省字符编码。这样就不需要创建每张表都去指定字符编码方式。

这样指定

CREATE DATABASE byhy CHARACTER SET utf8mb4  COLLATE utf8mb4_unicode_520_ci;

然后,我们再创建user表,就不需要指定utf8编码了。

添加多条记录

如果要添加多条记录,非常简单,如下所示

INSERT INTO user (username,`password`,realname) VALUES 
    ('byhy2','password2','白月黑羽2'),
    ('byhy3','password3','白月黑羽3'),
    ('byhy4','password4','白月黑羽4'),
    ('byhy5','password5','白月黑羽5');


日期时间数据


点击这里,看视频讲解,学习下面内容

我们创建这样一张订单表

CREATE TABLE `order` (
    id INT AUTO_INCREMENT,
    title VARCHAR(255) NOT NULL,
    place_time DATETIME,
    due_date DATE,
    PRIMARY KEY (id)
) 

这张订单表里有两个字段

  • place_time 表示下订单的时间点,是 DATETIME 类型

  • due_date 表示订单失效有效期截止日, 是 DATE 类型

DATETIME 类型,我们插入的数据格式是这样的 2019-12-20 10:01:00

甚至可以精确到微秒,像这样 2019-12-20 10:01:00.999999 ,如果要精确到微秒,该字段的定义要指定长度为6 ,像这样 place_time DATETIME(6)

DATE 类型,我们插入的数据格式是这样的 2019-12-20


对于上面的表, 我们可以这样插入一条记录

INSERT INTO `order` (title,place_time,due_date) VALUES 
    ('手机订单1','2019-05-04 10:01:00','2019-05-06');