mSQL(mini SQL)是一个单用户
数据库管理系统,个人使用免费,商业使用收费。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。
简介
mSQL(mini SQL)由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(mini SQL)是一种小型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中是足够了。由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在
线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都要快一些。
技术特点
mSQL的技术特点:安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是 全部可读/写。mSQL缺乏 ANSI SQL 的大多数特征,它仅仅实现了一个最最少的API,没有
事务和参考完整性。mSQL与Lite(一种类似C的
脚本语言,与分发一起发行)紧密结合,可以得到一个称为 W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHP API. mSQL以两种形式发布,一种是以RPM
软件包方式,另一种是用tar压缩的
源代码方式。对于RPM
软件包方式的软件包安装很简单,只用一条命令就可以完成:Rpm –ivh msql-3.7.rpm。
而对于以源代码方式发布的mSQL安装则要麻烦一些。首先用gunzip解压软件包“gunzip msql一3.7.tar.gz”;接着用。setup进行设置编译选项;然后就可以开始编译mSQL
源程序“make all”l最后执行“make install” 即可完成安装。
在实际应用中我们改动得最多的是mSQL—User 和Admin—User这两个参数。mSQL—User指明运行mSQL数据库服务程序的用户,而Admin—User指明能对mSQL
数据库系统执行特权操作(如:关闭数据库服务程序的运行,创建数据库等操作)的用户。因此,如果你希望mSQL服务程序以database这个用户运行,指定admin这个用户能执行数据库操作,你要将mSQL—User和Admin—User所在的行分别改为:mSQL—User = database和Admin—User = admin.另外你还必须将Hughes目录下的文件和目录的属主改为database.在配置完成后,注销当前用户的身份,重新以msql.conf的参数 mSQL—User设定的用户登录到系统,进入/usr/local/Hughes/bin目录键入如下的命令:。/msql3d &,这样就启动了mSQL
数据库系统。
配置文件
msql.conf典型配置文件如下:
# msql.conf - Configuration file for Mini SQL Version 3
# This configuration sets all options to their default values.
# Note : %I is expanded to the value of the Inst_Dir element is included in a value.
[general]
Inst_Dir = /usr/local/msql3
mSQL_User = daemon
Admin_User = root
Pid_File = %I/msql3.pid
TCP_Port = 1114
UNIX_Port = %I/msql3.sock
[system]
Msynch_Timer = 30
Host_Lookup = True
Read_Only = False
Num_Children = 3
Table_Cache = 8
Sort_Max_Mem = 1000
Force_Munmap = False
Query_Log = False
Update_Log = False
Local_Access = True
Remote_Access = False
数据库的使用
MySQL数据类型含义
tinyint(m)
1个字节表示(-128~127)
smallint(m)
2个字节表示(-32768~32767) mediumint(m)
3个字节表示(-8388608~8388607)
int(m)
4个字节表示(-2147483648~2147483647) bigint(m) 8个字节表示
(+-9.22*10的18次方) 2.浮点型
(float和double)
MySQL数据类型
含义
float(m,d)
单精度浮点型,8位精度(4字节),m是十进制数字的总个数,
d是小数点后面的数字个数double(m,d)
双精度浮点型,16位精度(8字节)
参数m只影响显示效果,不影响精度,d却不同,会影响到精度。比如设一个字段定义
3.定点数(decimal)
decimal(m,d) 定点类型浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
参数
m是定点类型数字的最大个数(精度),范围为0~65,d小数点右侧数字的个数,范围为0~30,但不得超过m。对定点数的计算能精确到65位数字。
4.字符串(char,varchar,xxxtext)
MySQL数据类型
含义
char(n) 固定长度的字符串,最多
255个字符varchar(n) 固定长度的字符串,最多
65535个字符tinytext 可变长度字符串,最多
255个字符text 可变长度字符串,最多
65535个字符mediumtext 可变长度字符串,最多
2的24次方-1个字符longtext 可变长度字符串,最多
2的32次方,-1个字符
5.二进制数据
(xxxBlob)
XXXBLOB
和xxxtext
是对应的,不过存储方式不同,xxxTEXT是以文本方式存储的,如果存储英文的话区分大小写,而xxxBlob 是以二进制方式存储的,不区分大小写。
xxxBlob
存储的数据只能整体读出。
xxxTEXT
可以指定字符集,
xxxblob
不用指定字符集。
6.日期时间类型 (date,time,datetime,timestamp)
MySQL
数据类型
含义
date
日期
'2008-12-2'
time
时间
'12:25:36'
datetime
日期时间
'2008-12-2 22:06:44'
timestamp 不固定
timestamp 比较特殊,如果定义一个字段的类型为
timestamp,这个字段的时间,会在其他字段修改的时候自动刷新。所以这个数据类型的字段可以存放这条记录,最后被修改的时间,而不是真正来的存放时间。
7.数据类型的属性
MySQL 关键字
含义
NULL 数据列可包含
NULL值
NOT NULL 数据列不允许包含
NULL 空值
DEFAULT xxx 默认值,如果插入记录的时候没有指定值,将取这个默认值
PRIMARY KEY 主键
AUTO_INCREMENT
递增,如果插入记录的时候没有指定值,则在上一条记录的值上加
1. 仅适用于整数类型
UNSIGNED 无符号
CHARACTER SET
name 指定一个字符集