MySQL資料庫設計

来源:https://www.cnblogs.com/lsy131479/archive/2018/02/02/8400716.html
-Advertisement-
Play Games

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在存在in的子查詢的SQL語句和存在EXISTS的相關子查詢的SQL語句的執行計劃里,有NESTED LOOPS SEMI (即半嵌套迴圈)。 所謂的NESTED LOOPS SEMI (即半嵌套迴圈),就是 the out query stops evaluating (評價,求…的數值)the ...
  • 創建表 如果是關鍵字 那麼使用反引號 `` esc下麵的鍵 create table [if not exists] 表名( 欄位1 數據類型 [約束,索引,註釋], 欄位2 數據類型 [約束,索引,註釋], 欄位3 數據類型 [約束,索引,註釋] )[表類型][表字元集][註釋] 有符號類型 和 ...
  • 現在很多服務都部署在linux環境中,但是在開發階段,使用windows遠程連接工具,直觀,這對開發人員更友好。 下麵是我在ubuntu16.04使用mysql- server時,遇到了一下的問題,以及該問題的解決方案。 1.錯誤碼 2003 ERROR 2003: Can't connect to ...
  • 在之前的文章-參數關聯中,留個一個小尾巴,這裡補充一下 http://www.cnblogs.com/Zfc-Cjk/p/8295495.html 1:從sql表中將需要取的數據查出來 2:我們需要把這個id為4451的數據從sql裡面取出來,傳到下一個sql裡面,執行刪除 3:寫一個介面的傳參有些 ...
  • 前言 由於本人是個docker控,不喜歡安裝各種環境,而且安裝redis trib也有點繁瑣,索性用docker來做redis cluster。 本文用的是偽集群,真正的集群放到不同的機器即可。埠是7001 7006。 工作目錄: 創建文件夾 首先創建一堆對應埠的文件夾,下麵是腳本 create ...
  • mongoDB是一個基於分散式文件存儲的資料庫,介於關係型資料庫和非關係型資料庫之間,在非關係型資料庫中功能最豐富, 最像關係型資料庫。數據結構鬆散,類似於json的bson格式,可以存儲比較複雜的數據類型 支持對資料庫建立索引 在ubuntu 16.04上安裝mongoDB 以下命令均在root用 ...
  • java使用Redis連接池 jar包為 jedis-2.9.0.jar+commons-pool2-2.4.2.jar jar下載地址 ...
  • 沒有安裝PDO yum install php70w-pdo yum install php70w-mysqlnd 兩條命令搞定 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...