數據庫原理及應用_數據庫基礎_第2章關系數據庫標準語言SQL_SQL語言介紹數據庫的定義和刪除

前言

? ? ? ? "<數據庫原理及應用>(MySQL版)".以下稱為"本書"中2.1節和2.2節第一部分內容

引入

? ? ? ? 本書P40:SQL(Structure Query Language結構化查詢語言)是一種在關系數據庫中定義和操縱數據的標準語言,是用戶和數據庫之間進行交流的接口.

? ? ? ? ---SQL是一種語言,是一種工具,值得欣慰的是如何實現它不用寫應用的程序員去關心,會用即可

MySQL8.0安裝的兩個細節

? ? ? ? 要操作SQL語言,先安裝一個MySQL.某度搜索"MySQL8.0安裝",根據其步驟實操有兩個地方要注意:

? ? ? 1.在最后finish階段,"Starting the server 失敗"

? ? ? ? 解決方法:

? ? ? ? ---不要關閉錯誤頁面:出現紅色感嘆號時,保持安裝界面打開,不要點擊取消或關閉按鈕。
? ? ? ? ---打開服務管理界面:
????????????????右鍵點擊“計算機”(或“此電腦”),選擇“管理”。
????????????????在左側導航欄中依次展開“服務和應用程序”→“服務”,找到名稱為“MySQL80”(不同版本可能略有差異,通常以MySQL開頭)的服務。

? ? ? ? ---配置MySQL服務屬性:?

????????????????右鍵點擊“MySQL80”服務,選擇“屬性”。

????????????????在彈出的窗口中切換到“登錄”選項卡。

????????????????勾選“允許服務與桌面交互”,點擊“應用”保存設置

????????重新執行安裝:返回MySQL安裝界面,點擊“Execute”按鈕重新嘗試安裝,此時“Starting the server”步驟大概率會成功

注:內容為轉載,原帖MySQL安裝時Starting the server 失敗的問題_mysql8.0安裝后starting the server不成功-CSDN博客

? ? ? ? 2.首次登陸mysql的問題

? ? ? ? 按照常規方法在控制臺輸入:mysql -u root -p,老是顯示錯誤登陸不成功.原因是此時未設置密碼---登陸密碼和安裝mysql輸入的密碼不一樣.第一次登陸方法:mysql -u root,回車即可登陸.進入sql后可以修改登陸密碼

2.1 SQL語言介紹

? ? ? ? SQL是一種國際標準

2.1.1SQL數據庫的體系結構

圖2-1 SQL數據庫的體系結構圖1-4的具體表達,在"模式"中添加了索引,內模式有了具體表示.

使用SQL的關系數據庫的特點,主要有兩點:

1.SQL用戶可以是應用程序,也可以是終端用戶.它可以獨立使用,也可以被嵌入宿主語言如C++,Java等.

2.視圖是一個虛表.

? ? ? ? ---前面提到過"視圖"是一個搜索請求,它的結果是一張表.

其余內容了解即可

2.1.2 SQL的特點,是一些文字描述

2.1.3 SQL語言的組成

? ? ? ? 數據定義語言DDL,數據操縱語言DML和數據控制語言DCL

2.2 數據定義

? ? ? ? 對數據的概念回顧:前面提到過在數據庫中,把"表"看作是數據庫的基本數據.而在"表"定義時,"屬性"是表的基本單位.綜合來說,數據庫的基本單位是"屬性",利于后面的"數據類型"的理解.

2.2.1數據庫的定義和刪除

數據庫的數據結構分析

? ? ? ? 本書P42原話:數據庫是存放數據的容器,在設計一個應用系統時必須先設計數據庫.在MySQL中一個數據庫服務器可以包含多個數據庫,每個數據庫存放在以數據庫名字命名的文件夾中,用來存放該數據庫中的各種表數據文件.

? ? ? ? ---這段話有一定信息量,數據庫服務器→數據庫→表數據文件,簡單表示如下圖:

