【MySQL】表操作

表操作
  • 一、創建表
    • 1、語句
    • 2、語句介紹
    • 3、注意事項
    • 4、介紹
    • 5、示例
  • 二、查看表結構
    • 1、語句
    • 2、介紹
    • 3、返回的信息
    • 4、示例
  • 三、添加字段
    • 1、語句
    • 2、語句介紹
    • 3、示例
  • 四、修改
    • 1、語句
    • 2、語句介紹
    • 3、示例
  • 五、刪除
    • 1、語句
    • 2、示例
  • 六、修改表名
    • 1、語句
    • 2、語句介紹
    • 3、示例
  • 七、刪除表
    • 1、語句
    • 2、示例
  • 八、注意事項

一、創建表

1、語句

CREATE TABLE 表名 (列名1 數據類型 [約束條件],列名2 數據類型 [約束條件],...[表選項]
);

2、語句介紹

  • CREATE TABLE:創建表的SQL命令。
  • 表名:表的名稱,必須是唯一的,并且符合MySQL的命名規則(通常只能包含字母、數字和下劃線,不能以數字開頭)。
  • 列名:表中的列(字段)名稱,每個列都有一個相應的數據類型和可選的約束條件。
  • 數據類型:定義列中數據的類型,如INT(整數)、VARCHAR(可變長度字符串)、DATE(日期)等。
  • 約束條件:可選的,用于限制列中的數據,如NOT NULL(非空)、UNIQUE(唯一)、PRIMARY KEY(主鍵)、FOREIGN KEY(外鍵)、AUTO_INCREMENT(自動遞增)等。
  • 表選項:可選的,用于設置表的附加屬性,如字符集、排序規則和存儲引擎等。

3、注意事項

  • 表名和列名盡量使用小寫字母和下劃線,以符合常見的命名規范。
  • 在設計表結構時,應充分考慮數據的完整性和一致性,合理使用約束條件。
  • 根據具體需求選擇合適的存儲引擎,例如InnoDB(默認)和MyISAM。

4、介紹

  • 在MySQL中,創建表(table)是數據庫設計和數據組織的基礎步驟之一。表是存儲結構化數據的主要方式,類似于Excel中的工作表或關系數據庫中的關系。
  • 默認情況下,使用InnoDB存儲引擎在默認數據庫中創建表。如果表存在、沒有默認數據庫或數據庫不存在,則會發生錯誤。
  • MySQL對表的數量沒有限制。底層文件系統可能對表示表的文件數量有限制。單個存儲引擎可能會施加特定于引擎的約束。InnoDB最多允許40億個表。

5、示例

在這里插入圖片描述
在這里插入圖片描述

二、查看表結構

1、語句

DESCRIBE table_name;
  • table_name是要查看的表的名稱。

2、介紹

  • 在MySQL中,DESCRIBE命令(或其簡寫形式DESC)是一個非常實用的工具,用于獲取有關數據庫表的詳細結構信息。該命令僅適用于表對象,不能用于視圖、存儲過程、函數等其他數據庫對象。

3、返回的信息

信息

說明

字段名稱(Field)

表的每一列的名稱

數據類型(Type)

每列中存儲數據的類型,例如INT、VARCHAR、DATE等

是否允許空值(Null)

指示每列是否允許存儲NULL值。

鍵(Key)

指示列是否為主鍵(PRI)、外鍵或索引的一部分。如果列是主鍵,則顯示為PRI;如果是索引的一部分,則可能顯示為MUL(表示該列在多個索引中出現)或其他相關標識

默認值(Default)

插入新行時,如果未指定列值,則使用默認值。如果列沒有默認值,則此列可能為空

附加信息(Extra)

有關列的其他信息,例如是否允許自動增量(auto_increment)、是否具有唯一性約束等

4、示例

在這里插入圖片描述

  • 添加數據

在這里插入圖片描述

三、添加字段

1、語句

ALTER TABLE table_name
ADD COLUMN column_name column_definition [FIRST | AFTER existing_column];

2、語句介紹

  • table_name:要修改的表的名稱。
  • column_name:要添加的新字段的名稱。
  • column_definition:新字段的定義,包括數據類型和其他約束(如 NOT NULL、DEFAULT 值等)。
  • FIRST:可選,表示將新字段添加到表的第一個位置。
  • AFTER existing_column:可選,表示將新字段添加到existing_column之后。

3、示例

在這里插入圖片描述

四、修改

1、語句

-- 使用 MODIFY COLUMN 修改字段定義
ALTER TABLE table_name
MODIFY COLUMN column_name new_column_definition [FIRST | AFTER existing_column];-- 使用 CHANGE COLUMN 修改字段名稱和定義
ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name new_column_definition [FIRST | AFTER existing_column];

