sql语言被用于数据库中记录的“增删改查”,本文将介绍数据库中mysql数据库中利用sql语言创建表,批量插入数据。
- -以下示例来自牛客网- -
1.创建表
创建一个actor表,包含如下列信息
列表 | 类型 | 是否为NULL | 含义 |
---|---|---|---|
actor_id | smallint(5) | not null | 主键id |
first_name | varchar(45) | not null | 名字 |
last_name | varchar(45) | not null | 姓氏 |
last_update | timestamp | not null | 最后更新时间,默认是系统的当前时间 |
sql语句:
create table if not exists actor(
actor_id smallint(5) not null,
first_name varchar(45) not null,
last_name varchar(45) not null,
last_update timestamp not null default(now()),
primary key(actor_id)
)
2.批量插入数据
2.1 insert into table values()
直接插入数据,例如:向actor表中批量插入如下数据
actor_id | first_name | last_name | last_update |
---|---|---|---|
1 | PENELOPE | GUINESS | 2006-02-15 12:34:33 |
2 | NICK | WAHLBERG | 2006-02-15 12:34:33 |
sql语句
insert into actor values(1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),
(2,'NICK','WAHLBERG','2006-02-15 12:34:33')
mysql中插入数据时,如果直接使用insert into语句,当主键重复时会报错,这是需要对数据记录重复的情况进行处理。对于插入数据时的重复数据主要有两种处理方式:
1.如果记录不存在则插入,如果存在则忽略
INSERT IGNORE INTO tablename VALUES(…);
2.如果记录不存在则插入,如果存在则替换
INSERT REPLACE INTO tablename VALUES(…);
2.2. insert into table a (select * from table b)
向表a插入从表b查询得到的结果,例如:创建表actor_name包含first_name,last_name字段,并将actor表中的first_name,last_name信息导入actor_name表。
create table actor_name(
first_name varchar(45) not null,
last_name varchar(45) not null);
insert into actor_name select first_name,last_name from actor