? ? ? ? 筆者寫這個的目的是嘗試站在高級語言描述:數據庫的數據結構.以加深對數據庫的理解

/*以下為偽代碼*/
//數據庫服務器類型定義
struct DataServer{vector<DataBase> dbs;
}//數據庫類型定義
struct DataBase{vector<Table> tbs;Folder fdr;                //文件夾對象
}//表類型定義
struct Table{vector<Attribute> abs;     //屬性的動態數組
}

? ? ? ? 說明如下:

? ? ? ? 1.根據"每個數據庫都存放在以數據庫名字命名的文件夾中(本書原話)",定義一個Folder類型表示數據庫對象包含一個Folder對象(但沒有去實現它).實現的效果可以類比Windows文件夾的效果---再深入一點,文件夾實際上是一個矩陣圖形類對象(筆者之前分析過),從效果上來說,相當于未實現的前端.

? ? ? ? 注意:每個表是單獨的數據文件,在使用mysql的一些IDE中,常常能看見"名稱.表名"格式的數據.例如"1.stu"---表示寫了一個stu類型的表,并命名為1的數據文件.如果按照該格式建立若干表,則表示有若干個數據文件.表和數據文件是一一對應關系.這點很方便操作,數據物理獨立性的表現.

? ? ? ? 2.屬性類型Attribute是一個"數據類型的類型",Java中有反射機制似乎能表達它,但C++沒有(筆者也不知道底層是怎么實現,所以是偽代碼).在<深入理解計算機系統>這本書中有提到,簡單想一想:底層有專門的區域來表示數據類型,用指針指向該區域(表示第一個類型),并計算每個類型占用空間,然后指針偏移所占空間的大小,指向下一個類型(第二個類型)---底層都是二進制數,支持指針

? ? ? ? 回到前面的問題:數據庫的數據結構是什么?類似于高度為3的一棵樹.為什么高度是3,設計成4可不可以?對應著圖2-1把"表空間"單獨列為1層.(這段屬于筆者個人看法,有待商榷)

=============================內容分割線↓===================================

? ? ? ? 目前為止,和樹相關的幾種數據結構:1文件樹(Linux),2對象樹(Qt),3身份證和4數據庫的樹.

????????這些數據結構有一些區別:3和4并不算"樹".只是他們的樣子長得像樹.其中身份證的數據結構歸于散列表,要先設計散列算法,根據算法設定了層高.

? ? ? ? 1,2是真正意義的"樹",他們支持遞歸(遞進).樹還有二叉樹,哈夫曼樹等數據結構.

? ? ? ? 3,4可稱為"類樹"(類似于樹的數據結構).3,4的數據結構有細微差別,筆者以后做個專題分析.

=============================內容分割線↑===================================

數據庫的三個指令

? ? ? ? 本書P43:

????????建立數據庫? ? ? ? CREATE DATABASE 數據庫名

? ? ? ? 選擇數據庫? ? ? ? ?USE 數據庫名

? ? ? ? 刪除數據庫? ? ? ? ? DROP?DATABASE 數據庫名

小結

? ? ? ? 數據庫數據結構的分析,數據庫定義和刪除的指令.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93664.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93664.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93664.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實變函數中集合E的邊界與其補集的邊界是否相等

在實變函數&#xff08;或一般拓撲學&#xff09;中&#xff0c;給定一個集合 E \subseteq \mathbb{R}^n &#xff08;或更一般的拓撲空間&#xff09;&#xff0c;集合 E 的邊界&#xff08;boundary&#xff09;與 E 的補集 E^c 的邊界是否相等&#xff1f; 即&#x…

# C++ 中的 `string_view` 和 `span`:現代安全視圖指南

C 中的 string_view 和 span&#xff1a;現代安全視圖指南 文章目錄C 中的 string_view 和 span&#xff1a;現代安全視圖指南目錄1. 原始指針的痛點1.1 安全問題1.2 所有權不明確1.3 接口笨拙1.4 生命周期問題2. string_view 深入解析2.1 基本特性2.2 高效解析示例2.3 防止常見…

