【MySQL】sql語句之表操作(上)

序言

?在上一篇的數據庫操作的內容中,學習了兩種屬性和常用的七種操作,學習是循序漸進的,庫的操作學完了,就要開始學習表的操作了,而表可與數據強相關,比如DDL,即數據定義語言,DML,即數據操縱語言,都是與表相關的,而其區別就在于一個是對表結構的操作,而另一個是對表內容的操作,因此表的操作的內容分為上下兩部分進行講解。鋪墊完畢,好了話不多說,開始今天的學習吧!

1.創建

create table (if not exists) [表名]([變量名1] [類型],[變量名2] [類型],[變量名3] [類型]
)(charset=[字符集],collate=[校驗集],engine=[存儲引擎]);

說明:

  • 第一個和第三個()的意思表示其中的內容可省略,第二個()的意思是表的結構都包含哪些類型,不可省略。
  • 請注意從開始的變量名到倒數第二個變量名,末尾都帶有,,但是最后一個變量名末尾不帶。
  • 字符集和校驗集只強調一點,如果沒有設置默認與所在的數據庫設置的對齊。而存儲引擎沒有設置跟MySQL默認的對齊。
  • 在MySQL中推薦使用此種類似結構體定義的寫法,可讀性較高,當然也可以采用一行的寫法,具體寫法則根據個人喜好來即可。

如下圖可得:我所在的MySQL下的默認的存儲引擎是InnoDB,通過下圖sql語句可進行查看。
在這里插入圖片描述


  • 給出一個示例:
    在這里插入圖片描述

簡要說明一下,此處的類型暫不做討論,留到后面的文章娓娓道來,而comment,簡單理解為給類型做注釋,便于用戶理解。


此時進入數據庫所在的目錄/var/lib/mysql/test_db查看一下創建一個表發生了什么,在前面的文章中提及過創建一個數據庫的本質就是創建一個目錄,創建一個表實際就是在創建文件,那具體創建了什么文件呢?

  • 如圖:
    在這里插入圖片描述

說明:

  • .sdi為后綴的文件中存放的表的結構。
  • .MYD為后綴的文件中存放的是表的數據。
  • MYI為后綴的文件中存放的是表的索引。

因此可以看出MyISAM采用的索引是一種非聚集索引,即數據和索引分開進行存儲。


與此同時,再創建一個InnoDB類型的表,再次查看此目錄下的文件與MyISAM進行比較看有什么不同,這里就省略不寫了,就是換一個表名,然后將最后的存儲引擎換成InnoDB。

  • 如圖:
    在這里插入圖片描述

相比之下,InnoDB創建的表雖然只建立了一個文件,但這個文件中包含了表的索引和所有數據,因此InnoDB采用的索引是聚集索引。


補充:

  1. MyISAM,MySQL5.5.8版本之前默認的存儲引擎,不支持事務,采用非聚集索引。
  2. InnoDB,MySQL數據庫5.5.8版本開始,默認的存儲引擎,支持事務,采用聚集索引。

2.查看

創建信息

show create table [表名];
#一般將末尾的;換成\G打印出來的效果更好。

在這里插入圖片描述

表結構

desc [表名];

在這里插入圖片描述
簡要說明一下,Field為字段名稱,Type為類型,Null為是否可以為控制,Key為是否為索引,Default為是否有默認值,Extra為額外信息。

3.修改

表的重命名

alter table [表名] rename to [新表名]#to可省略不寫

如圖:

在這里插入圖片描述

此處在修改表名其實就是在數據庫的目錄下將其文件的前綴改為usr

如圖:

在這里插入圖片描述

增加列

alter table [表名] add [列名] [類型];

如圖:

在這里插入圖片描述

修改列屬性

 alter table [表名] modiy [列名] [新屬性];

如圖:

在這里插入圖片描述

刪除列

alter table [表名] drop [列名];

如圖:

在這里插入圖片描述

補充一個小知識:進入MySQL內部的命令行之后,是不能直接執行系統命令的,如果要執行可在前面加上system,比如system ls;

3.備份和恢復

mysqldump -P [端口號] -u [用戶] -p [密碼] 數據庫 表名,表名,... > [文件].sql#注意:mysql內執行要在mysqldump前加system。

首先向此表中插入一些數據之后,然后進行備份。

