
MySQL
TheGodsHand
每天进步一点点
展开
-
MySQL(三)--------常用函数
使用函数的方便性我就不多说了,在MySQL数据库中,函数可以使用在SELECT语句及其字句(例如WHERE、ORDER BY、HAVING等)中,也可以用在UPDATE、DELETE语句及其字句中。一、字符串函数 注意:下面只是演示函数的作用,并未选择具体的数据库及表 1. CONCAT( s1,s2,...sn) 函数:把传入的参...原创 2018-12-13 18:07:16 · 484 阅读 · 0 评论 -
MySQL(十三)------ SQL Mode相关问题
MySQL可以在不同的SQL模式下运行,这样,我们可以通过修改SQL模式来达到数据校验、迁移等功能。一、常用的SQL模式 选中某种模式,其实是一系列模式的组合,这样就可以将多种不同功能的原子模式进行组合得到想要的功能。二、SQL Mode简介 在MySQL中,SQL Mode常用来解决下面几类问题:通过设置SQL Mode,...原创 2018-12-26 15:28:16 · 463 阅读 · 0 评论 -
MySQL(十二)------ SQL中的安全问题
日常开发过程中我们通常只关心SQL语句能否实现预期功能,往往忽略了SQL语句可能会带来的系统漏洞,常遇到的就是SQL注入。一、SQL注入简介 这里不做抽象的解释,可能说完也不会明白,直接用例子来演示SQL注入:1. 首先我们创建一张表并插入一条数据来模拟实际情况下接触不到的数据库CREATE TABLE users ( id int(11) NOT ...原创 2018-12-26 11:28:13 · 672 阅读 · 0 评论 -
MySQL(十六)------ 优化数据库对象
在数据库设计时,通常会有很多问题需要思考,比如是否需要把所有的表按第三范式来设计?表中各字段设计为多大的长度合适?等等这些问题都是需要考虑的;下面介绍的就是通过一些方法来分析,而后进行指导数据库的优化。一、优化表的数据类型及长度 表字段的类型需要根据应用来判断,字段的长度要留有一定的冗余,但不能有大量冗余,具体怎么定可以通过MySQL的函数 procrdure ...原创 2019-01-07 10:18:43 · 733 阅读 · 5 评论 -
MySQL(十一)------ 事务控制和锁定语句
表锁:MyISAM、MEMORY存储引擎;行锁:InnoDB存储引擎;页锁:BDB存储引擎;默认情况下表锁和行锁都是自动获得的,不需要额外的命令;但是有时候用户需要明确的进行行锁或者进行事务的控制,以便确保整个事务的完整性,这样就需要用到事务控制和锁定语句来完成。一、LOCK TABLE 和 UNLOCK TABLE LOCK TABLE 用于锁定当前线程的表,U...原创 2018-12-25 17:45:44 · 478 阅读 · 0 评论 -
MySQL(十五)----- SQL语句优化之索引问题
索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以解决大多数的SQL性能问题。一、索引的存储分类 索引是在MySQL的存储引擎层中实现的,因此,每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型。目前MySQL提供了以下4种索引:B-Tree索引:最常见的索引类型,大部分存储引擎都支持B树索引; HASH索引:只有Mem...原创 2019-01-04 16:06:28 · 329 阅读 · 0 评论 -
MySQL(十)------ 触发器
触发器是与表有关的数据库对象,在满足定义的条件时触发,然后执行触发器中定义的语句集合,这种特性可以协助应用在数据库端确保数据的完整性。MySQL在5.02版本后开始支持该功能。一、创建触发器 语法如下:CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW t...原创 2018-12-24 15:15:07 · 283 阅读 · 0 评论 -
MySQL(六)------ 字符集
计算机只能识别二进制代码,而人只能看懂文字符号,这两者之间必须要定义一个转换规则来使人和计算机识别的是同一个东西,这个规则就是人们制定的字符集。一、字符集概述 字符集的基础是ASCII码,基本上后来所有的字符集都兼容ASCII字符集,但是,由于各公司、各政府、各机构等创建的字符集编码规则各不相同,这就给软件移植及协同开发带来困难,因此有必要统一字符编码。 ...原创 2018-12-18 18:13:14 · 347 阅读 · 0 评论 -
MySQL(十五)----- SQL语句优化
通常在数据量较少的时候,我们并没有那么在意SQL语句的性能问题,只要能到达目的即可;但是当你面对浩大的数据量仍然这么做时,面临的往往是耗时良久或者数据崩溃;当然,数据库优化的方式有很多,这里我们着重介绍SQL优化。准备工作: 既然要研究数据量较大的表,那么首先我们需要一个数据库,该数据库里要有很多表,表中要有很多内容;MySQL官方提供了一个模拟电影出租厅...原创 2018-12-29 18:07:46 · 488 阅读 · 0 评论 -
MySQL(五)---- 选择合适的数据类型
每当创建一张数据表的时候我们就面临着选择什么样的数据类型,选多大的等等问题,很多人凭感觉选了类型估计了大小,但这么做往往后期出错或浪费空间,因此根据特性选择合适的类型及大小很有必要。一、CHAR 与 VARCHAR 都用来存储字符串,CHAR属于固定长度的字符类型,VARCHAR属于可变长度的字符类型,它们的保存和检索方式不同。从上表可以看出,固定长度的...原创 2018-12-18 16:27:52 · 412 阅读 · 0 评论 -
MySQL(四)--------表类型(存储引擎)的选择
一、MySQL存储引擎简介 MySQL支持多种存储引擎,以适用于不同领域的数据库应用需要,用户可以根据需要进行选择甚至是定制自己的引擎以提高应用效率。 使用如下命令查看当前版本mysql支持的存储引擎:mysql> show engines \G*************************** 1. row ******************...原创 2018-12-17 18:12:26 · 308 阅读 · 0 评论 -
MySQL(十四)------- MySQL分区
分区是根据一定的规则把数据库中的一张表分解成多个更小的、更容易管理的部分,这些部分作为一个独立的对象可以存放在不同的地方。对于用户来说,访问表里的数据跟不分区没什么差别,但是对于数据库本身及其管理维护来说有很多好处:和单个磁盘或者文件系统相比,分区可以存储更多的数据; 优化查询。在where字句中包含分区条件时,可以只扫描必要的一个或多个分区来提高查询效率;同时在涉及SUM...原创 2018-12-27 18:26:04 · 371 阅读 · 0 评论 -
MySQL(九)----- 存储过程和函数
如果说前面讲的视图让你对SQL语言开始有了一些新的理解,那么这次讲的存储过程和函数就会让你觉得SQL语言跟其它的编程语言真的很接近,因为它也像别的语言一样去封装函数、定义变量、流程及条件控制、异常捕获等等。MySQL从5.0版本开始支持存储过程和函数。一、什么是存储过程和函数 简单的可以理解成其它语言中封装的函数一样,可以调用这个函数来达到某种功能。但也有一些不同,这...原创 2018-12-21 18:08:11 · 436 阅读 · 0 评论 -
MySQL(二)------SQL基础
一、SQL简介 SQL(Structure Query Language) 是结构化查询语言,是关系型数据库的应用语言,大多数关系型数据库都支持SQL作为底层会话语言。二、SQL使用入门 在介绍标准SQL语言的同时,我们会根据MySQL自身的特点进行扩展,这样我们不仅掌握了标准SQL语言,也对MySQL的扩展有所了解。2.1 SQL分类 S...原创 2018-12-10 16:30:38 · 372 阅读 · 0 评论 -
MySQL(一) -----启动与关闭
一、写在前面 MySQL作为强大的开源数据库在各方面已经经受住了考验,不管在商业用途上还是个人用途上都有很大的市场,广泛的用户基础以及成熟的使用经验使得它被越来越多的人学习使用,这里我们就通过一系列的内容来学习使用MySQL。二、安装与配置 关于这部分可能比较繁琐,网上也有很多相关的windows平台及linux平台的安装配置过程,具体需要可以自行搜索,这边...原创 2018-12-10 11:15:00 · 4063 阅读 · 0 评论 -
MySQL(八)----- 视图
注意,MySQL从5.0.1版本开始提供视图功能,使用时注意版本;另外,如果从不支持视图的旧版本升级到提供视图的新版本后,要想使用视图还需要升级授权表,使之包含与视图有关的权限。一、什么是视图 视图是一种虚拟存在的表,它存储的是查询语句,显示出来的是查询的结果;更直白的说就是当我们需要从表中查询一些信息时需要编写相关SQL语句,将这些SQL语句存储为视图,那么我...原创 2018-12-20 12:38:19 · 344 阅读 · 0 评论 -
MySQL(七)------ 索引的设计和使用
索引是数据库中用来提高性能的最常用工具,下面简单介绍一下索引的类型和设计原则。一、索引概述常用引擎的索引方式 特点 MyISAM InnoDB MEMORY MERGE B树索引 支持(默认) 支持(默认) 支持 支持 哈希索引 支持(默认) 全文索引 支持 ...原创 2018-12-19 17:39:13 · 236 阅读 · 1 评论 -
MySQL(十七)----- 锁相关问题
锁是计算机协调多个进程、线程并发访问某一资源的机制。传统的计算机在CPU、RAM、I/O等上采用锁来防止相互争夺的情况,同样,数据库中的数据也是一种共享的资源,如何保证数据并发访问的一致性、有效性是是数据库必须要解决的问题,因此锁的概念就提到数据库上来了。一、MySQL锁概述 相对于其它的数据库而言,MySQL中的锁相对较简单,其显著的特点是不同的存储引擎支持...原创 2019-01-07 18:24:18 · 930 阅读 · 0 评论