MySQL 是一種數據庫。數據庫定義了存儲信息的結構。以表的方式存儲信息,設置有索引能夠快速定位到須要的內容,避免查找數據時要遍歷整個庫,耗費資源速度也太慢。mysql
簡單:MySQL的使用簡單,任何稍微有IT背景的技術人員均可以無師自通地參照文檔安裝運行和使用MySQL,這幾乎沒有什麼門檻。正則表達式
開源:開源意味着安全和免費,代碼就擺在那裏,無數的技術愛好者一塊兒來審覈程序,一塊兒修補問題,這讓使用者很是的放心。同時,開源帶來了免費。sql
複製:MySQL從3.23.15這個版本開始,支持了replication,能夠幫助MySQL使用者搭建Master-Slave的架構。把數據準實時的從一個實例同步到另外一個實例。shell
引擎:MySQL不一樣於其餘多數數據庫之處是它對插件式存儲引擎的支持,這是一個開放的設計,有點兼容幷包,海納百川的感受。數據庫
請求<-->響應 的處理過程安全
多個操做被當作一個總體對待,要想看一個關係型管理數據庫系統是否支持事務就要看關係型數據庫系統是否知足ACID測試服務器
舉個例子:好比去銀行存錢1000元,存錢是一個過程,服務器這個時候應該響應修改你的銀行卡信息加1000元。這個時候就構成了一個事物。數據結構
可是若是剛存過錢服務器還沒來的及響應,這個時候忽然停電了(好比沒有應急供電措施),這個時候錢是存過仍是沒存?這個時候須要利用事物的「回滾」功能,由於沒有構成一個事物,恢復到尚未存錢以前的狀態。架構
要麼所有都成功執行,要麼所有都失敗「回滾」。app
MySQL屬於關係型數據庫,關係型數據庫以行和列的形式存儲數據,以便於用戶理解。這一系列的行和列被稱爲表,一組表組成了數據庫。用戶用查詢(Query)來檢索數據庫中的數據。一個Query是一個用於指定數據庫中行和列的SELECT語句。
第一範式:全部的域都應該是原子性的,即數據庫表的每一列都是不可分割的原子數據項;
第二範式:在第一範式基礎上創建起來的,知足第一範式以後增長了主鍵,要求數據表裏的全部數據都要和該數據表的主鍵有徹底依賴關係;
第三範式:一樣基於第二範式基礎上創建起來的,要求一個關係中不能包含,已在其它關係已包含的非主關鍵字信息;
主鍵:一個或多個字段的組合,填入主鍵中的數據,必須不一樣於已存在的數據;不能爲空; 外鍵:一個表中某字段中能插入的數據,取決於另一張表的主鍵中的數據; 唯一鍵:一個或多個字段的組合,填入唯一鍵中的數據,必須不一樣於已存在的數據;能夠爲空;一個表能夠存在多個惟一鍵; 檢查性約束:取決於表達式的要求;自定義表達式約束,好比一我的正常年齡在一百五十歲一下(這裏排除之後科技發展迅速,人的年齡能夠更高);
MariaDB屬於插件式存儲引擎(存儲引擎也稱爲「表類型」;):存儲管理器有多種實現版本,彼此間的功能和特性可能略有區別;用戶可根據須要靈活選擇;
值得說的是在CentOS7中MariaDB已經徹底把MySQL替代了,而且徹底兼容MySQL。
MariaDB [(none)]> SHOW ENGINES; ##顯示MariaDB支持的存儲引擎 +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ | InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | CSV | YES | CSV storage engine | NO | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES | | Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO | +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ 10 rows in set (0.00 sec)
SHOW GRANTS FOR 'user'@'host'
SHOW GRANTS FOR CURRENT_USER;
REVOKE priv_type, ... ON db_name.tbl_name FROM 'user'@'host';
注意:MariaDB服務進程啓動時,會讀取mysql庫的全部受權表至內存中;
(1) GRANT或REVOKE命令等執行的權限操做會保存於表中,MariaDB此時通常會自動重讀受權表,權限修改會當即生效;
(2) 其它方式實現的權限修改,要想生效,必須手動運行FLUSH PRIVILEGES命令方可;
-u:後面跟用戶名 -u和用戶名中間必定不要有空格;
-h:後面跟遠程主機地址,默認爲localhost,-h和HOST中間必定不要有空格;
-p[PASSWORD]:USERNAME所表示的用戶的密碼,-p直接回車靜默交互式輸入密碼;
注意:mysql的用戶帳號由兩部分組成:'USERNAME'@'HOST'; 其中HOST用於限制此用戶可經過哪些遠程主機鏈接當前的mysql服務,HOST支持通配符,這裏%表明任意長度的任意字符;
root用戶建立用戶名和密碼mysqladmin -u root -p password 111111 ##-u 指明用戶 -p password 指明密碼
建立用戶
CREATE USER 'name'@'localhost' IDENTIFIED BY '111111'; ##建立用戶指定用戶名字,登陸方式以及密碼。 查看全部的用戶帳號及密碼 SELECT user,host,password FROM user; [root@www ~]# mysql -uroot -hlocalhost -p ##登陸root帳戶 Enter password: ##靜默輸入密碼 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 117 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> use mysql ##切換到MySQL庫 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mysql]> SELECT user,host,password FROM user; ##顯示全部的用戶,登陸主機,以及密碼,密碼加密存放 +--------+-----------------+-------------------------------------------+ | user | host | password | +--------+-----------------+-------------------------------------------+ | root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | root | 127.0.0.1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | root | ::1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | MySQL | 192.168.217.140 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA | | ming | % | *FD571203974BA9AFE270FE62151AE967ECA5E0AA | | MySQLL | 192.168.217.138 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA | | tom | 192.168.217.139 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA | +--------+-----------------+-------------------------------------------+ 7 rows in set (0.00 sec)
use命令格式:use <數據庫名>;
MariaDB [(none)]> use hidb ##切換名字爲hidb的庫 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [hidb]> ##[hidb]>這裏名字已經改爲hidb說明切換成功
mysql> help KEYWORD(命令自己);
HELP查看幫助 MariaDB [data]> HELP CREATE DATABASE ##HELP 命令 查看幫助 Name: 'CREATE DATABASE' ##查詢的是哪一個命令 Description: ##命令描述,這裏爲空 Syntax: ##描述 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... ##語法 create_specification: ##建立規範 [DEFAULT] CHARACTER SET [=] charset_name ##設置字符集 | [DEFAULT] COLLATE [=] collation_name ##設置排序規則 ENGINE [=] engine_naem ##設置支持哪些存儲引擎 SHOW ENGINES; ##顯示總共有哪些存儲引擎 MariaDB [data]> CREATE DATABASE XiaoHua; ##建立一個爲XiaoHua的庫 Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> select version(); ##查看當前MySQL版本號
+----------------+
| version() |
+----------------+
| 5.5.52-MariaDB |
+----------------+
1 row in set (0.00 sec)MariaDB [(none)]> select 1+1; ##作算術運算
+-----+
| 1+1 |
+-----+
| 2 |
+-----+
1 row in set (0.00 sec)
用來指明篩選條件
SELECT col1, ... FROM tbl_name WHERE clause;
查看 col1 來自 tbl_name 這個表 只看 clause 內容
WHERE clause:用於指明挑選條件,例如:age > 30;
col_name 操做符 value:
操做符(1) :
操做符(2) :
MariaDB [hidb]> SELECT * FROM studentss WHERE sid BETWEEN 3 AND 5; ##只顯示3~5行 +-----+-----------+--------+ | sid | name | gender | +-----+-----------+--------+ | 3 | Sun Li | F | | 4 | Deng Chao | M | | 5 | Jiang Xin | F |+-----+-----------+--------+ 3 rows in set (0.00 sec)