寫在前面:Mysql是最流行的關係型數據庫管理系統,在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System:關係數據庫管理系統)應用軟件之一。MySQL是一個多用戶,多線程的SQL數據庫服務器,以客戶機/服務器結構的實現,由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成。
所謂的關係型數據庫,是建立在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。
RDBMS即關係數據庫管理系統(Relational Database Management System)的特點:
- 1.數據以表格的形式出現
- 2.每行爲各種記錄名稱
- 3.每列爲記錄名稱所對應的數據域
- 4.許多的行和列組成一張表單
- 5.若干的表單組成database
RDBMS的一些術語:
- 數據庫: 數據庫是一些關聯表的集合。.
- 數據表: 表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
- 列: 一列(數據元素) 包含了相同的數據, 例如郵政編碼的數據。
- 行: 一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。
- 冗餘 :存儲兩倍數據,冗餘可以使系統速度更快。
- 主鍵 :主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
- 外鍵: 外鍵用於關聯兩個表。
- 複合鍵 :複合鍵(組合鍵)將多個列作爲一個索引鍵,一般用於複合索引。
- 索引: 使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。
- 參照完整性: 參照的完整性要求關係中不允許引用不存在的實體。與實體完整性是關係模型必須滿足的完整性約束條件,目的是保證數據的一致性。
SQL語言(Structured Query Language,結構化查詢語言)分爲三個部分:DDL(Data Definition Language)、DML(Data Manipulation Language)、DCL(Data Control Language).
- DDL: CREATE、ALTER、DROP
- DML:INSERT、SELECT、UPDATE、DELETE
- DCL:GRANT、REVOKE
安裝使用
windows:
dos:mysql -h 127.0.0.1 -u root -p
結束是:分號或“\g” \c是clear
Linux:
-
RPM包
一般用rpm最方便 二進制軟件包和源碼包都挺費勁的,但是卸載很方面
安裝:rpm -i rpm包
卸載:rpm -e rpm包
啓動和關閉;/etc/init.d/mysql start|stop|restart|status
登錄:bin/mysql -u root -p
-
二進制軟件包和源碼包
(源碼包還要make和make install更麻煩 )
增加組合用戶; groupadd mysql //////分割線//////// useradd -g mysql mysql
啓動服務:bin/mysqld_safe --user=mysql
登錄數據庫:bin/mysql -u root -p
通用操作
查看版本 以及安裝是否順利:mysqladmin --version
數據類型
關於定點數和浮點數:
定點數(decimal)的精度較高,因爲是以字符串的形式存儲的。但DECIMAL默認整數位10,小數位爲0,即默認爲整數。
關於日期和時間類型:
YEAR:一個字節
TIME: CURRENT_TIME() NOW() 3個字節
DATE: CURRENT_DATE() NOW() 支持不嚴格的語法格式 70是1970 69是2069 4個字節
DATETIME:NOW() 支持不嚴格的語法格式 70是1970 69是2069 8個字節
TIMESTAMP:CURRENT_TIMESTAMP() NULL 不輸入都是當前時間 根據時區變化 但是隻有4個字節
關於修改表
ALTER TABLE 表名 MODIFY 屬性名 數據類型 改數據類型
ALTER TABLE 表名 MODIFY 屬性名1 數據類型 FIRST|AFTER 屬性名2 改位置
ALTER TABLE 表名 ADD 屬性名1 數據類型 [完整性約束] [FIRST|AFTER 屬性名2] 加字段
ALTER TABLE 表名 DROP 屬性名
ALTER TABLE 表名 ENGINE=MyISAM;
ALTER TABLE 表名 CHANGE 舊屬性名 新屬性名 新數據類型 改屬性名字
看database 可以 SHOW DATABASES 但是看錶就必須得有表的名字:DESCRIB 表名 或者SHOW CREATE TABLE表名