MySQL 插入,更新与删除数据,索引 学习笔记
- 插入,更新与删除
- 插入数据
- 为表的所有字段插入数据,INSERT INTO table_name (column_list) VALUES (value_list); column的顺序可以不与表中定义的顺序相同,但是 value的顺序必须相同。插入数据时也可以不指定column。
- 为表的指定字段插入数据。
- 同时插入多条记录。INSERT INTO table_name (column_list) VALUES (value_list1),(value_list2),...,(value_listN);。
- 将查询结果插入到表中 INSERT INTO table_name1 (column_list1) SELECT (column_list2) FROM table_name2 WHERE (condition)。
- 更新数据 UPDATE table_name SET column_name = value1,column_name2=value2,....,column_nameN=valueN WHERE (condition);
- 删除数据 DELETE FROM table_name [WHERE <condition>];
- 插入数据
- 索引
- 索引简介 对表中一列或多列的值进行排序,使用索引可以提高数据库中特定数据的查询速度。索引是一个单独的,存储在磁盘上的数据结构,包含着对数据表里所有记录的引用指针。有BTREE和HASH两种存储类型,跟表的存储引擎相关,MyISAM和InnoDB存储引擎只能支持BTREE,MEMORY和HEAP可以支持者两种索引。普通索引和唯一索引,单列索引和组合索引,全文索引(只有MyISAM支持全文索引),空间索引(空间数据类型有GEOMETRY,POINT,LINESTRING,POLYGO)使用SPATIAL关键字进行扩展,只有MyISAM可以创建空间索引,且值必须为NOT NULL。
- 创建索引
- 创建表的时候创建索引
- 创建普通索引 CREATE TABLE book (bookid INT NOT NULL, year_publication YEAR NOT NULL, INDEX(year_publication)); 使用explain语句查看索引是否创建成功。
- 创建唯一索引 CREATE TABLE t1 (id INT NOT NULL, name CHAR(30) NOT NULL, UNIQUE INDEX UniqIdx(id));
- 创建单列索引 CREATE TABLE t2 (id INT NOT NULL, name CHAR(30) NULL, INDEX SingleIdx(name(20)));
- 创建组合索引 CREATE TABLE t3 (id INT NOT NULL, name CHAR(30) NOT NULL, age INT NOT NULL, info VARCHAR(255), INDEX MultiIdx(id,name,age(100)));
- 创建全文索引 CREATE TABLE t4 (id INT NOT NULL, name CHAR(30) NOT NULL, age INT NOT NULL, info VARCHAR(255), FULLTEXT INDX FullTextIdx(info)) ENGINE=MyISAM;
- 创建空间索引 CREATE TABLE t5 (g GEOMETRY NOT NULL, SPATIAL INDEX spatIdx(g))ENGIN=MyISAM;
- 在已经存在的表上创建索引
- 使用ALTER TABLE语句创建索引,ALTER TABLE book ADD INDEX BkNameIdx(bookname(30);
- 使用CREATE INDEX创建索引,CREATE INDEX BkNameIdx ON book(bookname); CREATE UNIQUE INDEX UniqidIdx ON book (bookId);
- 删除索引
- 使用ALTER TABLE删除索引 ALTER TABLE table_name DROP INDEX index_name;
- 使用DROP INDEX语句删除索引 DROP INDEX index_name ON table_name;
- 创建表的时候创建索引