MySQL数据库基础知识简介

数据库 MySQL
此文章主要向大家描述的是MySQL数据库的一些基础知识,如果你是MySQL数据库的狂人追捧者,那么以下的文章对于你而言一定特别好用。

以下的文章主要是对MySQL数据库的一些基础知识的简单介绍,随着MySQL数据库的广泛应用,其相关的知识也随着受到重视,以下的文章对比较适合于MySQL的初学者,以下就是文章的主要内容。

 

安装

 

可以在MySQL站点上获得大多数主要的软件包格式(RPM、DBE、TGZ),客户端库和各种语言“包装”(Wrapper)可以分开的RPM格式获得。RPM格式的安装没有多大麻烦,并且无需初始配置。在rc3.d(以RedHat RPM为例)生成一个初始脚本,故MySQL守护进程在多用户模式下重启时被启动运行。MySQL的守护进程(MySQLd)消耗很少的内存(在运行RedHat 5.1的奔腾133上,每个守护进程使用500K内存和另外4M共享内存的开销)并在只有在执行真正的查询时才装载到处理器上,这意味着对小型数据库来说,MySQL可以相当轻松地使用而不会对其他系统功能有太大的影响。

 

数据类型

 

字段支持大量数据类型是件好事。通常的整数、浮点数、字符串和数字均以多种长度表示,并支持变长的BLOB(Binary Large OBject)类型。对整数字段由自动增量选项,日期时间字段也能很好的表示。

 

MySQL与大多数其他数据库系统不同的是提供两个相对不常用的字段类型:ENUM和SET。ENUM是一个枚举类型,非常类适于Pascal语言的枚举类型,它允许程序员看到类似于'red、'green'、'blue'的字段值,而MySQL数据库只将这些值存储为一个字节。SET也是从Pascal借用的,它也是一个枚举类型,但一个单独字段一次可存储多个值,这种存储多个枚举值的能力也许不会给你一些印象(并可能威胁第三范式定义),但正确使用SET和CONTAINS关键字可以省去很多表连接,能获得很好的性能提高。

 

SQL兼容性

 

MySQL包含一些与SQL标准不同的转变,他们的大多数被设计成是对SQL语言脚本语言的不足的一种补偿。然而,另一些扩展确实使 MySQL与众不同,例如,LINK子句搜索是自动地忽略大小写的。MySQL 也允许用户自定义的SQL函数,换句话说,一个程序员可以编写一个函数然后集成到MySQL中,并且其表现的与任何基本函数如SUM()或AVG ()没有什么不同。函数必须被编译道一个共享库文件中(.so文件),然后用一个LOAD FUNCTION命令装载。

 

它也缺乏一些常用的SQL功能,没有子选择(在查询中的查询)。视图(View)也没了。当然大多数子查询可以用简单的连接(join)子句重写,但有时用两个嵌套的查询思考问题比一个大连接容易。同样,视图仅仅为程序员隐蔽where子句,但这正是程序员们期望的另一种便利。

 

存储过程和触发器

 

MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。多语句SQL命令必须通过客户方代码来协调,这种情形是借助于相当健全的查询语言和赋予客户端锁定和解锁表的能力,这样才允许的多语句运行。

 

参考完整性(Referential Integrity-RI)

 

MySQL的主要的缺陷之一是缺乏标准的RI机制;然而,MySQL数据库的创造者也不是对其用户的愿望置若罔闻,并且提供了一些解决办法。其中之一是支持唯一索引。Rule限制的缺乏(在给钉字段域上的一种固定的范围限制)通过大量的数据类型来补偿。不简单地提供检查约束(一个字段相对于同一行的另一个字段的之值的限制)、外部关键字和经常与RI相关的“级联删除”功能。有趣的是,当不支持这些功能时,SQL分析器容忍这些语句的句法。这样做目的是易于移植数据库到MySQL中。这是一个很好的尝试,并且它确实未来支持该功能留下方便之门;然而,那些没有仔细阅读文档的的人可能误以为这些功能实际上是存在的。

 

安全性

 

自始至终我对MySQL最大的抱怨是其安全系统,它唯一的缺点是复杂而非标准,另外只有到调用MySQLadmin来重读用户权限时才发生改变。通常的SQL GRANT/REVOKE 语句到最近的版本才被支持,但是至少他们现在有了。 MySQL数据库的编写者广泛地记载了其特定的安全性系统,但是它确实需要一条可能是别无它法的学习过程。

 

 【编辑推荐】

  1. 解决MySQL远程访问不允许得个好用方案
  2. PHP和MySQL存储过程的实例演示
  3. linux下MySQL源码如何进行纯手动安装?
  4. MySQL数据库中primary key重复处理3方案
  5. MySQL delimiter 定义命令的结束标志

 

责任编辑:佚名 来源: cnblogs
相关推荐

2010-05-24 16:58:00

MySQL数据库备份

2011-05-12 10:18:41

数据库基础知识

2011-03-31 14:46:29

MySQL数据库备份

2011-03-07 16:13:09

MySQL数据库管理

2010-01-25 11:55:41

MySQL数据库备份数据库安全

2011-02-25 09:37:35

2011-09-16 10:13:02

Emacs

2010-04-27 18:18:08

Oracle数据库备份

2010-05-25 14:50:25

MySQL 数据库

2011-07-29 13:17:58

SQL Server Analysis Se

2009-08-19 16:19:01

C#操作Access数

2011-05-31 13:52:22

口令CiscoIOS

2011-05-31 13:15:03

路由器CiscoIOS

2011-05-31 13:50:14

CiscoIOS

2011-05-31 13:15:05

路由器IOSCisco

2011-05-31 13:50:11

路由器CiscoIOS

2011-05-31 13:50:17

CiscoIOS

2015-05-28 15:16:19

交换机

2020-10-22 08:28:04

大数据架构技术

2010-05-11 14:00:01

MySQL数据库命令
点赞
收藏

51CTO技术栈公众号