2、語句介紹

  • MODIFY COLUMN 和 CHANGE COLUMN 子句都可以修改字段。
  • MODIFY COLUMN 可以改變字段的定義,但不能改變字段的名稱。
  • CHANGE COLUMN 可以改變字段的名稱和定義。

3、示例

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

五、刪除

1、語句

ALTER TABLE table_name
DROP COLUMN column_name;

2、示例

在這里插入圖片描述

六、修改表名

1、語句

RENAME TABLE old_table_name TO new_table_name;
ALTER TABLE old_table_name RENAME TO new_table_name;

2、語句介紹

  • old_table_name:要修改的表的當前名稱。
  • new_table_name:修改后的新名稱。
  • 上方兩條語句都能達到修改表名的目的。在使用ALTER TABLE的語句中,TO可以省略。

3、示例

在這里插入圖片描述

七、刪除表

1、語句

DROP TABLE table_name;

2、示例

在這里插入圖片描述

八、注意事項

  • 備份數據:在執行這些操作之前,最好備份這些數據,以防萬一操作出錯導致數據丟失。
  • 權限:確保執行這些操作的時候,執行者具有足夠的權限來修改表結構。
  • 兼容性:不同版本的MySQL可能對某些語法有不同的支持,確保使用的語法與使用的MySQL版本兼容。
  • 依賴關系:檢查是否有其他數據庫對象(如視圖、觸發器、存儲過程等)依賴于要修改的表名或要刪除的表。如果有,可能需要相應地更新或刪除這些依賴對象。
  • 事務處理:如果操作是在事務中進行的,請確保已了解這些操作對事務的影響。在某些情況下,RENAME TABLE 和 DROP TABLE 語句可能會隱式地提交當前事務。

本文到這里就結束了,如有錯誤或者不清楚的地方歡迎評論或者私信
本文只是在學習過程中所做的總結,不會涉及過深的概念
創作不易,如果覺得博主寫得不錯,請點贊、收藏加關注支持一下???

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

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

相關文章

[新聞.AI]國產大模型新突破:阿里開源 Qwen2.5-VL-32B 與 DeepSeek 升級 V3 模型

(本文借助 Deepseek-R1 協助生成) 在2025年3月24日至25日的短短24小時內,中國AI領域迎來兩大重磅開源更新:阿里通義千問團隊發布多模態大模型Qwen2.5-VL-32B-Instruct,而DeepSeek則推出編程能力大幅提升的DeepSeek-V3…

深入剖析C# List<T>的底層實現與性能奧秘

一、動態數組的本質:List的架構設計 在C#的集合類型體系中,List作為最常用的線性數據結構,其核心實現基于動態數組機制。與傳統數組不同,List通過智能的容量管理策略,在保持數組高速隨機訪問優勢的同時,突…

【單元測試】

一、框架 不同的編程語言有不同的測試框架,以下是一些常見的測試框架: 1)Java:JUnit、TestNG2)Python:unittest、pytest3)JavaScript:Jest、Mocha4)C#:NUni…

機器學習——XGBoost

XGBoost(極度梯度提升樹,eXtreme Gradient Boosting)是基于GBDT的優化模型,其最大特性在于對GBDT的損失函數展開到二階導數,使得其梯度提升樹模型更接近其真實損失 其XGBoost分類樹擬合和預測方法的基本思路為: 遍歷所有的樹&…

響應“一機兩用”政策 ,實現政務外網安全

在數字化辦公的浪潮下,企業與政務機構面臨著既要保障數據安全,又要高效訪問互聯網的雙重需求。“一機兩用”成為解決這一難題的關鍵。 政策驅動,需求迫切 隨著《網絡安全法》《數據安全法》等法律法規的相繼出臺,網絡安全防護的要…

【后端】【Django】Django DRF API 單元測試完整方案(基于 `TestCase`)

Django DRF API 單元測試完整方案(基于 TestCase) 一、方案概述 使用 django.test.TestCase 和 rest_framework.test.APIClient 進行 API 單元測試,確保 API 正確性、權限控制、數據返回格式、業務邏輯 等。 二、基本步驟 使用 setUp() 初始…

文生圖語義識別插件使用(controlnet)

1. 插件下載(github) https://github.com/Mikubill/sd-webui-controlnet https://github.com/lllyasviel/ControlNet2. 模型下載(hugging face) https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download https://huggingface.co/bdsqlsz/qinglong_controlnet-l…

學者觀察 | web3.0產業發展與技術融合——北京大學研究員肖臻

