MySQL——插入数据

1.语法

-- 基本语法

INSERT INTO table [(column,...)]
VALUES (value,...),(...),...;

-- Example

INSERT INTO books
VALUES('The Big Sleep','Raymond Chandler','1934');

-- 须按照CREATE TABLE时列的顺序

-- 对于有默认值的列,可忽略或使用DEFAULT或NULL或指出需要插入数据的列 

INSERT INTO books
VALUES('The Thirty-Nine Steps','John Bchan',DEFAULT);

INSERT INTO books
(author,title) 
VALUES('Evenlyn Waugh','Brideshead Revisited');

-- 多行插入

INSERT INTO books
(title,author,year)
VALUES('Visitation of Spirts','Randall Kenan','1989'),
      ('Heart of Darkness','Joseph Conrad','1902');

-- 明确插入

INSERT INTO birds_families
SET scientific_name = 'Rallidae',
oorder_id =113;

 

2. 插入其他表的数据

INSERT IGNORE INTO bird_families
(scientific_name,brief_description,cornell_bird_order)
SELECT bird_family,examples,bird_order
FROM cornell_birds_families_orders;

-- scientific_name 列设置了UNIQUE

/* IGNORE 为了多行插入产生了重复列名而出错,以免语句运行失败
IGNORE指示服务器忽略所有错误并插入正确的行 */

-- SHOW WARNINGS 展示错误的日志行

 

 

 

3.替换数据

-- 常用于当发生重复行时进行替换

REPLACE INTO bird_families
(scientific_name,drief_description,ordre_id)
VALUES('Viduidae','Indigobirds & Whydahs',128);

-- REPLACE 可用于替换含有重复键的整行数据或新增原表中所没有的数据
-- 若以上scientific_name不是UNIQUE或键,则不是替换而是新增

 

4. 数据插入的优先级

  在一台服务器上经常发生多人同时访问的情况,就有来自不同客户端的SQL语句输入。这时需要对语句进行优先级设置。

  4.1 调低INSERT的优先级

-- Way : LOW_PRIORITY

INSERT LOW_PRIORITY INTO bird_sightings
...

  4.2 提升INSERT的优先级

  INSERT语句默认优先于其他只读的SQL语句。

-- Way : HIGH_PRIORITY

INSERT HIGH_PRIORITY INTO bird_sightings
...

 

posted @ 2020-05-13 17:01  data_byte  阅读(875)  评论(0编辑  收藏  举报