Linux學習-多任務(線程)

定義輕量級進程&#xff0c;實現多任務并發&#xff0c;是操作系統任務調度最小單位&#xff08;進程是資源分配最小單位 &#xff09;。創建由進程創建&#xff0c;屬于進程內執行單元。- 獨立&#xff1a;線程有8M 獨立棧區 。 - 共享&#xff1a;與所屬進程及進程內其他線程…

高級堆結構

一、二項堆&#xff08;Binomial Heap&#xff09;&#xff1a;理解「合并操作」的優化二項堆的核心優勢是高效合并&#xff0c;類似 “二進制加法”。我們通過「合并兩個二項堆」的偽代碼和步驟來理解&#xff1a;核心結構偽代碼&#xff1a;class BinomialTreeNode:def __ini…

系統學習算法 專題十七 棧

題目一&#xff1a;算法思路&#xff1a;一開始還是暴力解法&#xff0c;即遍歷字符串&#xff0c;如果出現當前位置的字符等于后面的字符&#xff0c;則刪除這兩個字符&#xff0c;然后再從頭遍歷&#xff0c;如此循環即可但是這樣時間復雜度很高&#xff0c;每刪除一次就從頭…

深入解析函數指針及其數組、typedef關鍵字應用技巧

目錄 一、函數指針變量的創建 1、什么是函數指針變量&#xff1f; 2、函數是否有地址&#xff1f; 3、創建函數指針變量 4、函數指針類型解析 二、函數指針變量的使用 三、兩段有趣的代碼 1、解釋 (*(void (*)())0)(); 2、解釋 void (*signal(int, void(*)(int)))(int…

k8s集群搭建一主多從的jenkins集群

方案 --------------------- | Jenkins Master | | - 持久化配置 |<---(hostpath 存儲) | - 自動容災 | --------------------|| Jenkins JNLP 通信| ----------v---------- ------------------- | Jenkins Agent | | Kubernetes Pl…

重溫k8s基礎概念知識系列三(工作負載)

文章目錄1、工作負載簡述2、Deployment1.1、創建 Deployment1.2、檢查 Deployment上線狀態3、StatefulSet4、DaemonSet3.1、創建 DaemonSet3.2、運行DaemonSet5、Job5.1、運行示例 Job5.2、檢查 Job 的狀態6、CronJob上一節&#xff0c;我們復習了Pod相關知識&#xff0c;大多情…

開源 Arkts 鴻蒙應用 開發(十八)通訊--Ble低功耗藍牙服務器

文章的目的為了記錄使用Arkts 進行Harmony app 開發學習的經歷。本職為嵌入式軟件開發&#xff0c;公司安排開發app&#xff0c;臨時學習&#xff0c;完成app的開發。開發流程和要點有些記憶模糊&#xff0c;趕緊記錄&#xff0c;防止忘記。 相關鏈接&#xff1a; 開源 Arkts …

Go語言并發編程 ------ 鎖機制詳解

Go語言提供了豐富的同步原語來處理并發編程中的共享資源訪問問題。其中最基礎也最常用的就是互斥鎖&#xff08;Mutex&#xff09;和讀寫鎖&#xff08;RWMutex&#xff09;。1. sync.Mutex&#xff08;互斥鎖&#xff09;Mutex核心特性互斥性/排他性&#xff1a;同一時刻只有一…

8月17日星期天今日早報簡報微語報早讀

8月17日星期天&#xff0c;農歷閏六月廿四&#xff0c;早報#微語早讀。1、《南京照相館》領跑&#xff0c;2025年暑期檔電影總票房破95億&#xff1b;2、神舟二十號圓滿完成第三次出艙任務&#xff1b;3、宇樹G1人形機器人100米障礙賽再奪金牌&#xff1b;4、廣東佛山新增報告基…