導語 肖臻老師認為在未來很長一段時間內,Web 3.0將和現在的Web 2.0共存。Web 3.0和人工智能(AI)的融合發展前景非常廣闊,Web 3.0致力于打造去中心化的互聯網生態系統,賦予用戶更大的數據所有權和控制權,而…

【模型壓縮+推理加速】知識蒸餾綜述解讀

知識蒸餾綜述解讀 論文: https://arxiv.org/abs/2006.05525 最近Deepseek R1的技術報告中,訓練部分提到使用了知識蒸餾,就像系統性的看看蒸餾算法的原理。看了很多的博客,很多都沒有詳細把知識蒸餾系統的講清楚。我們還是讀一下…

vivo 湖倉架構的性能提升之旅

作者:郭小龍 vivo互聯網 大數據高級研發工程師 導讀:本文整理自 vivo互聯網 大數據高級研發工程師 郭小龍 在 StarRocks 年度峰會上的分享,聚焦 vivo 大數據多維分析面臨的挑戰、StarRocks 落地方案及應用收益。 在 即席分析 場景&#xff0c…

代碼隨想錄算法訓練營第十四天| 226.翻轉二叉樹、101. 對稱二叉樹、104.二叉樹的最大深度、111.二叉樹的最小深度

今日題目 226.翻轉二叉樹 題目鏈接:226. 翻轉二叉樹 - 力扣(LeetCode) 思考:翻轉二叉樹,就是對每一個根節點,都交換左右節點,左右節點進入遞歸繼續交換它們的左右節點。 代碼: # De…

Java設計模式--單例模式

單例模式(構造器私有) 單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一,有以下特點: 單例類只能有一個實例。 單例類必須自己創建自己的唯一實例。 單例類必須給所有其他對象提供這一實例。 反射可以破壞單例模式…

2025年如何避免使用驗證碼求解器時被IP封禁

引言 2025年,驗證碼求解器已成為自動化網絡抓取和其他在線流程的關鍵工具。然而,自動化用戶面臨的一個常見挑戰是IP封禁。當網站檢測到自動化活動時,通常會阻止發出請求的IP地址,導致驗證碼挑戰無法解決。本文將探討使用驗證碼求…

JVM詳解(包括JVM內存模型與GC垃圾回收)

📖前言: 學會使用Java對于一個程序員是遠遠不夠的。Java語法的掌握只是一部分,另一部分就是需要掌握Java內部的工作原理,從編譯到運行,到底是誰在幫我們完成工作的? 接下來著重對Java虛擬機,也就…

【無標題】大亞灣文化體育場多美啊。

請推薦一些常用并且免費的,可直接在線運行【Python】代碼的平臺并列出對應網址 好的,用戶想讓我推薦一些常用且免費的、可以直接在線運行Python代碼的平臺,并且需要列出對應的網址。我需要先回想一下自己知道的在線Python運行環境&#xff0…

權限提升—Windows權限提升土豆家族溢出漏洞通殺全系

前言 OK,Java安全更新不下去了,實在是太難啦啊,想起來提權這一塊沒怎么更新過,接下來都主要是更新提權這一塊的文章了,Java安全的話以后有耐心再搞了。 手動提權 今天主要是講這個手動的提權,手動提權相…

Vue3 知識點總結

Vue3 知識點總結 1. 核心概念 1.1 Composition API 1.1.1 setup 函數 setup是Vue3中的新的配置項,是組件內使用Composition API的入口在setup中定義的變量和方法需要return才能在模板中使用setup執行時機在beforeCreate之前,this不可用 export defa…

python --face_recognition(人臉識別,檢測,特征提取,繪制鼻子,眼睛,嘴巴,眉毛)/活體檢測

dlib 安裝方法 之前博文 https://blog.csdn.net/weixin_44634704/article/details/141332644 環境: python3.8 opencv-python4.11.0.86 face_recognition1.3.0 dlib19.24.6人臉檢測 import cv2 import face_recognition# 讀取人臉圖片 img cv2.imread(r"C:\Users\123\…

【bug】[42000][1067] Invalid default value for ‘xxx_time‘

MySQL錯誤解決:Invalid default value for xxx_time’問題分析與修復方案 問題描述 在MySQL數據庫操作中,當嘗試創建或修改表結構時,可能會遇到以下錯誤信息: [bug] [42000][1067] Invalid default value for xxx_time這個錯誤…

Go環境相關理解

Linux上安裝的環境變量 ## set go env export GOPATH$HOME/go_workspace export GOPATH/usr/local/go export PATH$PATH:$GOPATH/bin go.mod 和go.sum的理解 go.mod文件 ?go.mod文件定義了模塊的路徑和依賴版本?。它遵循 語義化版本2.0.0規范,記錄了當前項目所依…