您好,欢迎访问三七文档
MySQL数据库的总结作者:向露主要内容:•一、数据库的简介•二、数据库的类型及对比•三、MySQL的理论知识•四、MySQL常用的操作语句•五、MySQL的实例•六、总结一、数据库的简介•1.1、概念•数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。•1.2、发展历程•可存储大量数据;方便检索;保持数据的一致性、完整性;安全,可共享;通过组合分析,可产生新数据•1.3、优点•没有数据库,使用磁盘文件存储数据;层次结构模型数据库;网状结构模型数据库;关系结构模型数据库;关系-对象模型数据库;二、数据库的类型及对比•2.1、常见的数据库系统•1.甲骨文的Oracle和MySQL•2.IBM的DB2和Snformix•3.微软的Access和SQLServer•4.开源PostgreSQL•5.SAP公司的Sybase2.2、Oracle、SQLserver和MySQL的对比•1、Oracle:诞生早、结构严谨、高可用、高性能,功能齐全等特点,在传统数据库应用中应用极广,但其价格昂贵,安装不方便,其环境里的其他相关组件最多,支持平台数量一般,使用中等方便,开发较方便•2、SQLserver:主要面向中小企业。其最大的优势就是在于集成了微软公司的各类产品及资源,提供了强大的可视化界面、高度集成的管理开发工具,在快速构建商业智能方面颇有建树。价格中等,功能较少,安装较方便,其环境里的其他相关组件最少,支持平台最少,使用方便,不开源,一般安全。•3、MySQL:最初的核心思想,主要是开源、简便易用,安装使用简便快捷,免费,功能中等,安装很方便,其环境里的其他相关组件数量中等,支持平台多,使用较不方便,速度快,安全性不高,并发存取能力并不比大型数据库差,深受广大互联网公司的喜爱。2.3、为什么使用MySQL?MySQL数据库的主要优势:•1.开源代码•2.跨平台性•3.价格优势•4.功能强大且使用方便目前,淘宝、百度、新浪微博已经将部分业务数据迁移到MySQL数据库中,MySQL的应用前景可观。三、MySQL的理论知识•3.1、MySQL的存储引擎•3.2、MySQL的数据类型•3.3、表的约束条件•3.4、MySQL的常用函数•3.5、索引•3.6、视图•3.7、触发器•3.8、存储过程•3.9、事务机制•3.10、锁机制•3.11、安全性机制3.1、MySQL的存储引擎•存储引擎是MySQL数据一个库管理系统的一个重要特征,它指定了表的类型,即如何存储和索引数据、是否支持事务等、同时也决定了表在计算机中的存储方式。在具体开发时,为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据实际需要来选择存储引擎。•常见的存储引擎:InnoDB、MyISAM、MEMORY3.1、MySQL的存储引擎•①InnoDB:InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力、多版本并发控制的事务安全。其优势在于提供良好的事务管理、崩溃修复能力和并发控制。缺点是读写效率稍差,占用的数据空间相对比较大。•②MyISAM:MyISAM存储引擎是MySQL中常见的存储引擎,是以前MySQL的默认存储引擎。MyISAM存储引擎是基于ISAM存储引擎发展起来的。其优势在于占用空间小、处理速度快。缺点是不支持事务的完整性和并发性。•③MEMORY:MEMORY存储引擎是MySQL中的一个特殊的存储引擎。其使用存储在内存中内容来创建表,而且所有数据也放在内存中。这样有利于对数据的快速的处理,提高整个表的处理效率。值得注意的是,服务器需要有足够的内存来维持MEMORY存储引擎的表的使用。如果不需要使用了,可以释放这些内存,甚至可以删除不需要的表。3.1、MySQL的存储引擎存储引擎的对比•特性InnoDBMyISAMMEMORY•事务安全支持不支持不支持•数据行锁定支持不支持不支持•外键约束支持不支持不支持•存储限制64TB有有•空间占用高低低•全文索引不支持支持不支持•内存使用高低高•插入数据的速度低高高•对外键的支持支持无无3.2、MySQL的数据类型•在MySQL数据管理系统中,可以通过存储引擎来决定表的类型。同时,也提供了数据类型决定表存储数据的类型。它提供了:①整数类型②浮点数类型、定点数类型和位类型③日期和时间类型④字符串类型3.2、MySQL的数据类型•①整数类型:MySQL系统除了支持标准SQL中的所有整数类型外,还进行了相应的扩展。•整数类型字节最小值最大值•TINYINT1有符号-128有符号127•无符号0无符号255•SMALLINT2有符号-32768有符号32767•无符号0无符号65535•MEDIUMINT3有符号-8388606有符号8388607•无符号0无符号1677215•INT和INTEGER4有符号-2147483648有符号2147483647•无符号0无符号4294967295•BIGINT8有符号-9223372036854775808有符号9223372036854775807•无符号0无符号184467440737095516153.2、MySQL的数据类型•②浮点数类型、定点数类型和位类型:•浮点数类型:FLOAT(4位)和DOUBLE(8位)•定点数类型:DEC(M,D)或DECIMAL(M,D),字节数为M+2•位类型:BIT(M),字节数为1~83.2、MySQL的数据类型•③日期和时间类型•日期和时间类型字节最小值最大值•DATE41000-01-019999-12-31•DATETIME81000-01-0100:00:009999-12-3123:59:59•TIMESTAMP4197001010800012038年的某个时刻•TIME3-835:59:59838:59:59•YEAR1190121553.2、MySQL的数据类型•④字符串类型•CHAR系列字符串类型:字节描述•CHARMM为0~255之间的整数•VARCHARMM为0~65535之间的整数•TEXT系列字符串类型:字节描述•TINYTEXT0~255值的长度为+2个字节•TEXT0~65535值的长度为+2个字节•MEDIUMTEXT0~167772150值的长度为+3个字节•LONGTEXT0~4294967295值的长度为+4个字节3.2、MySQL的数据类型•④字符串类型•BINARY系列字符串类型:字节描述•BINARY(M)M允许长度为0~M•VARBINARY(M)M允许长度为0~M•与CHAR系列类似,只不过前者可以存储二进制数据,而后者只能存储字符数据•BLOB系列字符串类型:字节•TINYBLOB0~255•BLOB0~216•MEDIUMBLOB0~224•LONGBLOB0~232•与TEXT系列类似,只不过前者可以存储二进制数据,而后者只能存储字符数据3.3、表的约束条件•设计数据库时,可以对数据库表中的一些字段设置约束条件,系统自动检测输入的数据是否满足条件,不满足条件的数据,系统拒绝录入。•约束关键字含义•NOTNULL设置非空约束,字段值不能为空•DEFAULT设置字段默认值•UNIQUEKEY(UK)设置唯一约束,使得该字段内容不允许重复•PRIMARYKEY(PK)设置主键约束,使得该字段可唯一标识所有记录•AUTO_INCREMENT设置字段值自动增加,表中插入新记录时,字段上的值会自动生成唯一的ID,一个表只能有一个字段是该类型,且数据类型必须是整型•FOREIGNKEY(FK)设置外键,是保证多个表之间的参照完整性,即构建两个表的两个字段之间的参照关系3.4、MySQL的常用函数•MySQL功能强大的一个重要原因是MySQL内置了许多功能丰富的函数,这些函数无需定义就可以直接使用,包括字符串函数、数据类型转换函数、条件控制函数、系统信息函数、日期和时间函数和其他常用函数。•①数学函数:三角函数[pi(),radians(x),degrees(x),sin(x),cos(x),tan(x)等]、指数函数[sqrt(),pow(x,y),exp(x)]、对数函数[log(x)]、求近似值函数[round(x),round(x,y),truncate(x,y),format(x,y),ceil(x),floor(x)]、随机函数[rand()],二进制、十六进制[bin(),oct(),ascii(),char(),conv()]•②字符串函数:字符串基本信息函数[charset(x),collation(x),length(x)]、加密函数[password(x),encode(x,key),decode(password,key)]、字符串连接函数[concat(x1,x2,...)]、修剪函数[ltrim(),upper(),lpad(x1,len,x2)]、字符串复制函数[repeat(x,n)]、字符串比较函数[strcmp(x1,x2)]、字符串逆序函数[reverse(x)]3.4、MySQL的常用函数•③数据类型转换函数:convert(x,type),unhe(x)•④条件控制函数:if(),ifnull(),case函数•⑤系统信息函数:关于MySQL服务实例的函数[version()]、关于MySQL服务器连接的函数[connection_id(),user()]•⑥日期和时间函数:获取MySQL服务器当前日期或时间函数[curdate(),curtime(),now(),unix_timestamp(),utc_date()]、获取日期或时间的某一具体信息的函数[year(x),month(x),monthname(x),dayofweek(x),quarter(x)]、时间和秒数之间的转换函数[time_to_sec(x)]、日期时间间隔函数[to_days(x),addtime(t,n),date_add(date,interval)],时间格式化函数[time_format(t,f)]•⑦其他常用函数:获得当前MySQL会话最后一次自增字段值[last_insert_id()]、isnull()函数、uuid()函数3.5、索引•数据库对象索引与书的目录类似,主要是为了提高从表中检索数据的速度。由于数据存储在数据库中,所以索引是创建在数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构中,通过MySQL可以快速有效地查找与键值相关联的字段。索引的本质就是数据库表中字段值的复制,该字段称为索引的关键字。•数据库对象索引的出现,除了可以提高数据库管理系统的查找速度,而且还可以保证字段的唯一性,从而实现数据库表的完整性,MySQL支持六种索引:普通索引、唯一索引、全文索引、单列索引、多列索引、空间索引。3.5、索引•索引的创建有利有弊,它可以提高查询速度,但它也会占据许多的磁盘空间。因此在创建索引之前,必须权衡利弊。•以下情况适合创建索引:•1、经常被查询的字段•2、在分组的字段•3、存在依赖关系的子表和父表之间的联合查询•4、设置唯一的完整性约束的字段•以下情况不适合创建索引:•1、在查询中很少被使用的字段•2、拥有许多重复值的字段3.6、视图•数据库关于数据的查询有时候非常复杂,例如表连接、子查询等,这种查询会让程序员感到非常痛苦,因为它逻辑太复杂、编写语句比较多。当这种查询需要重复使用时,则不会次次都能编写正确,从而降低了数据库的实用性。为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。•视图本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。3.6、视图•视图的特点如下:•1、视图的列可以来自不同的表,是表的抽象和
本文标题:总结MySQL
链接地址:https://www.777doc.com/doc-4462955 .html