menu Chancel's blog
rss_feed
Chancel's blog
我就是这样的人

MariaDB入门笔记(一)

作者:Chancel, 更新:2019 Jan 10, 字数:3609, 已阅:648

这篇文章更新于 1599 天前,文中部分信息可能失效,请自行甄别无效内容。

数据库的知识很复杂,以至于有专门的DBA来负责数据库的运维,但大多数的中小型公司都不会有专门处理数据库的DBA,一般都是开发人员负责维护。

对数据库的掌握也是开发人员的基础技能,此篇简单的总结一下现下最流程的Mariadb常用的必备基础,本篇纯实际开发导向,不涉及理论,相关理论会在后面总结,如无深入必要则只需要了解实际操作即可。

基础

介绍安装

  • 维基百科介绍
    MySQL(官方发音为/maɪ ˌɛskjuːˈɛl/“My S-Q-L”[5],但也经常读作/maɪ ˈsiːkwəl/“My Sequel”)原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。
    MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。 但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenSolaris的发展,因此导致自由软件社群们对于Oracle是否还会持续支持MySQL社群版(MySQL之中唯一的免费版本)有所隐忧,MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。而原先一些使用MySQL的开源软件逐渐转向MariaDB或其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库[6]。

简单讲,现在Mysql已经被Oracle公司所收购,自由软件社区担心Oracle会更改Mysql社区版的支持,故以MySQL为基础创建了MariaDB

  • 安装方式

请自行搜索相关安装教程,这里仅仅给出最简单的安装教程例子

- Windows安装例子:https://www.cnblogs.com/baimt/p/5688517.html
- Linux安装例子:https://www.chancel.cn/#/blogcontent/12



数据库

排序规则与字符集

// 查询字符集
mysql> SHOW CHARACTER SET;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| cp850    | DOS West European               | cp850_general_ci    |      1 |
……
// 查询排序规则
mysql> SHOW COLLATION;
+--------------------------+----------+-----+---------+----------+---------+
| Collation                | Charset  | Id  | Default | Compiled | Sortlen |
+--------------------------+----------+-----+---------+----------+---------+
| big5_chinese_ci          | big5     |   1 | Yes     | Yes      |       1 |
| big5_bin                 | big5     |  84 |         | Yes      |       1 |
| dec8_swedish_ci          | dec8     |   3 | Yes     | Yes      |       1 |
| dec8_bin                 | dec8     |  69 |         | Yes      |       1 |
| cp850_general_ci         | cp850    |   4 | Yes     | Yes      |       1 |
| cp850_bin                | cp850    |  80 |         | Yes      |       1 |
| hp8_english_ci           | hp8      |   6 | Yes     | Yes      |       1 |
| hp8_bin                  | hp8      |  72 |         | Yes      |       1 |
| koi8r_general_ci         | koi8r    |   7 | Yes     | Yes      |       1 |
| koi8r_bin                | koi8r    |  74 |         | Yes      |       1 |
……

创建/删除数据库

// 创建数据库
CREATE DATABASE dabase_name;

// 创建数据库并指定字符集与排序规则(最常用)
CREATE DATABASE database_name CHARACTER SET 'utf8' COLLATE 'gbk_chinese_ci';

// 删除数据库
DROP DATABASE database_name;

数据表

字段类型

类型 包括
整数类型 tinyint、smallint、mediumint、int、bigint
浮点数类型 float、double、real、decimal
日期和时间 date、time、datetime、timestamp、year
字符串类型 char、varchar
文本类型 tinytext、text、mediumtext、longtext
二进制类型 tinyblob、blob、mediumblob、longblob

创建/删除/修改表

  • 创建表

    // 创建表
    CREATE TABLE table_name (
        id INT NOT NULL AUTO_INCREMENT,
        name VARCHAR(100) NOT NULL);
    
  • 修改表

    // 改变主键列的主动增长属性
    ALTER TABLE table_name CHANGE COLUMN id id INT(11) OT NULL AUTO_INCREMENT;
    // 删除列
    ALTER TABLE table_nmae DROP COLUMN name;
    // 插入列
    ALTER TABLE table_name ADD COLUMN name VARCHAR(100) IS NOT NULL ALTER id;
    // 重命名表
    ALTER TABLE table_name RENAME TO new_table_name;
    
  • 删除表

    DROP TABLE table_name;
    

[[replyMessage== null?"发表评论":"发表评论 @ " + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

还没有可以显示的留言...
[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]
目录