mariadb基礎應用

mariadb基礎應用

一、 前言

MariaDB is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users include Wikipedia, WordPress.com and Google.

mariadb是mysql的一個分支,由同一個作者開發,mysql是作者大女兒的名字,mariadb是作者三女兒的名字。mysql是甲骨文(oracle)公司的眼中釘,故將其收購。mysql作者擔心其會遭遇閉源危機,故有開發了mariadb,知名用戶有谷歌,wordpress等等。

二、基本概念

1、mysql主要有兩種存儲引擎

MyISAM:mysql 5.5之前的默認數據庫引擎,擁有較高的插入、查詢速度,但不支持事務。

InnoDB:事務型數據庫的首選引擎,支持ACID事務,支持行級鎖定,mysql5.5之后成為默認的數據庫引擎。

事務(Transaction):組織多個操作為一個整體,要么全部都執行,要么全部都不執行。就是轉賬,自己這邊扣掉錢了,對方還沒有到賬,就要全部回滾。要不就自己掉錢了  對方也沒拿到。

2、設計范式基礎概念

1、第一范式:無重復的域(列不重復)

2、第二范式:在第一范式的基礎上屬性完全依賴于主鍵(行不重復,重復的放在另一張表上,形成一對多,例如統計XX部門的N的人的信息,都是XX部門,在第一張表寫一次即可,映射到另外一張表。)

3、第三范式:在第二范式的基礎上要求,一個關系不能包含已在其他關系已包含的非主關鍵字信息。一個關系中的A表現出年齡,B表不能存在。

三、mysql基礎應用

常用mysql實用程序

mysqlshow

mysqladmin

mysql

1、mysqlshow 簡單應用

(1)顯示mysql服務器中的所有數據庫:mysqlshow

mariadb基礎應用

(2)顯示mysql服務器中的表:mysqlshow mysql

mariadb基礎應用

2、mysqladmin 簡單應用

(1)設置mysql用戶root的密碼,密碼為passwd

mysqladmin -u root password 'passwd'

mariadb基礎應用

(2)顯示mysql服務器的基本狀態信息

mysqladmin  status  或
mysqladmin  -u root  -p  status

3、mysql詳解

mysql是mysql命令行工具,相當于一個簡單的SQL shell。

客戶端命令:本地執行,常用如下

mysql> help
\u db_name:設定哪個庫為默認數據庫
\q:退出;
\d CHAR:設定新的語句結束符;
\g:語句結束標記;

服務端命令:通過 mysql 連接發往服務器執行并取回結果;

DDL, DML, DCL

注意:每個語句必須有語句結束符,默認為分號(;)

DDL :CREATE ALTER DROP

1、數據庫管理:增刪查改

創建:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name;
[DEFAULT] CHARACTER SET [=] charset_name
[DEFAULT] COLLATE [=] collation_name

查看支持的所有字符集:SHOW CHARACTER SET
查看支持的所有排序規則:SHOW COLLATION

修改:
ALTER {DATABASE | SCHEMA} [db_name]
[DEFAULT] CHARACTER SET [=] charset_name
[DEFAULT] COLLATE [=] collation_name

mariadb基礎應用

2、表管理:增刪查改

創建:
    CREATE TABLE [IF NOT EXISTS] tbl_name (create_defination)
    [table_options]
create_defination:
    字段:col_name data_type
    鍵:
    PRIMARY KEY (col1, col2, ...)
    UNIQUE KEY (col1, col2,...)
    FOREIGN KEY (column)
    索引:
    KEY|INDEX [index_name] (col1, col2,...)
table_options:
    ENGINE [=] engine_name
查看數據庫支持的所有存儲引擎類型:
    mysql> SHOW ENGINES;
查看某表的存儲引擎類型:
    mysql> SHOW TABLES STATUS [LIKE 'tbl_name']

CREATE TABLE students(id INT UNSIGNED NOT NULL PRIMARYKEY,name CHAR(30) NOT NULL,age TINYINT UNSIGNED,gender ENUM('f','m'));

DESC students ;

mariadb基礎應用

DROP TABLE students; 刪除表格

修改表格:ALTER TABLE students ADD class VARCHAR(100) NOT NULL AFTER name;

mariadb基礎應用

ALTER TABLE students MODIFY class VARCHAR(100) NOT NULL AFTER age;

mariadb基礎應用

ALTER TABLE students DROP class; 刪除表格中的class

3、索引管理:索引是特殊的數據結構

創建:
    CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [BTREE|HASH] ON tbl_name (col1, col2,,...)
刪除:
DROP INDEX index_name ON tbl_name

mariadb基礎應用

DML :INSERT SELECT DELETE UPDATE

1、INSERT

INSERT INTO:
    INSERT [INTO] tbl_name [(col1,...)] {VALUES|VALUE}
    (val1, ...),(...),...
注意:
字符型:引號;
數值型:不能用引號;

INSERT students(id,name) VALUES(2,'HuangYaoshi'),(3,'ZhouBotong');

SELECT * FROM students;

mariadb基礎應用

2、SELECT

(1) SELECT * FROM tbl_name;
(2) SELECT col1, col2, ... FROM tbl_name;
    顯示時,字段可以顯示為別名;
    col_name AS col_alias
(3) SELECT col1, ... FROM tbl_name WHERE clause;
    WHERE clause:用于指明挑選條件;
    col_name 操作符 value:
    age > 30;


    操作符(1) :
        >, <, >=, <=, ==, !=
        組合條件:
        and
        or
        not
    操作符(2) :
        BETWEEN ... AND ...
        LIKE 'PATTERN'
        通配符:
            %:任意長度的任意字符;
            _:任意單個字符;
        RLIKE 'PATTERN'
            正則表達式對字符串做模式匹配;
        IS NULL
        IS NOT NULL