在QML中使用Chart組件

目錄前言1. 如何安裝 Chart 組件2. 創建 QML 工程時的常見問題3. 解決方案&#xff1a;改用 QApplication QQuickView修改主函數&#xff08;main.cpp&#xff09;4. QApplication 與 QGuiApplication 的差異為什么 Qt Charts 需要 QApplication&#xff1f;總結示例下載前言 …

【P40 6-3】OpenCV Python——圖像融合(兩張相同屬性的圖片按比例疊加),addWeighted()

P40 6-3 文章目錄import cv2 import numpy as npback cv2.imread(./back.jpeg) smallcat cv2.imread(./smallcat1.jpeg)#只有兩張圖的屬性是一樣的才可以進行溶合 print(back.shape) print(smallcat.shape)result cv2.addWeighted(smallcat, 0.7, back, 0.3, 0) cv2.imshow(…

傳輸層協議 TCP(1)

傳輸層協議 TCP&#xff08;1&#xff09; TCP 協議 TCP 全稱為 “傳輸控制協議(Transmission Control Protocol”). 人如其名, 要對數據的傳輸進行一個詳細的控制; TCP 協議段格式 ? 源/目的端口號: 表示數據是從哪個進程來, 到哪個進程去; ? 32 位序號/32 位確認號: 后面詳…

黎陽之光:以動態感知與 AI 深度賦能,引領電力智慧化轉型新革命

當全球能源結構加速向清潔低碳轉型&#xff0c;新型電力系統建設成為國家戰略核心&#xff0c;電力行業正經歷從傳統運維向智慧化管理的深刻變革。2024 年《加快構建新型電力系統行動方案》明確提出&#xff0c;到 2027 年需建成全國智慧調度體系&#xff0c;實現新能源消納率突…

自動駕駛中的傳感器技術34——Lidar(9)

補盲lidar設計&#xff1a;機械式和半固態這里不再討論&#xff0c;這里主要針對全固態補盲Lidar進行討論1、系統架構設計采用Flash方案&#xff0c; 設計目標10m10%&#xff0c;實現30m距離的點云覆蓋&#xff0c;同時可以驗證不同FOV鏡頭的設計下&#xff0c;組合為多款產品。…

Originality AI:原創度和AI內容檢測工具

本文轉載自&#xff1a;Originality AI&#xff1a;原創度和AI內容檢測工具 - Hello123工具導航 ** 一、AI 內容誠信管理專家 Originality AI 是面向內容創作者的全棧式質量檢測平臺&#xff0c;整合 AI 內容識別、抄襲查驗、事實核查與可讀性分析四大核心功能&#xff0c;為…

OpenCV圖像平滑處理方法詳解

引言 在數字圖像處理中&#xff0c;圖像平滑是一項基礎而重要的預處理技術。它主要用于消除圖像中的噪聲、減少細節層次&#xff0c;為后續的圖像分析&#xff08;如邊緣檢測、目標識別等&#xff09;創造更好的條件。OpenCV作為最流行的計算機視覺庫之一&#xff0c;提供了多種…

每天兩道算法題:DAY1

題目一&#xff1a;金幣 題目一&#xff1a;金幣 1.題目來源&#xff1a; NOIP2015 普及組 T1&#xff0c;難度紅色&#xff0c;入門簽到題。 2.題目描述&#xff1a; 3.題目解析&#xff1a; 問題轉化&#xff1a;求下面的一個數組的前 k 項和。 4.算法原理&#xff1a; …

C++核心語言元素與構建塊全解析:從語法規范到高效設計

&#x1f4cc; 為什么需要雙維度學習C&#xff1f;核心語言元素 → 掌握標準語法規則&#xff08;避免未定義行為Undefined behavior&#xff09;構建塊&#xff08;Building Blocks&#xff09; → 像搭積木一樣組合功能&#xff08;提升工程能力&#xff09; 例如&#xff1a…