如圖:

在這里插入圖片描述

接著將此表刪除之后,進行恢復。

source [指定目錄下的.sql文件];

如圖:

在這里插入圖片描述
說明:恢復數據的過程其實就是將創建表和插入數據的sql語句記錄下來,然后再執行一遍,這里Query OK的行有點冗余,為了避免截出來圖片過長,我默默P掉了一部分,嘿嘿不用感謝我。


最后從表中查看數據驗證結果。

在這里插入圖片描述

對比之后結果無誤,說明表恢復完畢。

尾序

今天學習了數據定義語言(DDL)中與表結構相關的操作,主要涉及創建,查看,修改,備份和恢復,當然還是一樣內容并不難,關鍵就在于一個熟練度,敲就完事了。我是舜華,期待與你的下次相遇!

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

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

相關文章

DVWA-XSS(Stored)

Low 觀察后端代碼,對輸入進行了一些過濾和轉義。trim(string,charlist) 函數用于移除字符串兩側的空白字符或其他預定義字符,charlist 參數可以規定從字符串中刪除哪些字符。stripslashes() 函數用于刪除反斜杠。mysqli_real_escape_string() 函數用于對…

SAAS系統架構設計剖析

多租戶數據隔離 用戶擔心數據安全性,也就是要做數據隔離,不允許 A 租戶查到 B 租戶的數據 1、軟隔離 數據在一起,只不過帶著租戶 id 查詢 在底層驅動 jar 上進行封裝,強制帶上租戶 id 比如:MySQL、MQ、Redis&#…

【論文精讀】DCRNN-擴散圖卷積循環神經網絡

DCRNN 模型是南加州大學的 Li 等人發表在 I C L R 2018 ICLR 2018 ICLR2018 會議上一個用于交通預測的時空預測模型,論文題目為: 《DIFFUSION CONVOLUTIONAL RECURRENT NEURAL NETWORK: DATA-DRIVEN TRAFFIC FORECASTING》,文章地址為: https://arxiv.org/abs/1707.01926。 …

vs中運行程序時,報不能運行解決方式

問題 在vs中編譯運行程序中,如果程序還在運行,編譯會報錯,但是在后臺又找不到對應的程序 解決方式 1、tasklist | find “進程名” 2、taskkill /PID

【實戰】kafka3.X kraft模式集群搭建

文章目錄 前言kafka2.0與3.x對比準備工作JDK安裝kafka安裝服務器增加hosts 修改Kraft協議配置文件格式化存儲目錄 啟動集群停止集群測試Kafka集群創建topic查看topic列表查看消息詳情生產消息消費消息查看消費者組查看消費者組列表 前言 相信很多同學都用過Kafka2.0吧&#xf…

二叉樹的鏡像--c++【做題記錄】

【問題描述】 給定擴展二叉樹的前序序列,構建二叉樹。 求這課二叉樹的鏡像,并輸出其前序遍歷序列。 【輸入形式】 輸入擴展二叉樹的前序序列。 【輸出形式】 輸出鏡像二叉樹的前序遍歷序列。 【樣例輸入】 ab##cd##e## 【樣例輸出】 鏡像后二叉樹的前序遍…

功能問題:如何防止接口重復請求?

大家好,我是大澈! 本文約 1400 字,整篇閱讀約需 3 分鐘。 防止接口重復請求在軟件開發中非常重要,重復請求必然會導致服務器資源的浪費。 因為每次請求都需要服務器進行處理,如果請求是重復的,那么服務…

乘船過河(ship)

合肥市第33屆信息學競賽(2016年) 題目描述 Description 卡卡西和小朋友們要乘船過河了,港口有很多條船可以租到,并且之間沒有區別,每條船的出租費用也是一樣的。但是一條船最多只能乘坐兩個人,且乘客的總…

STM32 IIC 使用 HAL 庫操作eeprom

