電子書PDF:
鏈接: https://pan.baidu.com/s/1j42DoIBBjnHZe8N5biubzQ 提取碼: 5vgi
數(shù)據(jù)建模工具:Erwin , PowerDesigner , Rational Rose, Visio 等
函數(shù)使用_fun后綴,存儲過程使用_proc , 視圖使用_view 觸發(fā)器_trig
索引使用_index,外鍵約束_fk
單行注釋使用#號,或使用-- 加空格
多行注釋使用/* */
MySQL在window操作系統(tǒng)中大小寫不敏感,但在linux中大小寫敏感,
考慮到在不同的操作系統(tǒng)中移植,需要注意命名規(guī)范
E-R圖表示現(xiàn)實世界中具有相同屬性的事物集合,它不是某一具體事物,
而是某一種類別所有事物的統(tǒng)稱。
表的主鍵有二個特征
1:主鍵可以是一個字段,也可以是多個字段組合
2:主鍵具有唯一性且不能為取空值NULL
NULL值表示不確定或不存在,不等于''值,不等于0
常用數(shù)據(jù)類型包括:數(shù)值類型,字符類型,日期類型
日期類型分為:日期類型和時間類型
常用約束有6種:
1:主鍵約束 primary key
2:外鍵約束(foreign key)
3: 唯一約束 unique
4: 默認約束 default
5: 非空約束 not NULL
6: 檢查約束 check
InnoDB引擎支持外鍵約束 MyISAM 不支持外鍵約束
一張表中可以有多個唯一約束,并且唯一約束可以為NULL
在設(shè)計數(shù)據(jù)庫時有兩個不爭的事實:
數(shù)據(jù)庫中的冗余需要額外的維護,因此應(yīng)該盡量減少冗余數(shù)據(jù)。
經(jīng)常變化的數(shù)據(jù)需要額外的維護,因此應(yīng)該盡量避免數(shù)據(jù)經(jīng)常發(fā)生變化。
OLTP:on-line transaction processing 在線事務(wù)處理
OLAP: on-line analytical processing 在線分析處理
Services.msg 可彈出 “服務(wù)”窗口
net start mysql
net stop mysql
mysql -h localhost -P 3306 -u root -proot
show varibales like 'pid_file' 查看文件保存路徑
字符集設(shè)置,已ci, cs及bin結(jié)尾的
ci 表示大小寫不敏感 , cs 大小寫敏感 , bin 按二進制編碼
show character set
show variables like 'character%'
show variables like 'collation%' 查看mysql會話使用的字符序
Mysql 字符集可以細化到表,甚至每一個字段,沒有指定字符集時,字段延用表,
表延用數(shù)據(jù)庫,數(shù)據(jù)庫延用mysql服務(wù)實例
character_set_server在my.ini中配置
set names gbk ; 可以臨時一次性的設(shè)置character_set_client字符集
alter database choose set gbk;
show variables like 'datadir'
show databases;
show create database database_name;
use choose;
drop database database_name;
Mysql中典型的數(shù)據(jù)庫對象包括
表,視圖,索引,存儲過程,函數(shù),觸發(fā)器
Mysql存儲引擎至少有10種, show engines;
MyISAM 具有檢查和修復(fù)表的大多數(shù)工具。可以被壓縮,最早支持全文索引,不是事務(wù)安全,
不支持外鍵,如果有大量select,出于性能考慮,MyISAM存儲引擎是更好的選擇。
use choose;
set default_storage_engine = InnoDB
create table my_table(
today, datatime,
name char(20)
);
use choose;
alter table my_table engine=MyISAM;
window操作系統(tǒng)中,文件名及目錄不區(qū)分大小寫,linux中區(qū)分大小寫,
而mysql數(shù)據(jù)庫操作最終轉(zhuǎn)換為操作數(shù)據(jù)庫中目錄及文件,因此為在不同操作系統(tǒng)中移植,
mysql命名操作要規(guī)范,包括大小寫。
show tables;
describe table_name;
show create table table_name;
NULL 與整數(shù)0以及空字符串''的概念不同,也不相等。
MyISAM 表備份較簡單,只需要備份數(shù)據(jù)庫目錄。
InnoDB 備份較復(fù)雜,不僅 要備份數(shù)據(jù)庫目錄,還需要復(fù)制ibdata1表空間文件,及重做日志文件ib_logfile0 與 ib_logfile1.
對InnoDB引擎而言,存在表空間,又分為共享表空間和獨享表空間。
show variables like 'innodb_data_file_path'
全局變量innodb_file_per_table為ON則為獨享表空間。默認為OFF
show variables like 'innodab_fiel_per_table';
默認情況下獨享表空間的文件名為“表名.ibd”
變量分為系統(tǒng)變量和用戶變量,系統(tǒng)變量以“@@”開頭
系統(tǒng)變量又分為,全局,回話,及靜態(tài)系統(tǒng)變量。靜態(tài)的在配置文件中配置,或在源碼中編譯。
show global variables;
show session variables;
數(shù)據(jù)庫備份和恢復(fù)
1: 停機或使用flush tables with read lock將服務(wù)器中數(shù)據(jù)刷新到數(shù)據(jù)文件
2:備份數(shù)據(jù)庫文件,
3:使用unlock tables;行進解鎖
4:恢復(fù)數(shù)據(jù)文件,MyISAM引擎只需要數(shù)據(jù)目錄文件,InnoDB引擎還需要表空間文件,重做日志文件。