當前位置:首頁 » 操作系統 » mysql資料庫結構圖

mysql資料庫結構圖

發布時間: 2022-11-30 05:57:53

❶ 這兩種題型mysql資料庫結構應該怎麼設計,B形題和A3A4題

一、不定項選擇題(共40題,每小題2.5分,總分100分)1.資料庫管理系統的發展歷經了如下那些模型階段(ACDE)A.層次模型B.結構模型C.關系模型D.網狀模型E.對象模型2.關系型資料庫的核心單元是(B)A.對象B.表C.行D.列3.對於關系型資料庫來說,表之間存在下面那些關系(ABC)A.一對一關系B.一對多關系C.多對多關系D.繼承關系4.在SQL中,下面對於數據定義語言(DDL)描述正確的是(D)。A.DDL關心的是資料庫中的數據B.完成數據的增、刪、改、查操作C.控制對資料庫的訪問D.定義資料庫的結構5.MySQL是一種(C)資料庫管理系統。A.層次型B.網路型C.關系型D.對象型6.SQL中,下列操作有語法錯誤的是(B)A.AGEISNOTNULLB.NOT(AGEISNULL)C.SNAME=『王五』D.SNAME=『王%』7.SQL中,下列關於創建、管理資料庫的操作語句不正確的是(CDE)A.CREATEDATABASEInstantB.USEInstantC.NEWDATABASEInstantD.ConnectionInstantE.DeleteDATEBASEInstant8.在MySQL中,不存在的數據類型是(F)。A.INTB.TEXTC.DECIMALD.VARCHARE.DATETIMEF.VARCHAR29.在MySQL中,下列關於創建資料庫表的描述正確的是(C)。A.在創建表時必須設定列的約束B.在刪除表的時候通過外鍵約束連接在一起的表會被一同刪除C.在創建表時必須設置列類型D.通過CREATETABLEnew_tSELECT*FROMold_t復製表的同時,表的約束能夠一起被復制到新表中10.根據數據完整性實施的方法,可以將其分為(ACDF)A.實體完整性B.表完整性C.域完整性D.引用完整性E.記錄完整性F.用戶自定義完整性11.下面關於域完整性的方法,不正確的是(A)。A.主鍵約束B.外鍵約束C.檢查約束D.非空約束E.默認值12.下面關於創建和管理索引正確的描述是(C)。A.創建索引是為了便於全表掃描B.索引會加快DELETE、UPDATE和INSERT語句的執行速度C.索引被用於快速找到想要的記錄D.大量使用索引可以提高資料庫的整體性能13.SQL中,「AGEIN(20,22)」的語義是(D)。A.AGE=20B.AGE20C.AGE=20ANDAGE=22D.AGE=20ORAGE=2214.有一個關系:學生(學號,姓名,系別),規定學號的值域是8個數字組成的字元串,這一規則屬於(C)A.實體完整性約束B.參照完整性約束C.用戶自定義完整性約束D.關鍵字完整性約束15.下面SQL是來源於考試成績表t_exam:學號stuId、科目編號subId、成績score,考試日期:ex_date。有以下sql,它表示的意思是:(B)Selectstu_id,subId,count(*)asxFromt_examWhereex_date=』2008-08-08』Groupstu_id,subIdHavingcount(*)>1OrderbyxdescA.找出』2008-08-08』這天某科考試2次及以上的學生記錄B.找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數多的放在前面C.找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數少的放在前面D.根據學號和學科分組,找出每個人考試科數,最後考試次數多的放在前面16.EMP表如下所示,下面哪些SQL語句的返回值為3:(BD)EMP雇員號雇員名部門號工資001張山022000010王宏達011200056馬林生021000101趙敏04A.selectcount(*)fromempB.selectcount(distinct部門號)fromempC.selectcount(*)fromempgroupby雇員號D.selectcount(工資)fromemp17.下面那一項不是SELECT語句對數據的操作:(D)A.投影B.聯接C.並D.級聯18.下面關於SQL數據查詢操作描述正確的有:(ABD)A.投影操作是選擇對表中的哪些列進行查詢操作B.使用DISTINCT關鍵字可以過濾查詢中重復的記錄C.在模糊查詢中,通配符「%」表示匹配單個字元,而「_」表示匹配零個或多個字元D.在MySQL中使用LIMIT關鍵字限制從資料庫中返回記錄的行數19.在SQL語言中,條件「BETWEEN20AND30」表示年齡在20到30之間,且(A)。A.包括20歲和30歲B.不包括20歲和30歲C.包括20歲,不包括30歲D.不包括20歲,包括30歲20.SQL語言中,刪除EMP表中全部數據的命令正確的是(C)。A.delete*fromempB.droptableempC.truncatetableempD.沒有正確答案21.有關索引的說法錯誤的是(AD)A.索引的目的是為增加數據操作的速度B.索引是資料庫內部使用的對象C.索引建立得太多,會降低數據增加刪除修改速度D.只能為一個欄位建立索引22.下列哪個關鍵字在Select語句中表示所有列(A)A.*B.ALLC.DESCD.DISTINCT23.在表中設置外鍵實現的是哪一類數據完整性(B)A.實體完整性B.引用完整性C.用戶定義的完整性D.實體完整性、引用完整性和用戶定義的完整性24.下面正確表示Employees表中有多少非NULL的Region列的SQL語句是(B)A.SELECTcount(*)fromEmployeesB.SELECTcount(ALLRegion)fromEmployeesC.SELECTcount(DistinctRegion)fromEmployeesD.SELECTsum(ALLRegion)fromEmployees25.下面可以通過聚合函數的結果來過濾查詢結果集的SQL子句是(C)A.WHERE子句B.GROUPBY子句C.HAVING子句D.ORDERBY子句26.t_score(stu_id,sub_id,score),即成績表(學號,科目編號,成績)。學生如果某科沒有考試,則該科成績錄入null。能夠獲取各位學生的平均成績的選項是(A)A.selectavg(nvl(socre,0))fromscoregroupbystu_idB.selectstu_id,avg(sorce)fromscoreC.selectstu_id,avg(score)fromscoreD.selectstu_id,sum(score)/count(score)fromscore27.若要求查找S表中,姓名的第一個字為'王'的學生學號和姓名。下面列出的SQL語句中,哪個是正確的(B)A.SELECTSno,SNAMEFROMSWHERESNAME=′王%′B.SELECTSno,SNAMEFROMSWHERESNAMELIKE′王%′C.SELECTSno,SNAMEFROMSWHERESNAMELIKE′王_′D.全部28.若要求「查詢選修了3門以上課程的學生的學生號」,正確的SQL語句是(B)A.(*)>3B.(COUNT(*)>3)C.(*)>3D.(*)>=329.對下面的查詢語句描述正確的是(D)SelectStudentID,Name,(selectcount(*).StudentID=Student.StudentID).從Student表中查找StudentID和Name,並按照升序排列B.從Student表中查找StudentID和Name,並按照降序排列C.從Student表中查找StudentID、Name和考試次數D.從Student表中查找StudentID、Name,並從StudentExam表中查找與StudentID一致的學生考試次數,並按照降序排列30.下面題基於學生-課程資料庫中的三個基本表:學生信息表:s(sno,sname,sex,age,dept)主鍵為sno課程信息表:c(cno,cname,teacher)主鍵為cno學生選課信息表:sc(sno,cno,grade)主鍵為(sno,cno)「從學生選課信息表中找出無成績的學生信息」的SQL語句是(Cd)A.SELECT*FROMscWHEREgrade=NULLB.SELECT*FROMscWHEREgradeIS『』C.SELECT*FROMscWHEREgradeISNULLD.SELECT*FROMscWHEREgrade=『』31.當子查詢返回多行時,可以採用的解決法是(C)。A.使用聚合函數B.Where條件判斷C.使用IN運算符D.使用Groupby進行分組32.下面關於在子查詢中使用運算符描述不正確的是(D)。A.使用IN運算符用於查找欄位值屬於某一組值的行B.使用Exists運算符用於測試子查詢是否返回行,如果返回其值就為真C.使用ALL運算符用於測試子查詢結果集的所有行是否滿足指定的條件D.使用Any運算符用於測試子查詢結果集中的一行或多行不滿足指定的條件33.下面關於組合查詢描述不正確的是(D)。A.從一個表中獲取的數據必須和其它表中的數據具有相同的列數B.兩個表中相對應的列必須具有相同的數據類型C.UNION的結果集列名與第一個SELECT語句的結果集中的列名相同D.UNION的結果集列名與第二個SELECT語句的結果集中的列名相同E.UNIONALL運算符返回每個數據集的所有成員34.下面關於聯接的描述正確的是(A)。A.內聯接使用比較運算符根據每個表共有的列值來匹配兩個表中的行B.左外聯接結果集包含從右邊的表返回的所有行C.右外聯接結果集包含從左邊的表返回的所有行D.全外聯接返回左表和右表中的所有匹配的行35.下面關於資料庫設計過程正確的順序描述是(C)。A.需求收集和分析、邏輯設計、物理設計、概念設計B.概念設計、需求收集和分析、邏輯設計、物理設計C.需求收集和分析、概念設計、邏輯設計、物理設計D.需求收集和分析、概念設計、物理設計、邏輯設計36.ER圖屬於下面哪一種資料庫設計模型(B)。A.物理數據模型B.概念數據模型C.邏輯數據模型D.需求模型37.非主鍵必須完全依賴於主鍵列,這屬於下列範式的內容(BC)A.1NFB.2NFC.3NFD.都沒有的38.如果一個欄位的數據必須來源另一個表的主鍵,那麼要在這個欄位上建立(B)。A.PK(主鍵)B.FK(外鍵)C.UK(唯一鍵)D.復合主鍵39.根據三個範式的定義,下面哪個選項的設計是正確的(C)職工編號姓名工種車間車間主任1001李寧車工一車間周傑1002王海銑工一車間周傑1003趙亮鉗工二車間吳明1001李寧鉗工二車間吳明A.員工表、工種表、車間表B.員工表、工種表、車間表、車間主任表C.員工表、工種表、車間表、員工工種表、員工車間表D.以上設計均不正確40.下列說法中,哪些是正確的(BD)A.RDBMS是資料庫管理系統的簡稱B.各行記錄都不能重復,是第二範式要求的C.在資料庫設計中一定要滿足第三範式D.索引越多,查詢越快,數據更新越慢