(4) SELECT col1, ... FROM tbl_name [WHERE clause] ORDER BY col_name, col_name2, ... [ASC|DESC];
    ASC: 升序;
    DESC: 降序;

mariadb基礎應用

mariadb基礎應用

3、DELETE:刪除一整行,很危險,不加條件,整張表就沒了,每一個回合都要確認N遍

DELETE FROM tbl_name [WHERE where_condition] [ORDER BY ...][LIMIT row_count]
(1) DELETE FROM tbl_name WHERE where_condition
(2) DELETE FROM tbl_name [ORDER BY ...] [LIMIT row_count]

4、UPDATE:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET
col_name1=value1 [, col_name2=value2] ... [WHERE where_condition] [ORDER BY ...]
[LIMIT row_count]

UPDATA students SET age=age-5 ORDER BY id DESC;

UPDATA students SET age=age-15 WHERE name NOT LIKE 'stu%';

用戶賬戶及權限管理:

1、創建用戶賬號

CREATE USER 'testuser'@'192.168.%.%' IDENTIFIED BY 'testpass'; 只有查看的權限,沒有寫權限

mariadb基礎應用

禁止檢查主機名:my.cnf

[mysqld]

skipnameresolve = ON

2、刪除用戶賬號

DROP USER ’user‘@’host' [, user@host] …

3、授權

GRANT priv_type,... ON [object_type] db_name.tbl_name TO 'user'@'host' [IDENTIFIED BY 'password'];

CREATE USER 'testuser'@'192.168.%.%' IDENTIFIED BY 'testpass';

GRANT SELECT ON mydb.students TO 'testuser'@'192.168.%.%';

FLUSH PRIVILEGES;

mysql -utestuser -h192.168.1.120 -ptestpass

mariadb基礎應用

查看指定用戶所獲得的授權:
SHOW GRANTS FOR 'user'@'host'
SHOW GRANTS FOR CURRENT_USER;

4、回收權限

REVOKE priv_type, ... ON db_name.tbl_name FROM
'user'@'host';
注意:MariaDB 服務進程啟動時,會讀取 mysql 庫的所有授權表至內存中;
(1) GRANT 或 REVOKE 命令等執行的權限操作會保存于表中,MariaDB 此時一
般會自動重讀授權表,權限修改會立即生效;
(2) 其它方式實現的權限修改,要想生效,必須手動運行 FLUSH PRIVILEGES
命令方可;

5、加固mysql服務器

加固 mysql 服務器,在安裝完成后,運行 mysqlsecureinstallation 命令;

6、圖形管理組件phpMyAdmin見上一個博客。

原創文章,作者:N24_yezi,如若轉載,請注明出處:http://www.www58058.com/63876

(0)
N24_yeziN24_yezi
上一篇 2016-12-16
下一篇 2016-12-16

相關推薦

  • 五種開源協議的比較(BSD,GPL,LGPL,Apache,BSD)

    BSD開源協議(original BSD license、FreeBSD license、Original BSD license) BSD開源協議是一個給于使用者很大自由的協議?;旧鲜褂谜呖梢浴睘樗麨椤?可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發布。 但”為所欲為”的前提當你發布使用了BSD協議的代碼,或則以BSD協議代碼…

    Linux干貨 2016-01-16
  • M22 Centos6上編譯安裝httpd2.4并實現HTTPS瀏覽

    隨著網絡技術的發展,人們對信息安全越來越重視,傳統的http瀏覽互聯網的方式由于未經加密,其安全性廣為人們詬病,https協議作為加密的互聯網解決方案解決了這一問題。下面我就簡要說明下如何實現通過https發布web頁面的。   實驗目的: 模擬Centos6上安裝httpd2.4,并實現https加密訪問主頁 實驗器材: Centos6.8虛擬機…

    Linux干貨 2017-04-20
  • 超文本傳輸安全協議—HTTPS

        超文本傳輸安全協議(英語:Hypertext Transfer Protocol Secure,縮寫:HTTPS,常稱為HTTP over TLS,HTTP over SSL或HTTP Secure)是一種通過計算機網絡進行安全通信的傳輸協議。HTTPS經由HTTP進行通信,但利用SSL/TLS來加密數據包。H…

    Linux干貨 2017-08-07
  • Jumpserver 3.0 全新改版 更輕、更快、更便捷

               Jumpserver Wiki                       &…

    系統運維 2016-01-05
  • 分布式文件系統MogileFS

    1、分布式系統的目標:加強A、P,在C上進行妥協 ? ? BASE模型 CAP理論: C:Consistency(一致性)? 任何一個讀操作總是能夠讀取之前完成的寫操作。 A:Availability(可用性) 每一次操作總是能夠在確定的時間返回。 P: Partition Tolerance ( 分區容錯性 )?? 在出現網絡分區的情況下,仍然能夠滿足一致…

    2017-11-23
  • 8.5_Linux文本處理工具和grep之正則表達式的使用

    Linux文本處理工具使用 文件查看工具的使用 cat 命令的使用  此命令一般用于查看文件內容比較多 NAME        cat – concatenate files and print on the&…

    Linux干貨 2016-08-08

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-23 12:19

    贊~詳細描述mysql一些常用的操作~~建議補充下備份、恢復相關的內容,會更好點~~繼續加油~

欧美性久久久久