mysql: dbs 資料庫系統 bdms 資料庫管理系統 bda 資料庫管理員 db 資料庫 dba通過dbms來操作db! 軟體項目開發周期中資料庫設計01.需求分析階段:分析客戶的業務和數據處理需求02.概要設計階段:設計資料庫的E-R模型圖,確認需求信息的正確和完整03.詳細設計階段:應用三 ...
mysql:
dbs 資料庫系統
bdms 資料庫管理系統
bda 資料庫管理員
db 資料庫
dba通過dbms來操作db!
軟體項目開發周期中資料庫設計
01.需求分析階段:分析客戶的業務和數據處理需求
02.概要設計階段:設計資料庫的E-R模型圖,確認需求信息的正確和完整
03.詳細設計階段:應用三大範式審核資料庫結構
04.代碼編寫階段:物理實現資料庫,編碼實現應用
05.軟體測試階段:……
06.安裝部署:……
資料庫設計步驟:
01.收集信息
02.標識實體
03.標識每個實體的屬性
04.標識實體之間的關係
E-R圖:
01.矩形 實體
02.橢圓形 屬性
03.菱形 實體與實體的關係
1 :1 : 一對一
1:N: 一對多
M:N: 多對多
必須滿足 三大範式
第一範式確保每列的原子性
第二範式要求每個表只描述一件事情
第三範式要求表中各列必須和主鍵直接相關,不能間接相關
sql 語句的執行 順序
5.查詢 select
1.找表 from
2.條件 where
3.分組 group by
4.條件 having
6.排序 order by
7.分頁 limit
資料庫的恢復和備份
為保證賬戶密碼安全,命令中可不寫密碼,但參數“-p”必須有,回車後根據提示寫密碼!
資料庫的備份
cmd進入命令行
mysqldump -u用戶名 -p 資料庫名稱 >指定的文件
資料庫的恢復
前提是必須要有對應的資料庫
mysql -u用戶名 -p <指定的文件
1. mysql為DOS命令
2.在執行該語句之前,必須在MySQL伺服器中創建新資料庫,如果不存在恢複數據庫過程將會出錯
關係型資料庫和非關係型資料庫
登錄mysql
mysql -h主機地址 -u用戶名 -p密碼
1.對象沒有靜態和動態之分。。。。。。。。有靜態類。。。。
2.Java中多態的實現方式:介面實現,繼承父類進行方法重寫,同一個類中進行方法重載。
3.CreateNew = 1;
新建
Create = 2;
Open = 3;
OpenOrCreate = 4;
Truncate = 5;
Append = 6;
4.在C#中類只能有兩個訪問修飾符,public和internal,在任何項目中都可以使用
5.靜態方法中只能使用靜態成員
如果想訪問非靜態成員,先new出當前對象,然後再用對象名.變數名,即可訪問
在普通方法中既可以訪問靜態成員也可以訪問非靜態訪問
java實現資料庫編程
1.設計資料庫的步驟
1.收集信息
2.標識實體
3.標識實體的每個屬性
4.標識實體之間的關係
2.E-R圖 (實體 關係 圖)
1.矩形 實體
2.橢圓 屬性
3.菱形 關係
3.二維表
平面(行和列,X-Y軸)。。。。。二維表的形式表示實體和實體間聯繫的數據模型即關係模式
行:記錄
列:欄位
4.如何轉化資料庫模型圖
使用PowerDesigner 軟體
物理模型:
通過blog 繪製一個概念模型 然後 轉換成物理模型
5.DBMS (Database Management System) 資料庫管理系統
DBS (Database System) 資料庫系統
6.
第二範式在第一範式的基礎上,保證表中每列與主鍵相關。就是每張表只描述一件事情。
第三範式:在滿足第二範式基礎上,保證表中除主鍵列外的其他列,都直接依賴於主鍵列,則符合第三範式
設計沒有好壞,沒有對錯之分,所謂仁者見仁智者見智
1.MySQL的優勢
1.運行速度快,
2.使用成本低,
3.可移植性強,
4.使用用戶廣
2.Mysql執行流程
JDBC ODBC Python Ruby 介面 語言提供的介面==》
(身份的驗證/授權)Connection Pool 連接池===>sql指令:CCache緩存,如果有緩存的SQL直接返回數據
===>SQL介面===>查詢優化器(自己的優化策略)===>使用解釋器解析語句===>(存儲)資料庫引擎拎取數據===>DB File數據文件
3.MySQL -uroot -proot login
預設狀態 no database selected
所以切換到一個指定的資料庫 mysql
使用命令行 看資料庫的安裝路徑 和 數據存儲路徑
使用命令前:切換到MySQL資料庫
資料庫的安裝路徑
select @@basedir from dual;
數據存儲路徑
select @@basedir from dual;
常用數據類型
整型 int
小數 double
精確度要求高的 ———Decimal(18,4)
對應Java中的類型 BigDecimal
字元串:nvarchar(32) varchar char
char:定長字元串(一旦設定了長度,無論真實內容有多少,都要占用指定長度的空間)
varchar:可變字元串
nvarchar()防止亂碼出現
varchar(n),nvarchar(n) 中的n怎麼解釋:
nvarchar(n)最多能存n個字元,不區分中英文。
varchar(n)最多能存n個位元組,一個中文是兩個位元組。
所占空間:
nvarchar(n)一個字元會占兩個位元組空間。
varchar(n)中文占兩位元組空間,英文占一個。
n的取值範圍:
nvarchar(n)?? n的範圍是:1與4000之間
varchar(n)?? n的範圍是:1與8000之間
n的大小是否會影響性能:
varchar及nvarchar里的長度 n 不會影響空間大小及性能。除非n是max並且內容大於4000或8000
設置n更多的是業務需要,如限制身份證只能輸入18位,再多就報錯,或者防止惡意攻擊撐爆硬碟。對空間及性能都沒有影響
n設置多大比較好:
既然對空間及性能都沒有影響,那我們只要考慮業務需要就可以了,我分析過微軟的資料庫,大都設置為:256,也會看到64,128,512,max等,可能是便於記憶吧。
varchar(n),nvarchar(n)存儲空間舉例解釋:
包含 n 個字元的可變長度 Unicode 字元數據。位元組的存儲大小是所輸入字元個數的兩倍。?
兩欄位分別有欄位值:我和coffee?
那麼varchar欄位占2×2+6=10個位元組的存儲空間,而nvarchar欄位占8×2=16個位元組的存儲空間。?
如欄位值只是英文可選擇varchar,而欄位值存在較多的雙位元組(中文、韓文等)字元時用nvarchar。
varchar和nvarchar如何選擇?
varchar在SQL Server中是採用單位元組來存儲數據的,nvarchar是使用Unicode來存儲數據的.中文字元存儲到SQL Server中會保存為兩個位元組(一般採用Unicode編碼),英文字元保存到資料庫中,如果欄位的類型為varchar,則只會占用一個位元組,而如果欄位的類型為nvarchar,則會占用兩個位元組.
3.日期類型
DateTime