❷ 講講mysql資料庫構架和怎麼操作

MYSQL資料庫主要是SQL語言對數據的操作,資料庫的結構主要是看你做什麼項目,根據項目的不同資料庫的結構也不同。看你是初學者吧,先到網上下載個免費的MYSQL安裝後按教程一步一步來。

❸ 求mysql資料庫導出結構圖的工具

power designer

❹ MYSQL資料庫查詢。我有一個數據表,現在需要在一個php中網頁中插入一個欄位,數據表的結構看下圖

mysql_connect(資料庫ip,資料庫名,密碼)//先鏈接資料庫
mysql_select_db(資料庫)//選擇一個資料庫
$sql=select*from
表名where
meta_value=值//查詢
某表
的meta_value為某值時的一條記錄
$result=mysql_query($sql)執行上面的一條語句
$row=mysql_fetch_array($result)//把結果打包成數組,然後用$row[欄位名]顯示,如果有多條記錄用while循環輸出

❺ 如何導出mysql資料庫表結構

項目開發中經常會用到mysql資料庫,免不了要導出表數據或者表結構
打開SQLyog客戶端工具連接資料庫,輸入用戶名和密碼,點擊connection按鈕

2
打開要導出的所在表的資料庫,例如我這里資料庫為e

3
游標聚焦表名字,然後右鍵-----》Export------>Backup Table As SQL Dump...

4
下圖紅色數字1 2 3 4 5一定 要注意,我來解釋一下,1,Structure only 意思是僅僅導出表結構,並不導出表數據 ,。2,Data only 僅僅導出表數據,。3,Structure and data 及導出表結構也導出表數據。,4,導出路徑。5,要導出的表

❻ 扛得住的MySQL資料庫架構

資料庫優化是系統工程,性能的提升靠整體。本課程將面面俱到的講解提升資料庫性能的各種因素,讓你在最短的時間從小白到資深,將資料庫整體架構瞭然於胸

第1章 實例和故事 試看7 節 | 50分鍾
決定電商11大促成敗的各個關鍵因素。
收起列表
視頻:1-1 什麼決定了電商雙11大促的成敗 (04:04)試看
視頻:1-2 在雙11大促中的資料庫伺服器 (06:03)
視頻:1-3 在大促中什麼影響了資料庫性能 (07:55)
視頻:1-4 大表帶來的問題 (14:13)
視頻:1-5 大事務帶來的問題 (17:27)
作業:1-6 【討論題】在日常工作中如何應對高並發大數據量對資料庫性能挑戰
作業:1-7 【討論題】在MySQL中事務的作用是什麼?
第2章 什麼影響了MySQL性能 試看30 節 | 210分鍾
詳細介紹影響性能各個因素,包括硬體、操作系統等等。
收起列表
視頻:2-1 影響性能的幾個方面 (04:08)試看
視頻:2-2 CPU資源和可用內存大小 (10:54)
視頻:2-3 磁碟的配置和選擇 (04:44)
視頻:2-4 使用RAID增加傳統機器硬碟的性能 (11:30)
視頻:2-5 使用固態存儲SSD或PCIe卡 (08:35)
視頻:2-6 使用網路存儲SAN和NAS (07:16)
視頻:2-7 總結:伺服器硬體對性能的影響 (03:27)
視頻:2-8 操作系統對性能的影響-MySQL適合的操作系統 (03:50)
視頻:2-9 CentOS系統參數優化 (11:43)
視頻:2-10 文件系統對性能的影響 (03:29)
視頻:2-11 MySQL體系結構 (05:29)
視頻:2-12 MySQL常用存儲引擎之MyISAM (13:23)
視頻:2-13 MySQL常用存儲引擎之Innodb (10:44)
視頻:2-14 Innodb存儲引擎的特性(1) (15:24)
視頻:2-15 Innodb存儲引擎的特性(2) (08:44)
視頻:2-16 MySQL常用存儲引擎之CSV (09:19)
視頻:2-17 MySQL常用存儲引擎之Archive (06:08)
視頻:2-18 MySQL常用存儲引擎之Memory (10:40)
視頻:2-19 MySQL常用存儲引擎之Federated (11:21)
視頻:2-20 如何選擇存儲引擎 (04:33)
視頻:2-21 MySQL伺服器參數介紹 (08:04)
視頻:2-22 內存配置相關參數 (09:24)
視頻:2-23 IO相關配置參數 (10:01)
視頻:2-24 安全相關配置參數 (06:13)
視頻:2-25 其它常用配置參數 (03:41)
視頻:2-26 資料庫設計對性能的影響 (04:36)
視頻:2-27 總結 (01:32)
作業:2-28 【討論題】你會如何配置公司的資料庫伺服器硬體?
作業:2-29 【討論題】你認為對資料庫性能影響最大的因素是什麼
作業:2-30 【討論題】做為電商的DBA,建議開發選哪種MySQL存儲引擎
第3章 MySQL基準測試8 節 | 65分鍾
了解基準測試,MySQL基準測試工具介紹及實例演示。
收起列表
視頻:3-1 什麼是基準測試 (02:20)
視頻:3-2 如何進行基準測試 (09:00)
視頻:3-3 基準測試演示實例 (11:18)
視頻:3-4 Mysql基準測試工具之mysqlslap (13:30)
視頻:3-5 Mysql基準測試工具之sysbench (11:07)
視頻:3-6 sysbench基準測試演示實例 (17:11)
作業:3-7 【討論題】MySQL基準測試是否可以體現出業務系統的真實性能
作業:3-8 【實操題】參數不同取值對性能的影響
第4章 MySQL資料庫結構優化14 節 | 85分鍾
詳細介紹資料庫結構設計、範式和反範式設計、物理設計等等。
收起列表
視頻:4-1 資料庫結構優化介紹 (06:52)
視頻:4-2 資料庫結構設計 (14:49)
視頻:4-3 需求分析及邏輯設計 (11:00)
視頻:4-4 需求分析及邏輯設計-反範式化設計 (06:44)
視頻:4-5 範式化設計和反範式化設計優缺點 (04:06)
視頻:4-6 物理設計介紹 (05:17)
視頻:4-7 物理設計-數據類型的選擇 (18:59)
視頻:4-8 物理設計-如何存儲日期類型 (13:37)
視頻:4-9 物理設計-總結 (02:37)
圖文:4-10 說明MyISAM和Innodb存儲引擎的5點不同
作業:4-11 【討論題】判斷表結構是否符合第三範式要求?如不滿足要如何修改
作業:4-12 【實操題】請設計一個電商訂單系統的資料庫結構
作業:4-13 【討論題】以下那個欄位適合作為Innodb表的主建使用
作業:4-14 【討論題】請為下表中的欄位選擇合適的數據類型
第5章 MySQL高可用架構設計 試看24 節 | 249分鍾
詳細介紹二進制日誌及其對復制的影響、GTID的復制、MMM、MHA等等。
收起列表
視頻:5-1 mysql復制功能介紹 (04:58)
視頻:5-2 mysql二進制日誌 (22:05)
視頻:5-3 mysql二進制日誌格式對復制的影響 (09:37)
視頻:5-4 mysql復制工作方式 (03:08)
視頻:5-5 基於日誌點的復制 (20:06)
視頻:5-6 基於GTID的復制 (22:32)
視頻:5-7 MySQL復制拓撲 (13:58)
視頻:5-8 MySQL復制性能優化 (09:23)
視頻:5-9 MySQL復制常見問題處理 (08:31)
視頻:5-10 什麼是高可用架構 (14:09)
視頻:5-11 MMM架構介紹 (08:09)
視頻:5-12 MMM架構實例演示(上) (09:16)試看
視頻:5-13 MMM架構實例演示(下) (18:55)
視頻:5-14 MMM架構的優缺點 (08:01)
視頻:5-15 MHA架構介紹 (10:02)
視頻:5-16 MHA架構實例演示(1) (13:11)
視頻:5-17 MHA架構實例演示(2) (16:54)
視頻:5-18 MHA架構優缺點 (05:14)
視頻:5-19 讀寫分離和負載均衡介紹 (11:42)
視頻:5-20 MaxScale實例演示 (18:25)
作業:5-21 【討論題】MySQL主從復制為什麼會有延遲,延遲又是如何產生
作業:5-22 【實操題】請為某互聯網項目設計99.99%MySQL架構
作業:5-23 【討論題】如何給一個已經存在的主從復制集群新增一個從節點
作業:5-24 【討論題】給你三台資料庫伺服器,你如何設計它的高可用架構
第6章 資料庫索引優化8 節 | 65分鍾
介紹BTree索引和Hash索引,詳細介紹索引的優化策略等等。
收起列表
視頻:6-1 Btree索引和Hash索引 (20:09)
視頻:6-2 安裝演示資料庫 (01:19)
視頻:6-3 索引優化策略(上) (17:33)
視頻:6-4 索引優化策略(中) (13:02)
視頻:6-5 索引優化策略(下) (12:30)
作業:6-6 【討論題】一列上建立了索引,查詢時就一定會用到這個索引嗎
作業:6-7 【討論題】在定義聯合索引時為什麼需要注意聯合索引中的順序
作業:6-8 【實操題】SQL建立索引,你會考慮那些因素
第7章 SQL查詢優化9 節 | 62分鍾
詳細介紹慢查詢日誌及示例演示,MySQL查詢優化器介紹及特定SQL的查詢優化等。
收起列表
視頻:7-1 獲取有性能問題SQL的三種方法 (05:14)
視頻:7-2 慢查詢日誌介紹 (08:57)
視頻:7-3 慢查詢日誌實例 (08:27)
視頻:7-4 實時獲取性能問題SQL (02:21)
視頻:7-5 SQL的解析預處理及生成執行計劃 (16:02)
視頻:7-6 如何確定查詢處理各個階段所消耗的時間 (09:35)
視頻:7-7 特定SQL的查詢優化 (10:34)
作業:7-8 【討論題】如何跟據需要對一個大表中的數據進行刪除或更新
作業:7-9 【討論題】如何獲取需要優化的SQL查詢
第8章 資料庫的分庫分表5 節 | 48分鍾
詳細介紹資料庫分庫分表的實現原理及演示案例等。
收起列表
視頻:8-1 資料庫分庫分表的幾種方式 (04:34)
視頻:8-2 資料庫分片前的准備 (13:53)
視頻:8-3 資料庫分片演示(上) (11:40)
視頻:8-4 資料庫分片演示(下) (17:02)
作業:8-5 【討論題】對於大表來說我們一定要進行分庫分表嗎
第9章 資料庫監控7 節 | 29分鍾
介紹資料庫可用性監控、性能監控、MySQL主從復制監控等
收起列表
視頻:9-1 資料庫監控介紹 (04:46)
視頻:9-2 資料庫可用性監控 (07:20)
視頻:9-3 資料庫性能監控 (09:39)
視頻:9-4 MySQL主從復制監控 (06:16)
作業:9-5 【討論題】QPS是否可以真實的反映出資料庫的負載情況
作業:9-6 【討論題】如何正確評估資料庫的當前負載狀況
作業:9-7 【實操題】開發一個簡單監控腳本,監控mySQL資料庫阻塞情況

❼ mysql 資料庫表間關系圖怎麼查看

mysql資料庫表間的關系圖可以通過navicat查看:

第一步:下載navicat打開;

第二步:點擊navicat界面最右下角標注的按鈕即可查看關系圖。

最新的MySQL Workbench已經完全包含了資料庫建模與設計、資料庫SQL開發和資料庫管理與維護等功能。

Mysql資料庫-----表

sh.qihoo.com2018-04-07 08:20

1、定義: 表(table)是資料庫最基本的組成單元,資料庫是用來存儲數據的,資料庫中有很多表,每一個表都是一個獨立的單元,表也是一個結構化的文件,由行和列組成,行稱為數據或記錄,列稱為欄位,欄位又包含:欄位名稱、欄位類型、長度、約束。

2、創建表

(1)、語法格式:create table 表名稱(欄位名 類型(長度) 約束);

(2)、MySQL常用數據類型

VARCHAR:可變長度字元串(VARCH AR(3)表示存儲的數據長度丌能超過3個字元長度)

CHAR:定長字元串(CHAR(3) 表示存儲的數據長度丌能超過3個字元長度)

INT:整數型(INT(3)表示最大可以存儲999)

BIGINT:長整型(對應java程序中的long類型)

FLOAT:浮點型單精度(FLOAT(7,2)表示7個有效數字,2個有效小數位)

DOUBLE:浮點型雙精度(DOUBLE(7,2)表示7個有效數字,2個有效小數位)

DATE:日期類型( 實際開發中,常用字元串代替日期類型)

BLOB:二進制大對象 Binary Large Object(專門存儲圖片、視頻、聲音等數據)

CLOB:字元型大對象 Character Large Object( 可存儲超大文本,可存儲4G+字元串)

VARCHAR與CHAR對比:

都是字元串

VARCHAR比較智能,可以根據實際的數據長度分配空間,比較節省空間;但在分配的時候需要相關判斷,效率低。

CHAR不需要勱態分配空間,所以執行效率高,但是可能會導致空間浪費

若欄位中的數據不具備伸縮性,建議採用CHAR類型存儲

若欄位中的數據具備很強的伸縮性,建議採用VARCHAR類型存儲

❽ 什麼是MySql資料庫

MySQL資料庫:

    MySQL是一種開放源代碼的關系型資料庫管理系統(RDBMS),使用最常用的資料庫管理語言--結構化查詢語言(SQL)進行資料庫管理。

    MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。

    MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。

    資料庫簡介:

    MySQL是一種開放源代碼的關系型資料庫管理系統(RDBMS),MySQL資料庫系統使用最常用的資料庫管理語言--結構化查詢語言(SQL)進行資料庫管理。

    由於MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。

    MySQL這個名字,起源不是很明確。一個比較有影響的說法是,基本指南和大量的庫和工具帶有前綴「my」已經有10年以上,而且不管怎樣,MySQL AB創始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個迷,包括開發者在內也不知道。

    MySQL的海豚標志的名字叫「sakila」,它是由MySQL AB的創始人從用戶在「海豚命名」的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲史瓦濟蘭的開源軟體開發者Ambrose Twebaze提供。根據Ambrose所說,Sakila來自一種叫SiSwati的史瓦濟蘭方言,也是在Ambrose的家鄉烏干達附近的坦尚尼亞的Arusha的一個小鎮的名字。

    MySQL,雖然功能未必很強大,但因為它的開源、廣泛傳播,導致很多人都了解到這個資料庫。它的歷史也富有傳奇性。

    MySQL資料庫歷史:

    MySQL的歷史最早可以追溯到1979年,那時Oracle也才小打小鬧,微軟的SQL Server影子都沒有。有一個人叫Monty Widenius, 為一個叫TcX的小公司打工,並用BASIC設計了一個報表工具,可以在4M主頻和16KB內存的計算機上運行。過了不久,又將此工具,使用C語言重寫,移植到Unix平台,當時,它只是一個很底層的面向報表的存儲引擎。這個工具叫做Unireg。

    可是,這個小公司資源有限,Monty天賦極高,面對資源有限的不利條件,他反而更能發揮潛能,總是力圖寫出最高效的代碼。並因此養成了習慣。與Monty同在一起的還有一些別的同事,很少有人能堅持把那些代碼持續寫到20年後,而Monty卻做到了。

    1990年,TcX的customer 中開始有人要求要為它的API提供SQL支持,當時,有人想到了直接使用商用資料庫算了,但是Monty覺得商用資料庫的速度難令人滿意。於是,他直接藉助於mSQL的代碼,將它集成到自己的存儲引擎中。但不巧的是,效果並不太好。於是, Monty雄心大起,決心自己重寫一個SQL支持。

    1996年,MySQL 1.0發布,只面向一小撥人,相當於內部發布。到了96年10月,MySQL 3.11.1發布了,呵呵,沒有2.x版本。最開始,只提供了Solaris下的二進製版本。一個月後,Linux版本出現了。

    緊接下來的兩年裡,MySQL依次移植到各個平台下。它發布時,採用的許可策略,有些與眾不同:允許免費商用,但是不能將MySQL與自己的產品綁定在一起發布。如果想一起發布,就必須使用特殊許可,意味著要花銀子。當然,商業支持也是需要花銀子的。其它的,隨用戶怎麼用都可以。這種特殊許可為MySQL帶來了一些收入,從而為它的持續發展打下了良好的基礎。(細想想,PostgreSQL曾經有幾年限入低谷,可能與它的完全免費,不受任何限制有關系)。

    MySQL3.22應該是一個標志性的版本,提供了基本的SQL支持。

    MySQL關系型資料庫於1998年1月發行第一個版本。它使用系統核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等編程語言的編程介面(APIs),支持多種欄位類型並且提供了完整的操作符支持查詢中的SELECT和WHERE操作。

    MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應性而備受關注。

    1999-2000年,有一家公司在瑞典成立了,叫MySQL AB (AB是瑞典語「股份公司」的意思)。 雇了幾個人,與Sleepycat合作,開發出了 Berkeley DB引擎, 因為BDB支持事務處理,所以,MySQL從此開始支持事務處理了。

    2000年4月,MySQL對舊的存儲引擎進行了整理,命名為MyISAM。同時,2001年,Heikiki Tuuri向MySQL提出建議,希望能集成他們的存儲引擎InnoDB,這個引擎同樣支持事務處理,還支持行級鎖。

    如今,遺憾的是,BDB和InnoDB好像都被Oracle收購了,為了消滅競爭對手,哪怕是開源的,都是不擇手段。

    MySQL與InnoDB的正式結合版本是4.0。

    到了MySQL5.0,2003年12月,開始有View,存儲過程之類的東東,當然,其間, bug也挺多。

    在2008年1月16號 MySQL被Sun公司收購。

    最近,MySQL的創始人Monty Widenius已經向Sun提交了辭呈。head都要走了。

    據說,被Sun收購的公司多薄命,不知道MySQL今後前途如何,希望一路走好。相信MySQL的生命力還是很長久的。

    時至今日 mysql 和 php 的結合絕對是完美.很多大型的網站也用到mysql資料庫.mysql的發展前景是非常光明的!

    MySQL常用命令:

    1:使用SHOW語句找出在伺服器上當前存在什麼資料庫:

    mysql> SHOW DATABASES;

    2:2、創建一個資料庫MYSQLDATA

    mysql> CREATE DATABASE MYSQLDATA;

    3:選擇你所創建的資料庫

    mysql> USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!)

    4:查看現在的資料庫中存在什麼表

    mysql> SHOW TABLES;

    5:創建一個資料庫表

    mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

    6:顯示表的結構:

    mysql> DESCRIBE MYTABLE;

    7:往表中加入記錄

    mysql> insert into MYTABLE values (」hyq」,」M」);

    8:用文本方式將數據裝入資料庫表中(例如D:/mysql.txt)

    mysql> LOAD DATA LOCAL INFILE 「D:/mysql.txt」 INTO TABLE MYTABLE;

    9:導入.sql文件命令(例如D:/mysql.sql)

    mysql>use database;

    mysql>source d:/mysql.sql;

    10:刪除表

    mysql>drop TABLE MYTABLE;

    11:清空表

    mysql>delete from MYTABLE;

    12:更新表中數據

    mysql>update MYTABLE set sex=」f」 where name=』hyq』;

    全局管理許可權對應解釋:

    FILE: 在MySQL伺服器上讀寫文件。

    PROCESS: 顯示或殺死屬於其它用戶的服務線程。

    RELOAD: 重載訪問控製表,刷新日誌等。

    SHUTDOWN: 關閉MySQL服務。

    資料庫/數據表/數據列許可權:

    ALTER: 修改已存在的數據表(例如增加/刪除列)和索引。

    CREATE: 建立新的資料庫或數據表。

    DELETE: 刪除表的記錄。

    DROP: 刪除數據表或資料庫。

    INDEX: 建立或刪除索引。

    INSERT: 增加表的記錄。

    SELECT: 顯示/搜索表的記錄。

    UPDATE: 修改表中已存在的記錄。

    特別的許可權:

    ALL: 允許做任何事(和root一樣)。

    USAGE: 只允許登錄–其它什麼也不允許做。

    MySQL資料庫導入方法:

    MySQL資料庫的導入,有兩種方法:

    1) 先導出資料庫SQL腳本,再導入;

    2) 直接拷貝資料庫目錄和文件。

    在不同操作系統或MySQL版本情況下,直接拷貝文件的方法可能會有不兼容的情況發生。

    所以一般推薦用SQL腳本形式導入。下面分別介紹兩種方法。

    2. 方法一 SQL腳本形式

    操作步驟如下:

    2.1. 導出SQL腳本

    在原資料庫伺服器上,可以用phpMyAdmin工具,或者mysqlmp命令行,導出SQL腳本。

    2.1.1 用phpMyAdmin工具

    導出選項中,選擇導出「結構」和「數據」,不要添加「DROP DATABASE」和「DROP TABLE」選項。

    選中「另存為文件」選項,如果數據比較多,可以選中「gzipped」選項。

    將導出的SQL文件保存下來。

    2.1.2 用mysqlmp命令行

    命令格式

    mysqlmp -u 用戶名 -p 資料庫名 > 資料庫名.sql

    範例:

    mysqlmp -u root -p abc > abc.sql

    (導出資料庫abc到abc.sql文件)

    提示輸入密碼時,輸入該資料庫用戶名的密碼。

    2.2. 創建空的資料庫

    通過主控界面/控制面板,創建一個資料庫。假設資料庫名為abc,資料庫全權用戶為abc_f。

    2.3. 將SQL腳本導入執行

    同樣是兩種方法,一種用phpMyAdmin(mysql資料庫管理)工具,或者mysql命令行。

    2.3.1 用phpMyAdmin工具

    從控制面板,選擇創建的空資料庫,點「管理」,進入管理工具頁面。

    在"SQL"菜單中,瀏覽選擇剛才導出的SQL文件,點擊「執行」以上載並執行。

    注意:phpMyAdmin對上載的文件大小有限制,php本身對上載文件大小也有限制,如果原始sql文件

    比較大,可以先用gzip對它進行壓縮,對於sql文件這樣的文本文件,可獲得1:5或更高的壓縮率。

    gzip使用方法:

    # gzip xxxxx.sql

    得到

    xxxxx.sql.gz文件。

    提示輸入密碼時,輸入該資料庫用戶名的密碼。

    3 直接拷貝

    如果資料庫比較大,可以考慮用直接拷貝的方法,但不同版本和操作系統之間可能不兼容,要慎用。

    3.1 准備原始文件

    用tar打包為一個文件

    3.2 創建空資料庫

    3.3 解壓

    在臨時目錄中解壓,如:

    cd /tmp

    tar zxf mydb.tar.gz

    3.4 拷貝

    將解壓後的資料庫文件拷貝到相關目錄

    cd mydb/

    cp * /var/lib/mysql/mydb/

    對於FreeBSD:

    cp * /var/db/mysql/mydb/

    3.5 許可權設置

    將拷貝過去的文件的屬主改為mysql:mysql,許可權改為660

    chown mysql:mysql /var/lib/mysql/mydb/*

    chmod 660 /var/lib/mysql/mydb/*

    Mssql轉換mysql的方法:

    1.導表結構

    使用MySQL生成create腳本的方法。找到生成要導出的腳本,按MySQL的語法修改一下到MySQL資料庫中創建該表的列結構什麼的。

    2.導表數據

    在MSSQL端使用bcp導出文本文件:

    bcp 「Select * FROM dbname.dbo.tablename;」 queryout tablename.txt -c -Slocalhostdb2005 -Usa

    其中」"中是要導出的sql語句,-c指定使用 進行欄位分隔,使用 進行記錄分隔,-S指定資料庫伺服器及實例,-U指定用戶名,-P指定密碼.

    在MySQL端使用mysqlimport 導入文本文件到相應表中

    mysqlimport -uroot -p databasename /home/test/tablename.txt

    其中-u指定用戶名,-p指定密碼,databasename指定資料庫名稱,表名與文件名相同

    MySQL備份與恢復:

    MySQL備份恢復數據的一般步驟

    備份一個資料庫的例子:

    1、備份前讀鎖定涉及的表

    mysql>LOCK TABLES tbl1 READ,tbl1 READ,…
    如果,你在mysqlmp實用程序中使用--lock-tables選項則不必使用如上SQL語句。

    2、導出資料庫中表的結構和數據

    shell>mysqlmp --opt db_name>db_name.sql

    3、啟用新的更新日誌

    shell>mysqladmin flush-logs

    這樣可以記錄你備份後的數據改變為恢復數據准備。

    4、解除表的讀鎖

    mysql>UNLOCK TABLES;

    為了加速上述過程,你可以這樣做:

    shell> mysqlmp --lock-tables --opt db_name>db_name.sql; mysqladmin flush-logs

    但是這樣可能會有點小問題。上命令在啟用新的更新日誌前就恢復表的讀鎖,
    在更新繁忙的站點,可能有備份後的更新數據沒有記錄在新的日誌中。
    現在恢復上面備份的資料庫

    1、對涉及的表使用寫鎖

    mysql>LOCK TABLES tbl1 WRITE,tbl1 WRITE,…

    2、恢復備份的數據

    shell>mysql db_name < db_name.sql

    3、恢復更新日誌的內容

    shell>mysql --one-database db_name < hostname.nnn

    假設需要使用的日誌名字為hostname.nnn

    4、啟用新的更新日誌

    shell>mysqladmin flush-logs

    5、解除表的寫鎖

    mysql>UNLOCK TABLES;

    希望上面的例子能給你啟發,因為備份數據的手法多種多樣,你所使用的和上面所述可能大不一樣,但是對於備份和恢復中,表的鎖定、啟用新的更新日誌的時機應該是類似的,仔細考慮這個問題。

    MySQL資料庫優化:

    選擇InnoDB作為存儲引擎

    大型產品的資料庫對於可靠性和並發性的要求較高,InnoDB作為默認的MySQL存儲引擎,相對於MyISAM來說是個更佳的選擇。

    優化資料庫結構

    組織資料庫的schema、表和欄位以降低I/O的開銷,將相關項保存在一起,並提前規劃,以便隨著數據量的增長,性能可以保持較高的水平。

    設計數據表應盡量使其佔用的空間最小化,表的主鍵應盡可能短。·對於InnoDB表,主鍵所在的列在每個輔助索引條目中都是可復制的,因此如果有很多輔助索引,那麼一個短的主鍵可以節省大量空間。

    僅創建你需要改進查詢性能的索引。索引有助於檢索,但是會增加插入和更新操作的執行時間。

    InnoDB的ChangeBuffering特性

    InnoDB提供了changebuffering的配置,可減少維護輔助索引所需的磁碟I/O。大規模的資料庫可能會遇到大量的表操作和大量的I/O,以保證輔助索引保持最新。當相關頁面不在緩沖池裡面時,InnoDB的changebuffer將會更改緩存到輔助索引條目,從而避免因不能立即從磁碟讀取頁面而導致耗時的I/O操作。當頁面被載入到緩沖池時,緩沖的更改將被合並,更新的頁面之後會刷新到磁碟。這樣做可提高性能,適用於MySQL5.5及更高版本。

    InnoDB頁面壓縮

    InnoDB支持對表進行頁面級的壓縮。當寫入數據頁的時候,會有特定的壓縮演算法對其進行壓縮。壓縮後的數據會寫入磁碟,其打孔機制會釋放頁面末尾的空塊。如果壓縮失敗,數據會按原樣寫入。表和索引都會被壓縮,因為索引通常是資料庫總大小中佔比很大的一部分,壓縮可以顯著節約內存,I/O或處理時間,這樣就達到了提高性能和伸縮性的目的。它還可以減少內存和磁碟之間傳輸的數據量。MySQL5.1及更高版本支持該功能。

    注意,頁面壓縮並不能支持共享表空間中的表。共享表空間包括系統表空間、臨時表空間和常規表空間。

    使用批量數據導入

    在主鍵上使用已排序的數據源進行批量數據的導入可加快數據插入的過程。否則,可能需要在其他行之間插入行以維護排序,這會導致磁碟I/O變高,進而影響性能,增加頁的拆分。關閉自動提交的模式也是有好處的,因為它會為每個插入執行日誌刷新到磁碟。在批量插入期間臨時轉移唯一鍵和外鍵檢查也可顯著降低磁碟I/O。對於新建的表,最好的做法是在批量導入後創建外鍵/唯一鍵約束。

    一旦你的數據達到穩定的大小,或者增長的表增加了幾十或幾百兆位元組,就應該考慮使用OPTIMIZETABLE語句重新組織表並壓縮浪費的空間。對重新組織後的表進行全表掃描所需要的I/O會更少。

    優化InnoDB磁碟I/O

    增加InnoDB緩沖池大小可以讓查詢從緩沖池訪問而不是通過磁碟I/O訪問。通過調整系統變數innodb_flush_method來調整清除緩沖的指標使其達到最佳水平。

    MySQL的內存分配

    在為MySQL分配足夠的內存之前,請考慮不同領域對MySQL的內存需求。要考慮的關鍵領域是:並發連接——對於大量並發連接,排序和臨時表將需要大量內存。在撰寫本文時,對於處理3000+並發連接的資料庫,16GB到32GB的RAM是足夠的。

    內存碎片可以消耗大約10%或更多的內存。像innodb_buffer_pool_size、key_buffer_size、query_cache_size等緩存和緩沖區要消耗大約80%的已分配內存。

    日常維護

    定期檢查慢的查詢日誌並優化查詢機制以有效使用緩存來減少磁碟I/O。優化它們,以掃描最少的行數,而不是進行全表掃描。

    其他可以幫助DBA檢查和分析性能的日誌包括:錯誤日誌、常規查詢日誌、二進制日誌、DDL日誌(元數據日誌)。

    定期刷新緩存和緩沖區以降低碎片化。使用OPTIMIZETABLE語句重新組織表並壓縮任何可能被浪費的空間。

❾ mysql怎麼查看資料庫結構圖

所有資料庫名的命令 show databases
表結構和列結構 desc tablename

❿ 如何用MySQL建立資料庫

1、首先在電腦端安裝MySQL,然後進行信息配置操作。打開該軟體,如圖所示。

熱點內容
inf12編譯器 發布:2024-04-25 18:15:39 瀏覽:98
撲克總督3安卓哪裡下載 發布:2024-04-25 18:10:02 瀏覽:394
什麼網站是php 發布:2024-04-25 18:03:42 瀏覽:220
java教程免費下載 發布:2024-04-25 18:02:01 瀏覽:442
i西安編程 發布:2024-04-25 16:55:35 瀏覽:263
核磁看壓縮 發布:2024-04-25 16:37:22 瀏覽:432
訪問不上光貓 發布:2024-04-25 16:13:44 瀏覽:319
部隊電腦配置有哪些 發布:2024-04-25 16:13:43 瀏覽:970
霍曼密碼鎖什麼價位 發布:2024-04-25 16:08:01 瀏覽:750
ftp雙機熱備 發布:2024-04-25 16:03:48 瀏覽:360