在STM32上通過I2C接口(注意:在標準STM32庫中,I2C接口通常被寫為"I2C"而不是"IIC")與EEPROM芯片通信時,你需要遵循I2C通信協議,并使用STM32的HAL庫或標準外設庫(如果適用&am…

tomcat配置請求的最大參數個數和請求數據大小

maxParameterCount"10000" maxPostSize"10485760" maxParameterCount:單個請求最大請求參數個數; maxPostSize:單個請求最大數據大小,1048576010M;

基本算法——位運算

a^b 原題鏈接&#xff1a;登錄—專業IT筆試面試備考平臺_牛客網 題目描述 運行代碼 #include<iostream> using namespace std; long long a,b,c,t1; int main() {cin>>a>>b>>c;for(;b;b/2){if(b&1)tt*a%c;aa*a%c;}cout<<t%c; } 代碼思路…

汽車軟件 OTA技術解析

汽車軟件 OTA 技術概述 在當今汽車行業中,軟件定義汽車的概念逐漸深入人心。隨著汽車智能化和網聯化的發展,汽車軟件的重要性日益凸顯。而汽車軟件 OTA(Over-the-Air)技術作為一種重要的軟件升級和維護方式,正逐漸成為汽車行業的熱點話題。 汽車軟件 OTA 技術是指通過無線…

邏輯回歸及python實現

概述 logistic回歸是一種廣義線性回歸&#xff08;generalized linear model&#xff09;&#xff0c;因此與多重線性回歸分析有很多相同之處。它們的模型形式基本上相同&#xff0c;都具有 w‘xb&#xff0c;其中w和b是待求參數&#xff0c;其區別在于他們的因變量不同&#x…

App Inventor 2 復制屏幕功能,界面設計更便捷,避免誤刪組件

“復制屏幕”功能全新上線&#xff0c;中文網獨有&#xff08;MIT沒有此功能&#xff09;&#xff0c;可以復制屏幕中的普通組件、圖片、附件、拓展、代碼塊。更多升級詳情可查看發布日志。 下面演示一下屏幕的復制效果&#xff1a; 1、Screen1屏幕上有若干組件、及一個SQLit…

美業SaaS系統源碼分享-收銀管理的主要功能

美業SaaS系統 連鎖多門店美業收銀系統源碼 多門店管理 / 會員管理 / 預約管理 / 排班管理 / 商品管理 / 活動促銷 PC管理后臺、手機APP、iPad APP、微信小程序 ? 博弈美業-收銀管理功能 1、同時支持支付寶和微信支付&#xff0c;具有簡單便捷安全等優點&#xff0c;并且符…

MySQL之查詢性能優化(八)

查詢性能優化 MySQL查詢優化器的局限性 MySQL的萬能"嵌套循環"并不是對每種查詢都是最優的。不過還好&#xff0c;MySQL查詢優化器只對少部分查詢不適用&#xff0c;而且我們往往可以通過改寫查詢讓MySQL高效地完成工作。還有一個好消息&#xff0c;MySQL5.6版本正…

Java開發注意事項

注意&#xff1a;測試類中使用Autowired注解注入Bean&#xff0c;不要使用RequiredArgsConstructor注解注入Bean 正確示范: import org.springframework.boot.test.context.SpringBootTest; import org.springframework.beans.factory.annotation.Autowired;SpringBootTest c…

Ffmpeg安裝和簡單使用

Ffmpeg安裝 下載并解壓 進入官網 (https://ffmpeg.org/download.html)&#xff0c;選擇 Window 然后再打開的頁面中下滑找到 release builds&#xff0c;點擊 zip 文件下載 環境變量配置 下載好之后解壓&#xff0c;找到 bin 文件夾&#xff0c;里面有3個 .exe 文件 然后復制…

中國互聯網第一人的故事__許榕生的不平凡的經歷

中國互聯網第一人的故事&#xff3f;&#xff3f;許榕生的不平凡的經歷 目錄 零 高考之際談高考成功者 一 幸運的高考考生 二 抓住時機考研上岸 三 當年連接互聯網的經過 四 互聯網進入中國的緣由 五 互聯網一誕生就顯神威 六 互聯網強國之路&#xff0c;我們在路上 零…

優思學院|六西格瑪黑帶官方的報考條件是什么?

經常有人私信問我六西格瑪黑帶證書要如何取得&#xff0c;要學歷證明嗎&#xff1f;要帶項目嗎&#xff1f;要注冊嗎&#xff1f; 首先&#xff0c;直接一點說&#xff0c;和任何學科一樣&#xff0c;取得六西格瑪證書的方法主要是通過上課學習和考試。然而&#xff0c;關于六…