mariadb(mysql)的基礎知識及使用

來源:互聯網
上載者:User

MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社區在維護,採用GPL授權許可 MariaDB的目的是完全相容MySQL,包括API和命令列,使之能輕鬆成為MySQL的代替品。在儲存引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。

MariaDB由MySQL的創始人Michael Widenius(英語:Michael Widenius)主導開發,他早前曾以10億美元的價格,將自己建立的公司MySQL AB賣給了SUN,此後,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自Michael Widenius的女兒Maria的名字。

MariaDB基於事務的Maria儲存引擎,替換了MySQL的MyISAM儲存引擎,它使用了Percona的 XtraDB,InnoDB的變體,分支的開發人員希望提供訪問即將到來的MySQL 5.4 InnoDB效能。這個版本還包括了 PrimeBase XT (PBXT) 和 FederatedX儲存引擎。

DBMS:DataBase Management System 資料庫管理系統

RDBMS:Relational DataBase Management System 關係型資料庫管理系統

SQL引擎

儲存引擎:Storage Engine

資料模型:
層次模型,網狀模型,關聯式模式…
關聯式模式:

二維關係:表
行;row,entity
列:colume,attribution
索引:資料結構,輔助完成資料尋找
SQL介面:

SQL:Structure Query Language 結構化查詢語言 (SQL)
ANSI:SQL-標準,SQL-86,SQL-89,SQL-92…
SQL代碼:
儲存常式:Storage routing
預存程序:storage procedure
儲存函數:storage function
觸發器:trigger
事件調度器;event scheduler
事務:一個由單個或多個SQL語句組成的不可分割原子操作
ACID:
A:原子性
C:一致性
I:隔離性
D:持久性
資料類型:

作用:儲存格式,資料範圍,所能參與的運算,排序方式
字元型:
定長字元型:CHAR(#),BINARY(#)
變長字元型:VARCHAE(#),VARBINARY(#)
Object Storage Service:
TEXT
BLOB
內建類型:
ENUM,SET
數值型:
精確數值型:
INT:TINYINT,SMALLINIT,MEDIUMINT,INT,BIGINT
近似數值型:
FLOAT
DOUBLE
日期時間型:
DATE
TIME
DATETIME
TIMESTAMP
YEAR
修飾符:
NOT NULL,DEFAULT
類型符:
UNSIGNED
資料庫的設計範式;
第一範式:欄位是原子性的
第二範式:存在可用的主鍵
第三範式:任何欄位都不應該依賴於其他表的非主鍵欄位
巴斯-科德範式:對於BCNF,在主碼的任何一個 真子集 都不能決定於主屬性。關係中U主碼,若U中的任何一個真子集X都不能決定於主屬性Y,則該設計規範屬性BCNF。例如:在關係R中,U為主碼,A屬性是主碼中的一個屬性,若存在A->Y,Y為主屬性,則該關係不屬於BCNF

資料約束:向資料表中插入資料是要遵守的限制規則
主鍵:primary key,表上一個或多個欄位的組合,填入主鍵欄位中的資料,必須不同於已經存在的其他行的相同欄位上的資料,而且也不可為空,一個表只能存一個主鍵
唯一鍵:unique key,表上一個或多個欄位的組合,填入其中欄位中的資料,必須不同於已經存在的其他行的相同欄位上的資料,但可以為空白,一個表可以有多個唯一鍵
外鍵:foreign key,一個表中的外鍵欄位中所能夠插入的資料取值範圍,取決於引用的另一個表上主鍵欄位上的已經存在資料集合
預設約束:default 
檢查條件約束:check,自訂的邏輯運算式
MariaDB的基礎應用:

MariaDB程式組成:
C:Client
mysql,mysqladmin,mysqldump,mysqlbinlog…
S:Server
mysqld,mysqld_safe,mysqld_multi
管理類工具:
myisapack,myisachk…
通訊端地址:
IPv4:PORT:基於IPv4的通訊
IPv6:PORT:基於IPv6的通訊
Unix_SOCK:基於Unix_SOCK的通訊,不需要經由鏈路層的資料的本機通訊

/var/lib/mysql/mysql.sock,/tmp/mysql.sock
命令列用戶端程式mysql
mysql [options][database]
常用選項:
-uUSERNAME:指明登入資料庫的使用者身份
-hHOST:指明要登入到哪台資料庫伺服器上
-pPASSWORD:指明密碼
-Ddb_name:指明要使用的哪個資料庫
-S sock_file_path:指明sock檔案路徑
-p port:指明連接埠
-e 'STATEMENT':可以指明執行的語句,並退出,不需要登入到資料庫伺服器中,而可以直接取得資料
命令;
用戶端命令:在用戶端執行
 
服務端命令:SQL語句,發往服務端運行,並取回結果,需要顯示的語句結束符
DDL:資料庫定義語言,主要用於資料庫組件,例如資料庫,表,索引,視圖,觸發器,事件調度器,預存程序,儲存函數    CREATE DROP ALTER

DML:資料操縱語言,CRUD操作,主要用於動作表中的資料
INSERT,DELETE,UPDATE,SELETE
DCL:資料控制語言
GRANT,REVOKE
SQL語句:
擷取協助:
mysql> help KEYWORD
mysql> help contents
 
資料庫管理:

CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name

 

ALTER {DATABASE|SCHEMA}[db_name] CHARACTER SET [=] character_name
DROP {DATABASE|SCHEMA}[IF_EXISTS] db_name

相關命令:
SHOW CHARACTER SET
SHOW COLLATION
SHOW CREATE DATABASE db_name

表管理:
表建立:
CREATE TABLE [IF NOT EXISTS] tb_name (create_defination,…) [table “” not found /]
create_definition:由逗號分隔的列表
欄位定義:
column_name column_defination
 

 

約束定義:
PRIMARY KEY(col1[,col2…])
UNIQUE KEY
FOREIGN KEY
CHECK(expr)
索引定義:
{INDEX|KEY}
{FULLTEXT|SPATIAL}
column_defination:
data_type [NOT NULL|NULL][DEFAULT default_value][AUTO_INCREMENT][UNIQUE [KEY]|[PRIMARY] KEY][COMMENT 'string']
table_option:

ENGINE[=]engine_name

查看資料庫支援的儲存引擎種類

SHOW ENGINES;
查看錶狀態資訊:
SHOW TABLE STATUS [WHERE CLAUSE][LIKE CLAUSE]
 


表修改:
ALTER TABLE tb_name [alter_specification[,alter_specification]…]
alter_specification:
1)表選項

ENGINE=engine_name

 

2)表定義

