MySQL 总结
一、基础
1、【事物】
2、【锁】3、【分库分表】
4、三范式
第一范式:每个列都不可以再拆分。
(一个列只有一个值)
第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
(学号,科目号,姓名,成绩)=>(学号,科目号,成绩)(学号,姓名)
第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。
在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。
(不存在传递依赖)
(学号,姓名,学院)=>(学号,姓名)(学院,学号)
二、SQL 使用
1、CRUD
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
DELETE FROM table_name [WHERE Clause]
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M]
2、其他
WHERE:UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
LIKE: SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
UNION: SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions] UNION [ALL | DISTINCT] SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions];
ORDER BY: SELECT field1, field2,...fieldN FROM table_name1, table_name2... ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
GROUP BY: SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;
INNER JOIN、LEFT JOIN、RIGHT JOINEXISTS:SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);
LIMIT:返回需要的记录条数:SELECT column_name(s) FROM table_name LIMIT number;
三、MySQL 优化
1、【索引】
2、【Explan】