MariaDB(MySQL)创建、删除、选择及数据类型使用详解
一、MariaDB简介(MySQL简介略过)
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。MariaDB由MySQL的创始人MichaelWidenius(英语:MichaelWidenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQLAB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自MichaelWidenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL5.4InnoDB性能。这个版本还包括了PrimeBaseXT(PBXT)和FederatedX存储引擎。
二、MariaDB的创建、删除、选择及数据类型使用详解(注:本文演示为root权限)
(1)MariaDB创建数据库
1.1:使用mysqladmin创建数据库
[root@test0110.19.166.166~] #mysqladmin-uroot-pcreatetestdb1 Enterpassword://此处填写MariaDB数据库的密码 [root@test0110.19.166.166~] #mysql MariaDB[(none)]>showdatabases; +--------------------+ |Database| +--------------------+ |hellodb| |information_schema| |mydb| |mysql| |performance_schema| |test| |testdb| |testdb1|<---创建的好的库 +--------------------+
1.2:登录MariaDB库创建
MariaDB[(none)]>createdatabasetestdb2; QueryOK,1rowaffected(0.00sec) MariaDB[(none)]>showdatabases; +--------------------+ |Database| +--------------------+ |hellodb| |information_schema| |mydb| |mysql| |performance_schema| |test| |testdb| |testdb1| |testdb2|<---创建好的库 +--------------------+
(2)MariaDB删除数据库
2.1:使用mysqladmin删除数据库
[root@test0110.19.166.166~] #mysqladmin-uroot-pdroptestdb1 Enterpassword://输入数据库密码 //执行完上面的删除命令后,会出现一个提示框,提示是否确认删除此数据库 Droppingthedatabaseispotentiallyaverybadthingtodo. Anydatastoredinthedatabasewillbedestroyed. Doyoureallywanttodropthe'testdb1'database[y/N]y//删除 Database"testdb1"dropped
登录查看
MariaDB[(none)]>showdatabases;//确认testdb1已被删除 +--------------------+ |Database| +--------------------+ |hellodb| |information_schema| |mydb| |mysql| |performance_schema| |test| |testdb| |testdb2| +--------------------+
2.2:登录MariaDB库删除
MariaDB[(none)]>dropdatabasetestdb2; QueryOK,0rowsaffected(0.00sec) MariaDB[(none)]>showdatabases;//确认testdb2已被删除 +--------------------+ |Database| +--------------------+ |hellodb| |information_schema| |mydb| |mysql| |performance_schema| |test| |testdb| +--------------------+
(3)MariaDB选择数据库,查看选择库下面的所有表
MariaDB[(none)]>showdatabases;//查看所有库 +--------------------+ |Database| +--------------------+ |hellodb| |information_schema| |mydb| |mysql| |performance_schema| |test| |testdb| +--------------------+ 7rowsinset(0.00sec) MariaDB[(none)]>usemydb//选择mydb数据库 Databasechanged MariaDB[mydb]>showtables;//查看mydb数据库下面所有表信息 +----------------+ |Tables_in_mydb| +----------------+ |ssc| |t1| |tb2| |tb4| |tb5| +----------------+ 5rowsinset(0.00sec)
(4)MariaDB数据类型
MariaDB中定义的数据字段的类型对数据库优化非常重要
MariaDB支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符类型)
4.1数值型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
TINYINT | 1字节 | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2字节 | (-32768,32767) | (0,65535) | 大整数值 |
MEDIUMINT | 3字节 | (-8388608,8388607) | (0,16777215) | 大整数值 |
INT或INTEGER | 4字节 | (-2147483648,2147483647) | (0,4294967295) | 大整数值 |
BIGINT | 8字节 | (-9233372036854775808,9223372036854775807) | (0,18446744073709551615) | 极大整数值 |
FLOAT | 4字节 | (-3.402823466E+38,1.175494351E-38),0,(1.175494351E-38,3.402823466351E+38) | 0,(1.175494351E-38,3.402823466E+38) | 单精度 浮点数值 |
DOUBLE | 8字节 | (1.7976931348623157E+308,2.2250738585072014E-308),0,(2.2250738585072014E-308,1.7976931348623157E+308) | 0,(2.2250738585072014E-308,1.7976931348623157E+308) | 双精度 浮点数值 |
DECIMAL | 对DECIMAL(M,D),如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
4.2日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。
类型 | 大小(字节) | 范围 | 格式 | 用途 |
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-0100:00:00/9999-12-3123:59:59 | YYYY-MM-DDHH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 8 | 1970-01-0100:00:00/2037年某时 | YYYYMMDDHHMMSS | 混合日期和时间值,时间戳 |
4.3字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
CHAR
0-255字节
定长字符串
VARCHAR
0-255字节
变长字符串
TINYBLOB
0-255字节
不超过255个字符的二进制字符串
TINYTEXT
0-255字节
短文本字符串
BLOB
0-65535字节
二进制形式的长文本数据
TEXT
0-65535字节
长文本数据
MEDIUMBLOB
0-16777215字节
二进制形式的中等长度文本数据
MEDIUMTEXT
0-16777215字节
中等长度文本数据
LOGNGBLOB
0-4294967295字节
二进制形式的极大文本数据
LONGTEXT
0-4294967295字节
极大文本数据
CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。