- 插入,更新與刪除
- 插入數據
- 為表的所有字段插入數據,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;
- 創建表的時候創建索引