MySQL 是由瑞典MySQL AB 公司開發,目前屬于Oracle公司。
MySQL 是最流行的關系型數據庫管理系統(Relational Database Management System),即 RDBMS,這種所謂的"關系型"可以理解為"表格"的概念,一個關系型數據庫由若干個表格組成。將數據保存在不同的表中,而不是放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL 特點
* 免費開源,使用不需要支付額外的費用。
* 跨平臺,可以運行在各個系統上,并且支持多種語言,這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等等。
* 使用標準的 SQL 數據語言形式。
* 支持大型的數據庫,可以處理擁有上千萬條記錄的大型數據庫,支持5000萬條記錄的數據倉庫,32位系統表文件最大可支持4GB,64位系統支持最大的表文件為8TB。
* 對 PHP 有很好的支持,PHP 是目前最流行的 Web 開發語言。
* 采用了 GPL 協議,如果有能力可以通過修改源碼來定制開發自己的 MySQL 系統。
* * * * *
#### 數據庫系統
* 數據庫系統類似于文件系統,是由文件系統發展過來的。
* 數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,相當于文件系統中的文件夾。
* 數據表(Table)是存儲數據的集合,由行和列構成,相當于文件系統中的文件。
每個數據庫都有一個或多個不同的 API 用于創建、訪問、管理、搜索和復制所保存的數據。
我們也可以將數據存儲在文件中,但是在文件中讀寫數據速度相對較慢,所以現在我們使用關系型數據庫管理系統(RDBMS)來存儲和管理的大數據量。所謂的關系型數據庫,是建立在關系模型基礎上的數據庫,借助于集合代數等數學概念和方法來處理數據庫中的數據。
RDBMS 特點?
* 數據以表格的形式來組織數據的
* 每行(記錄)為一條數據的具體信息(一行多個列字段值)
* 每列(字段)為一個字段的不同值(多行的同一個列字段值)
* 許多的行和列組成一張表
* 若干的表組成數據庫
* * * * *
#### RDBMS 術語
* 數據庫:一些關聯表的集合。
* 數據表:數據的矩陣,在一個數據庫中的表看起來像一個簡單的電子表格。
* 列:即字段/數據元素,包含了相同的數據, 例如郵政編碼的數據。
* 行:即元組/記錄,是一組相關的數據,例如一條用戶訂閱的數據。
* 冗余:存儲兩倍數據,冗余可以使系統速度更快。
* 主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
* 外鍵:外鍵用于關聯兩個表。
* 復合鍵:復合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復合索引。
* 索引:使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構,類似于書籍的目錄。
* 參照完整性:參照的完整性要求關系中不允許引用不存在的實體,與實體完整性是關系模型必須滿足的完整性約束條件,目的是保證數據的一致性。
* * * * *
#### SQL 語句
SQL 是 Structed Query Language 的縮寫,即“結構化查詢語言”,原名是 sequel,后來因為法律原因改名,現在是國際標準。我們在命令行里敲命令與數據庫進行交互,所敲的命令就是 SQL 語句。
* MySQL 對 SQL 標準的支持還是比較完善的,而且進行了一定的擴充,不過也有違背 SQL 標準的地方。
* MySQL 的 SQL 默認不區分大小寫。
* * * * *
#### 數據庫/表基本操作命令
1、數據庫
~~~
show databases; #查看數據庫,命令以";"結束,也可以用 \g 或 \G。也可以用 schema 代替 database,是database別名,工程師一般用 database,學術派用 schema。
use db_name #可以不加";"
create database db_name; #創建數據庫
drop database [if exists] db_name; #刪除數據庫
show create database db_name; #查看數據庫創建語句
~~~
2、數據表
~~~
show tables; #查看表
desc/describe tbl_name; #查看表結構,\G 將原按列改為按行顯示。
create table tbl_name(
id int(11) default null comment '字段注釋',
age int
) engine=innodb default charset = utf8; #創建表
drop table [if exists] tbl_name; #刪除表
show create table tbl_name; #查看建表語句
~~~
3、其他
~~~
show warnings; #查看警告
~~~
* * * * *
MySQL5.6 之前安裝完默認密碼為空。
set password for root@'localhost' = password('123456');
flush privileges; #刷新權限
MySQL5.6 之后安裝完不能登錄,默認root密碼問題,需更改密碼才能正常使用。
set password = password('123456');
flush privileges; #刷新權限
日常維護命令
1、查看 MySQL 運行進程
mysql>show processlist;
2、查看 Innodb 引擎運行情況
mysql>show engine innodb status\G
3、查看 MySQL 參數情況
mysql>show [global] variables like '%innodb%';
4、查看 MySQL 運行狀態:
mysql>show [global] status like '%thread%';
5、查看表、存儲過程、觸發器
mysql>show tables;
mysql>show procedure status; show create procedure USP_Cursor;
mysql>show triggers; show create trigger TRI_UP_User_Delete;
6、查看 MySQL 幫助
mysql>help;
mysql>help conntents;
mysql>help show;