(a)欄位
ADD DROP CHANGE MODIFY
3)鍵和索引
ADD {PRIMARY|UNIQUE|FOREIGN} KEY(col1,col2,…)
ADD INDEX(col1,col2…)
DROP {PRIMARY|UNIQUE|FOREIGN} KEY key_name

DROP INDEX index_name
查看錶上的索引資訊
SHOW INDEXES FROM tb_name
表刪除:
DROP TABLE [IF EXISTS] tb_name[,tb2_name];
查看錶建立語句;
SHOW CREATE TABLE tb_name
索引管理:

CREATE  [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON tbl_name (index_col_name,…)

index_col_name:

col_name [(length)] [ASC | DESC]

DROP  INDEX index_name ON tbl_name

SHOW {INDEX | INDEXES | KEYS} {FROM | IN} tbl_name  [{FROM | IN} db_name]  [WHERE expr]

DML語句:

INSERT,SELECT,DELETE,UPDATE

INSERT:

INSERT  [INTO] tbl_name [(col_name,…)] {VALUES | VALUE} ({expr | DEFAULT},…),(…),…

 

 


SELECT:

(1) SELECT * FROM tbl_name;

(2) SELECT col1, col2, … FROM tbl_name;

欄位別名:col1 AS ALIAS

(3) ELECT col1, col2, … FROM tbl_name WHERE CLUASE;

WHERE expr:布林運算式;

col_name OPERATOR value|col_name;

操作符:

>, <, <=, >=, =, !=

BETWEEN … AND …

LIKE 'PATTERN':

萬用字元:

_:匹配任意單個字元;

%:任意長度的任一字元;

RLIKE 'PATTERN':

IN(list)

組合條件:

and, or, not

(4) SELECT col1, … FROM tbl1_name [WEHRE CLAUSE] ORDER BY col1, col2, … [ASC|DESC]

DELETE:

DELETE FROM tbl_name

[WHERE where_condition]

UPDATE:

UPDATE table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] …

[WHERE where_condition]

  

MySQL(MariaDB)的圖形管理工具
phpMyAdmin

Navicat

mysql-front

SQLyog

ToadForMySQL

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.