SQL35 批量插入数据,不使用replace操作
题目描述:对于表actor插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)
解答:
# mysql中常用的三种插入数据的语句:
# insert into表示插入数据,数据库会检查主键,如果出现重复会报错;
# replace into表示插入替换数据,需求表中有PrimaryKey,
#或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;
# insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;
insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33");
SQL36 创建一个actor_name表
解答1:
INSERT INTO actor_name ( first_name, last_name)
VALUES
( 'PENELOPE', 'GUINESS' ),
( 'NICK', 'WAHLBERG' );
解答2:
CREATE TABLE
IF
NOT EXISTS 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;-- 插入查询结果
SQL37 对first_name创建唯一索引uniq_idx_firstname
解答:
CREATE UNIQUE INDEX uniq_idx_firstname on actor (first_name);
CREATE INDEX idx_lastname ON actor (last_name);
另附:
关于MySQL中给字段创建索引的四种方式:
1、添加主键
ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);
// 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
2、添加唯一索引
ALTER TABLE tbl_name ADD UNIQUE index_name (col_list);
// 这条语句创建索引的值必须是唯一的。
3、添加普通索引
ALTER TABLE tbl_name ADD INDEX index_name (col_list);
// 添加普通索引,索引值可出现多次。
4、添加全文索引
ALTER TABLE tbl_name ADD FULLTEXT index_name (col_list);
// 该语句指定了索引为 FULLTEXT ,用于全文索引。
PS: 附赠删除索引的语法:
DROP INDEX index_name ON tbl_name;
// 或者
ALTER TABLE tbl_name DROP INDEX index_name;
ALTER TABLE tbl_name DROP PRIMARY KEY;