MySQL的增删查改语句:

//插入数据:
INSERT INTO XXX(xxx) VALUES(???);         //XXX是数据表的名称,xxx是数据表中的行名称,???是要增加的数据值

//删除数据:
DELETE FROM XXX [WHERE xxx=???];          //XXX是数据表的名称,xxx是数据表中的行名称,???是行名称对应的数据值

//查询数据:
SELECT * FROM XXX [WHERE xxx=???];        //XXX是数据表的名称,xxx是数据表中的行名称,???是行名称对应的数据值

//更新数据:
UPDATE XXX SET xxx=!!! WHERE [xxx=???];   //XXX是数据表的名称,xxx是数据表中的行名称,!!!是要更改的新值,???是行名称对应的数据值

索引是用来快速找出在某个列中的一个特定的值所在的行。

创建数据表所设置自动递增的名为id的主键就是一种索引,这是一种特殊的唯一索引。

索引不是越多越好,大多数情况下索引能提高查询效率。

但是索引越多代表需要占用的空间也越多。

但是数据表如果很小的话,设置索引有可能会变得更慢。

一次查询只能使用一个索引。

普通索引是最基本的索引,因此它没有任何限制。

唯一索引与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。

主键索引是一种特殊的唯一索引,不允许有空值,一般是在创建数据表的时候就同时创建了,一张表只能有一个主键。

需要加索引的字段,要在where条件中添加。

数据量比较少的列不需要添加索引,如:性别,类型

如果where条件后是OR(或)关系,加索引不起作用。

复合索引要遵循最左原则。

最左原则:以最左边的索引为主,如果创建了一个多列索引,相当于创建了一个单列索引(多列索引中的第一个),(从多列索引中的第二个开始的)组合索引以及(一个整体的)组合索引。

普通索引:这是最基本的索引类型,它没有唯一性的限制。

唯一索引:唯一索引与普通索引基本相同,只有一个区别:索引列的所有值都只能出现一次,也就是要保持唯一性。

全文索引:全文索引在MySQL中是一个FULLTEXT类型的索引,但FULLTEXT类型的索引只能用于引擎为MyISAM的数据表,并且只可以在类型为CHAR、VARCHAR或TEXT类型的列上创建,这是一种特殊的索引,它会把在某个数据表中的某个数据列中出现过的所有单词都会生成一份清单。

sql优化:

不要有超过5个以上的表连接

连接的表越多,性能越不好控制。

少用子查询

考虑使用临时表或表变量存放中间结果。

视图嵌套不要过深,一般视图嵌套不要超过2个为宜。

最后这两个现在不理解,等理解了我会补上

05-17 07:42