SQL35?批量插入數(shù)據(jù)奏瞬,不使用replace操作
題目描述:對(duì)于表actor插入如下數(shù)據(jù),如果數(shù)據(jù)已經(jīng)存在枫绅,請(qǐng)忽略(不支持使用replace操作)
解答:
# mysql中常用的三種插入數(shù)據(jù)的語句:
# insert into表示插入數(shù)據(jù),數(shù)據(jù)庫會(huì)檢查主鍵硼端,如果出現(xiàn)重復(fù)會(huì)報(bào)錯(cuò)并淋;
# replace into表示插入替換數(shù)據(jù),需求表中有PrimaryKey珍昨,
#或者unique索引县耽,如果數(shù)據(jù)庫已經(jīng)存在數(shù)據(jù),則用新數(shù)據(jù)替換镣典,如果沒有數(shù)據(jù)效果則和insert into一樣酬诀;
# insert ignore表示,如果中已經(jīng)存在相同的記錄骆撇,則忽略當(dāng)前新數(shù)據(jù)瞒御;
insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33");
SQL36?創(chuàng)建一個(gè)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 );-- 創(chuàng)建表
INSERT INTO actor_name SELECT
first_name,
last_name
FROM
actor;-- 插入查詢結(jié)果
SQL37?對(duì)first_name創(chuàng)建唯一索引uniq_idx_firstname
解答:
CREATE UNIQUE INDEX uniq_idx_firstname on actor (first_name);
CREATE INDEX idx_lastname ON actor (last_name);
另附:
關(guān)于MySQL中給字段創(chuàng)建索引的四種方式:
1、添加主鍵
ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);
// 該語句添加一個(gè)主鍵神郊,這意味著索引值必須是唯一的肴裙,且不能為NULL。
2涌乳、添加唯一索引
ALTER TABLE tbl_name ADD UNIQUE index_name (col_list);
// 這條語句創(chuàng)建索引的值必須是唯一的蜻懦。
3、添加普通索引
ALTER TABLE tbl_name ADD INDEX index_name (col_list);
// 添加普通索引夕晓,索引值可出現(xiàn)多次宛乃。
4、添加全文索引
ALTER TABLE tbl_name ADD FULLTEXT index_name (col_list);
// 該語句指定了索引為 FULLTEXT 蒸辆,用于全文索引征炼。
PS: 附贈(zèng)刪除索引的語法:
DROP INDEX index_name ON tbl_name;
// 或者
ALTER TABLE tbl_name DROP INDEX index_name;
ALTER TABLE tbl_name DROP PRIMARY KEY;