您的位置:首页 > 数据库 > MySQL

MySql基础知识总结

2016-09-20 22:28 477 查看
一、SQL语句的分类

DDL(数据定义语言):用来定义数据库对象:比如库、表、列、触发器、视图、函数、存储过程等

(可以理解为创建语言)
数据库级别:
创建数据库:Create database if not exists db_name;
删除数据库:Drop database if exist db_name;
表级别
创建表:Create Table stu(
sid int primary key,
sname varchar(25));
删除表:Drop Table
此外:还有对数据库和表级别上的修改


DML(数据操纵语言):用来操作数据库记录(数据)

操作的是记录级别的
DML是对表的记录进行操作,包括插入操作、删除操作、修改操作


DCL(数据控制语言):用来定义访问权限和安全级别

DCL这是对数据库用户、权限级别的操作


DQL(数据查询语言):用来查询数据记录

DQL是对表的记录进行查询,以select开头的SQL语句


二、存储引擎

MySQL数据库存储引擎总结:点击这里

存储引擎:与其他数据库软件不同,MySql数据库软件提供了一个名为存储引擎的概念。存储引擎是MySQL数据库管理系统的一个重要特征,在具体开发时,为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据实际需要来选择存储引擎。

SHOW ENGINES   查看当前数据库所支持的引擎
SHOW VARIABLES LIKE 'have%';     查看当前数据库所支持的引擎
SHOW VARIABLES LIKE 'storage_engine%';    查看当前数据库默认搜索引擎


几种常用的数据库引擎:MyISAM 、InnoDB、MEMORY





更多详细查看《深入浅出:MySQL数据库开发、优化与管理维护》

存储引擎和数据类型,前者决定了数
4000
据库对象表的类型,后者决定了数据库对象表中存储数据类型

三、索引

理解索引前先百度搜索“键与索引的区别”,这里推荐一篇点击这里

索引(数据库提高性能最常用的工具)主要是为了提高从表中检索数据的速度。由于数据存储在数据库表中,所以索引是创建数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构(B树哈希表)中。索引分为B型树索引和哈希索引。

InnoDB和MyISAM存储引擎支持B树索引,不支持哈希索引;MEMORY存储引擎支持哈希索引,也支持B树索引

索引分为普通索引(INDEX),唯一索引(UNIQUE INDEX)(主键一定是唯一索引,唯一索引不一定是主键)、主键索引、全文索引(FULLTEXT INDEX)、多列索引。在以下情况创建索引:
(1)经常被查询的字段,即在WHERE子句中出现的字段;(如果不是唯一,也不是主键,可以创建普通索引)
(2)在分组的字段,即在GROUP BY子句中出现的字段;(组别,很显然不能是唯一索引,也不能是主键索引,所以只能是普通索引)
(3)存在依赖关系的子表和父表之间的联合查询,即主键或外键处;(可以是主键索引,或者是唯一索引)
(4)唯一约束的字段(唯一索引)


全文索引:主要关联在数据类型为CHAR、VARCHAR和TEXT的字段上、以便能够更加

快速地查询数据量较大的字符串类型的字段。(全文索引只能在MyISAM上创建)

(MyISAM的特点是:不支持事务,不支持外键,访问速度快(对事务完整性或者以select、Insert为主的应用基本都可以使用这个引擎)。


联想:
InnoDB的特点是:在事务上具有优势,也支持具有提交、回滚、奔溃回复能力的事务安装,比MyISAM存储引擎占用更多的磁盘空间。
MEMORY的特点是:使用内存来存储数据,访问速度是比MyISAM和InnoDB还要快的,但是安全上没有保障,即服务器断点关机后,数据清零。
如果数据小并且能承受丢失的风险,可以使用这种引擎(用于那些内容变化不频繁的代码表,或者作为统计操作的中间结果表))


多列索引:是指在创建索引时,所关联的字段不是一个字段,而是多个字段,虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用(只有被使用的时,查询的速度才会加快)

索引的优缺点:

优点:

(1)大大加快数据的检索速度;   

(2)创建唯一性索引,保证数据库表中每一行数据的唯一性;   

(3)加速表和表之间的连接;  

(如果是在:存在依赖关系的子表和父表之间的联合查询,即主键或外键处;(可以是主键索引,或者是唯一索引))

(4)在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。

(如果是在:在分组的字段,即在GROUP BY子句中出现的字段;(组别,很显然不能是唯一索引,也不能是主键索引,所以只能是普通索引))

缺点:

(1)索引需要占用物理空间。   

(2)当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

( 查询时速度增加,但在数据增加、删除和修改的时候速度降低)

关于BTREE索引和HASH索引:

HASH索引:

(1)HASH索引查找数据基本上能一次定位数据,所以用于使用=或<=>操作符号的等式比较

(2)HASH索引对ORDER

BY有加速作用

(3)只能用整个关键字搜索一行, 而不能用前缀(因为HASH索引需要准确的定位)

BTREE索引(btree索引就得在节点上挨着查找了,很明显在数据精确查找方面hash索引的效率是要高于btree的):

(1)适用于>、<、>=、<=、BETWEEN AND、!=或者<>、LIKE(适用于范围)

四、视图

五、触发器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: