日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库简介与 Mysql 服务基础

發布時間:2023/12/15 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库简介与 Mysql 服务基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、數據庫系統發展史
  • 二、數據庫基本概念
  • 三、主流數據庫介紹
  • 四、數據庫類型
    • 1. 關系型數據庫
    • 2. 非關系型數據庫
    • 3. 時序數據庫 TSD
  • 五、Mysql 數據庫
    • 1. MySQL 簡介
    • 2. 商業版與社區版
    • 3. 產品陣營
    • 4. Mysql 特點
    • 5. 源碼編譯安裝
    • 6. Mysql 初步使用
      • (1) MySQL 常用數據類型
      • (2) 查看當前服務器中的數據庫
      • (3) 查看數據庫中包含的表
      • (4) 查看表的結構
      • (4) 創建新的數據庫
      • (5) 創建新的表
      • (6) 刪除指定的數據表
      • (7) 刪除指定的數據庫

前言

一、數據庫系統發展史

第一代數據庫

  • 自 20 世紀 60 年代起,第一代數據庫系統問世
  • 是層次模型與網狀模型的數據庫系統
  • 為統—管理和共享數據提供了有力的支撐

第二代數據庫

  • 20 世紀 70 年代初,第二代數據庫——關系型數據庫開始出現
  • 20 世紀 80 年代初,IBM 公司的關系型數據庫系統 DB2 問世,開始逐步取代層次與網狀模型的數據庫,成為行業主流
  • 到目前為止,關系型數據庫系統仍占領數據庫應用的主要地位

第三代數據庫

  • 自 20 世紀 80 年代開始,適應不同領域的新型數據庫系統不斷涌現
  • 面向對象的數據庫系統,實用性強、適應面廣
  • 20 世紀 90 年代后期,形成了多種數據庫系統共同支撐應用的局面
  • —些新的元素被添加進主流數據庫系統中
    例如:Oracle 支持的 < 關系 - 對象 > 數據庫模型

二、數據庫基本概念

數據(data)

  • 描述事物的符號記錄
  • 包括數字,文字、圖形、圖像、聲音、檔案記錄等
  • 如下表所示:每一行稱為一條記錄,用來描述一個對象的信息;每一列稱為一個字段,用來描述對象的一個屬性
姓名年齡存款
小紅192000
小劉205000

表(table)

  • 將不同的記錄組織在一起用來存儲具體數據

數據庫(database)

  • 表的集合,是存儲數據的倉庫
  • 以一定的組織方式存儲的相互有關的數據集合

數據庫管理系統(DBMS)

??數據庫管理系統(DatabaseManagementSystem,DBMS)是實現對數據庫資源有效組織、管理和存取的系統軟件。它在操作系統的支持下,支持用戶對數據庫的各項操作。

DBMS 的工作模式如下

接受應用程序的數據請求和處理請求 將用戶的數據請求(高級指令)轉換為復雜機器代碼(底層指令) 實現對數據庫的操作 從數據庫的操作中接受查詢結果 對查詢結果進行處理(格式轉換) 將處理結果返回給用戶

DBMS主要包括以下功能

數據庫的建立和維護功能:包括建立數據庫的結構和數據的錄入與轉換、數據庫的 轉儲與恢復、數據庫的重組與性能監視等功能。 數據定義功能:包括定義全局數據結構、局部邏輯數據結構、存儲結構、保密模式及信息格式等功能。保證存儲在數據庫中的數據正確、有效和相容,以防止不合語義的錯誤數據被輸入或輸出。 數據操縱功能:包括數據查詢統計和數據更新兩個方面。 數據庫的運行管理功能:這是數據庫管理系統的核心部分,包括并發控制、存取控 制、數據庫內部維護等功能。 通信功能:DBMS 與其他軟件系統之間的通信,如 Access 能與其他 Office 組件進行數據交換。

數據庫系統(DBS)

  • 是一個人機系統,由硬件、OS、數據庫、DBMS、應用軟件和數據庫用戶組成
  • 用戶可以通過 DBMS 或應用程序操作數據庫

三、主流數據庫介紹

SQL Server(微軟公司產品)

  • 面向 Windows 操作系統
  • 簡單、易用

Oracle(甲骨文公司產品)

  • 面向所有主流平臺
  • 安全、完善,操作復雜

DB2(IBM 公司產品)

  • 面向所有主流平臺
  • 大型、安全、完善

MySQL(甲骨文公司收購)

  • 免費、開源、體積小

PostgreSQL(PostgreSQL Global Development Group維護)

  • 面向所有主流平臺
  • 免費、開源、功能強大

GaussDB(華為公司產品)

  • 涵蓋關系型、非關系型數據庫服務
  • 可靠性、擴展性、備份恢復

OceanBase(螞蟻集團產品)

  • 金融級分布式關系數據庫
  • 數據強一致、高可用、高性能、在線擴展、高度兼容 SQL 標準和主流關系數據庫、低成本

四、數據庫類型

1. 關系型數據庫

關系型數據庫是基于關系模型的數據庫系統
關系模型的數據結構使用簡單易懂的二維數據表
關系模型可用簡單的 “實體 - 關系”(E - R) 圖來表示
E - R 圖中包含了實體(數據對象)、關系和屬性三個要素
所有實體及實體之間聯系的集合構成了一個關系數據庫

實體

  • 也稱為實例,對應現實世界中可區別于其他對象的 “事件” 或 “事務”
  • 如上圖的銀行客戶、銀行賬戶

屬性

  • 實體所具有的某一特性,一個實體可以有多個屬性
  • 如上圖的 “銀行客戶” 實體集中的每個實體均具有姓名、住址、電話等屬性

聯系

  • 實體集之間的對應關系稱為聯系,也稱為關系
  • 如銀行客戶和銀行賬戶之間存在 “儲蓄” 的關系

二維數據表

關系數據庫的存儲結構是二維表格
在每個二維表中:

  • 每一行稱為一條記錄,用來描述一個對象的信息
  • 每一列稱為一個字段,用來描述對象的一個屬性

主鍵

  • 數據表中的每行記錄都必須是唯一的,不允許出現完全相同的記錄,通過定義主鍵(主關鍵字,Promary Key)可以保證記錄(實體)的唯一性
  • 鍵,即關鍵字,它是關系模型中一個非常重要的元素
  • 主鍵唯一標識表中的行數據,一個主鍵值對應一行數據,主鍵由一個或多個字段組成,其值具有唯一性,不允許取空值(NULL)
  • 一個表只能有一個主鍵
  • 如果一個屬性集能唯一地標識表的一行而又不含有多余的屬性,那么這個屬性集稱為候選鍵
  • 表中可以有多個候選鍵,但是只能有一個候選鍵可以選做表的主鍵,所有其他候選鍵稱為備用鍵
  • 例如下圖,“編號”、“姓名”、“性別”、“年齡”、“專業編號” 都可以說是候選鍵,而可以定義 “編號” 為主鍵
編號姓名性別年齡專業編號
1徐一211
2徐二223
3徐三183
4徐四185

外鍵

  • 一個關系數據庫通常包括多個表,通過外鍵(Foreign Key)可以使這些表關聯起來
  • 外鍵是用于建立和加強兩個表數據之間的鏈接的一列或多列,通過表中主鍵值得一列或多列添加到另一個表中,可創建兩個表之間的鏈接,這個列就稱為第二個表的外鍵
  • 如下表所示,字段 “專業編號” 是該表的主鍵,而上表中也有一個相同的字段 “專業編號”,則該字段稱為外鍵
專業編號專業
1云計算運維
3大數據開發
5人工智能
  • 主鍵的表稱之為 “主表”,外鍵的表稱之為 "從表”
  • 主表和從表總是成對出現的,相互之間以 “外鍵” 形成關聯

數據完整性規則

為了維護數據庫中的數據與現實世界的一致性,關系數據庫的數據與更新操作必須遵循下列四類完整性規則

  • 實體完整性規則
  • 域完整性規則
  • 引用完整性規則
  • 用戶定義的完整性規則

數據完整性

關系型數據庫的應用

關系型數據庫應用舉例
Oracle、MySQL12306 用戶信息系統
SQL Server、Sybase淘寶賬號系統
Informix、access聯通手機號信息系統
DB2、FoxPRO銀行用戶賬號系統
PostgreSQL網站用戶信息系統

2. 非關系型數據庫

簡介

  • 非關系數據庫也被稱為 NoSQL(Not Only SQL)
  • 存儲數據不以關系模型為依據,不需要固定的表格式
  • 常用的非關系數據庫有:Redis、mongoDB 等

非關系數據庫的優點

  • 數據庫可高并發讀寫
  • 對海量數據高效率存儲與訪問
  • 數據庫具有高擴展性與高可用性

對比關系型數據庫

優勢

  • 成本:nosql 數據庫簡單易部署,基本都是開源軟件,不需要像使用 oracle 那樣花費大量成本購買使用,相比關系型數據庫價格便宜
  • 查詢速度:nosql 數據庫將數據存儲于緩存之中,關系型數據庫將數據存儲在硬盤中,自然查詢速度遠不及 nosql 數據庫
  • 存儲數據的格式:nosql 的存儲格式是 key-value 形式、文檔形式、圖片形式等等,所以可以存儲基礎類型以及對象是集合等各種格式,而關系型數據庫則只支持基礎類型
  • 擴展性:關系型數據庫有類似 join 這樣的多表查詢機制的限制導致擴展很難

劣勢

  • 維護的工具和資料有限,因為 nosql 是屬于新的技術,而關系型數據庫出現已有十幾年時間
  • 不提供對 sql 語句的支持,如果不支持 sql 這樣的工業標準,將產生一定程度的學習和使用成本
  • 不提供關系型數據庫對事物的處理

3. 時序數據庫 TSD

??基于時間序列數據的特點,關系型數據庫無法滿足對時間序列數據的有效存儲與處理,因此迫切需要一種專門針對時間序列數據來做優化的數據庫系統,即時間序列數據庫。
??時序數據庫全稱為時間序列數據庫。時間序列數據庫指主要用于處理帶時間標簽(按照時間的順序變化,即時間序列化)的數據,帶時間標簽的數據也稱為時間序列數據。

五、Mysql 數據庫

1. MySQL 簡介

  • MySQL 是一個真正的多線程、多用戶的 SQL 數據庫服務,憑借其高性能、高可靠和易于使用的特點,成為服務器領域中最受歡迎的開源數據庫系統
  • 在 2008 年以前,MySQL 項目由 MySQL AB 公司進行開發、發布和支持,之后歷經 Sun 公司收購 MySQL,Oracle 公司收購 Sun 公司的過程,目前 MySQL 項目由 Oracle 公司負責運營和維護

2. 商業版與社區版

  • MySQL 商業版是由 MySQL AB 公司負責開發與維護,需要付費才能使用
  • MySQL 社區版是由分散在世界各地的 MySQL 開發者、愛好者一起開發與維護,可以免費使用
  • 兩者區別
    • 商業版組織管理與測試環節更加嚴格,會比社區版更穩定
    • 商業版不遵守 GPL,社區版遵從 GPL 可以免費使用
    • 商業版可獲得 7*24 小時的服務,社區版則沒有

3. 產品陣營

  • 第一陣營:5.0-5.1 陣營,可說是早期產品的延續
  • 第二陣營:5.4-5.7 陣營,整合了 MySQL AB 公司、社區和第三方公司開發的存儲引擎,從而提高性能
  • 第三陣營:6.0-7.1 陣營,就是 MySQL Cluster 版本,為適應新時代對數據庫的集群需求而開發

4. Mysql 特點

  • 性能卓越、服務穩定
  • 開源、無版權限制、成本低
  • 多線程、多用戶
  • 基于 C/S 架構
  • 安全可靠

5. 源碼編譯安裝

這里使用腳本一鍵執行,安裝包放在我的云主機上

#!/bin/bash #一鍵安裝 mysql-5.7.17 #聯網下載兩個源碼包,包在我的云主機上 #安裝包下載在 /data 目錄 #編譯安裝需較長時間,請耐心等待mkdir /data wget http://101.34.22.188/mysql-5.7.17/boost_1_59_0.tar.gz -P /data wget http://101.34.22.188/mysql-5.7.17/mysql-5.7.17.tar.gz -P /datasystemctl stop firewalld && systemctl disable firewalld setenforce 0 ntpdate ntp1.aliyun.com tar zxvf /data/mysql-5.7.17.tar.gz -C /opt tar zxvf /data/boost_1_59_0.tar.gz -C /usr/local mv /usr/local/boost_1_59_0 /usr/local/boost yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make git perl expat-devel pcre-devel pcre useradd -s /sbin/nologin mysql cd /opt/mysql-5.7.17/cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DSYSTEMD_PID_DIR=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=/usr/local/boost \ -DWITH_SYSTEMD=1cd /opt/mysql-5.7.17/ make -j 4 && make install echo > /etc/my.cnfcat > /etc/my.cnf<<EOF [client] port = 3306 default-character-set=utf8 socket=/usr/local/mysql/mysql.sock[mysql] port = 3306 default-character-set=utf8 socket=/usr/local/mysql/mysql.sock auto-rehash[mysqld] user = mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data port = 3306 character-set-server=utf8 pid-file = /usr/local/mysql/mysqld.pid socket=/usr/local/mysql/mysql.sock bind-address = 0.0.0.0 skip-name-resolve max_connections=2048 default-storage-engine=INNODB max_allowed_packet=16M server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES EOFchown -R mysql.mysql /usr/local/mysql/ chown mysql.mysql /etc/my.cnf echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile echo 'export PATH' >> /etc/profile source /etc/profilecd /usr/local/mysql/bin/ ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/datacp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl daemon-reload && systemctl start mysqld && systemctl enable mysqld ln -s /usr/local/mysql/bin/mysql /usr/local/sbin/pgrep "mysqld" &> /dev/null if [ $? -eq 0 ];thenecho -e "\033[32mmysqld服務運行正常\033[0m" elseecho -e "\033[31mmysqld服務運行異常,請檢查\033[0m" fi sleep 2 echo ' ' echo -e "\033[32mMySQL 沒有設置密碼,執行 mysql 命令登錄\033[0m"

修改密碼

mysqladmin -u root -p password "123456" # 不需要登錄,直接敲回車

授權遠程登錄

# 需要登錄 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

6. Mysql 初步使用

數據庫 ----> 數據表 -----> 行(記錄):用來描述一個對象的信息 數據庫 ----> 數據表 -----> 列(字段):用來描述對象的一個屬性

(1) MySQL 常用數據類型

mysql 常用數據類型很多,這里列舉幾種:

int:整型 float:單精度浮點 4 字節 32 位 double:雙精度浮點 8 字節 64 位 char:固定長度的字符類型 varchar:可變長度的字符類型 text:文本 image:圖片 decimal(5,2)5 個有效長度數字,小數點后面有 2

MySQL 數據類型

(2) 查看當前服務器中的數據庫

show databases;

(3) 查看數據庫中包含的表

use <數據庫名>; #切換數據庫 show tables; #查看所有表 #可以合寫 show tables in <數據庫名>;


??MySQL 數據庫的數據文件存放在 /usr/local/mysql/data 目錄下,每個數據庫對應一個子目錄,用于存儲數據表文件。每個數據表對應為三個文件,擴展名分別為:

.frm .MYD .MYI

(4) 查看表的結構

use <數據庫名>; describe <數據庫名>.<表名>; #describe 可縮寫 desc <表名>;

(4) 創建新的數據庫

create database <數據庫名>;

(5) 創建新的表

  • create table 表名 (字段1 數據類型,字段2 數據類型,[…],parmary key (主鍵名));
  • 主鍵一般選擇能代表唯一性的字段,不允許取空值(NULL),一個表只能有一個主鍵
CREATE TABLE web_demo (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT '',PRIMARY KEY (id));

(6) 刪除指定的數據表

drop table <數據庫名>.<表名>; #不 use 進入庫中需加上數據庫名

(7) 刪除指定的數據庫

drop database <數據庫名>;

總結

以上是生活随笔為你收集整理的数据库简介与 Mysql 服务基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲一区av在线 | 国产日韩一区 | 欧美亚洲中文精品字幕 | 婷婷综合在线视频 | 日日夜夜操av | www.一级片 | 国产极品视频在线观看 | 五月综合激情网 | 99riav国产 | 亚洲一区不卡在线 | 麻豆影视在线播放 | 最好看的电影2019中文字幕 | 色图综合 | 亚洲不卡中文字幕 | 日韩毛片在线观看 | 亚洲va欧美va天堂v国产综合 | 青青青在线免费 | 特黄做受又粗又大又硬老头 | 男操女免费网站 | 国产亚洲精品久久久久四川人 | 久久国产精品久久 | sm捆绑调教视频 | 色婷婷国产精品综合在线观看 | 久草免费新视频 | 91肉色超薄丝袜脚交一区二区 | 欧美人妻精品一区二区免费看 | 亚洲情射| 日韩黄色免费视频 | 99re6在线精品视频免费播放 | 色播亚洲 | 日韩美女做爰高潮免费 | 天天干天天操天天拍 | 日本免费视频 | 制服丝袜亚洲 | 亚洲污视频| 成人性生交大片免费卡看 | 国产精品中文字幕在线观看 | 乳色吐息在线观看 | 久久香蕉综合 | 福利片av| 中文字幕在线免费观看 | 美女脱了裤子让男人桶 | 久久久精品国产 | 国产一区二区三区 | 在线观看香蕉视频 | 色窝网 | 免费看国产曰批40分钟粉红裤头 | 亚洲精品成人网 | 国产精品毛片一区二区在线看 | 日本一区二区三区精品视频 | 无码国产精品高潮久久99 | 日本少妇xxxx动漫 | 久久久久久18 | 国产一区二区不卡 | 奇米97 | ,亚洲人成毛片在线播放 | 亚洲一区成人在线 | 特黄视频免费看 | 真实偷拍激情啪啪对白 | 女人性高潮视频 | 熟妇人妻系列aⅴ无码专区友真希 | 欧美第三页 | 激情五月婷婷综合网 | www.日日夜夜 | 337p嫩模大胆色肉噜噜噜 | 精品国内自产拍在线观看视频 | 色婷婷小说 | 椎名由奈av一区二区三区 | 色婷婷久久综合中文久久蜜桃av | 国产9区 | 在线免费观看黄色av | 深爱开心激情 | 亚洲国产天堂av | 久久久久久久久久电影 | 日本www在线观看 | 奇米色在线 | 人妻精品一区 | 免费在线观看污 | 成人小视频免费观看 | 成人片黄网站色大片免费毛片 | 久久久老司机 | 99精品一区 | 天天插天天射 | 91成年版 | 加勒比波多野结衣 | 免费成人激情视频 | 久久亚洲国产成人精品性色 | 天堂资源av| 91色视频 | 二区视频在线观看 | 亚洲www在线观看 | 特种兵之深入敌后高清全集免费观看 | 亚洲一级无毛 | www.啪啪| 污污视频在线播放 | 欧美一区二区三区在线 | 一区二区三区亚洲精品 | 99riav1国产精品视频 | 亚洲激情自拍偷拍 |