加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL快速回顾:插入操作

发布时间:2022-10-19 17:31:36 所属栏目:MySql教程 来源:互联网
导读: 前提要述:参考书籍《MySQL必知必会》
《MySQL必知必会》是先讲了查询,但是没有记录就无法查询,所以先将如何添加数据。
表已经知道怎么创建了,随便创两张。
5.1 插入数据
MySQL使用 INS

前提要述:参考书籍《MySQL必知必会》

《MySQL必知必会》是先讲了查询,但是没有记录就无法查询,所以先将如何添加数据。

表已经知道怎么创建了,随便创两张。

5.1 插入数据

MySQL使用 INSERT来插入(或添加)行(记录)到数据库表中。插入可用以下几种方式使用:

5.2 插入完整的行(记录)

什么叫完整的行,即插入的有效数据都可以对应表中的每一列。

把数据插入表中,最简单的方法是使用基本的INSERT语法,需要指定表名和被插入到新行中的值数据库插入操作,格式:

# 写法:
INSERT INTO  VALUES(value1,value2,...);
# 规范写法:
INSERT INTO (field1, field2, ...) VALUES(value1,value2,...);

解释:

例子:在学生表中插入数据

INSERT INTO student(stu_id, stu_name, stu_sex)  VALUES(1, '张三', '男');

注意:字符串或字符需要使用''(单引号)圈起来。

输出:如果成功的话

Query OK, 1 row affected (0.01 sec)

而如果在主键使用了自增长(AUTO_INCREMENT),那么则可以这样写

INSERT INTO student(stu_id, stu_name, stu_sex)  VALUES(null, '张三', '男');

或者,不写主键:

INSERT INTO student(stu_name, stu_sex)  VALUES('张三', '男');

也就是插入时,在主键的位置直接插入null或者不写默认就是赋给null,MySQL会因为AUTO_INCREMENT自己给它赋值。

INSERT操作可能很耗时(特别是有很多索引需要更新时),而且它可能降低等待处理的SELECT语句的性能。如果数据检索是最重要的,则可以通过在INSERT和INTO之间添加关键字LOW_PRIORITY,指示MySQL降低INSERT语句的优先级。

INSERT LOW_PRIORITY INTO

5.3 插入多个行

INSERT可以插入一行到一个表中,也可以插入多行到一个表中,第一种方式就是写多条INSERT语句,还有一种方式就是在一条INSERT语句中插入多行。

语法:

INSERT INTO (
    field1,
    field2,
    ...
    )
    VALUES(
        valueA1,
        valueA2,
        ...
        ),
        (
        valueB1,
        valueB2,
        ...
    );

此写法可以提供INSERT的性能,因为MySQL用单条INSERT语句处理多个插入比使用多条INSERT快。

5.4 插入检索出的数据

INSERT语句可以利用一条SELECT语句查询的结果插入到表中。也就是所谓的INSERT SELECT,它是由一条INSERT语句和一条SELECT语句构成。

比如我需要把一张表的数据复制到另一张表,语法:

INSERT INTO (field1, field2, ...) 
    SELECT field1, field2 FROM ;
# 或 也就是列名可以不同
INSERT INTO (field1, field2, ...) 
    SELECT f1, f2 FROM ;

注意:如果新表不存在则报错。

解释:

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!