MySQL】從零開始了解數據庫開發 --- 表的操作

在這里插入圖片描述

永遠記住,你的存在是有意義的,
你很重要,
你是被愛著的,
而且你為這個世界帶來了無可取代的東西。
-- 麥克西 《男孩、鼴鼠、狐貍和馬》--

從零開始了解數據庫開發

  • 創建數據表
  • 查看表結構
  • 修改數據表結構
  • 重命名表
  • 復制表
  • 刪除表

今天我們來學習數據表的操作

創建數據表

創建數據表的語法:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name
[
(create_definition,...)
][table_options][select_statement]

說明:

  • TEMPORARY:表示創建的表是一個臨時表
  • IF NOT EXISTS:避免創建重復的表
  • create_definition:這是表的列屬性,MySQL要求創建表時至少存在一列
  • table_options:表的一些特性參數,其中大多數選項涉及的是表數據的存儲方式和儲存位置,比如ENGINE指定儲存引擎,多數情況下用戶無需指明表選項
  • select_statement:SELECT語句描述部分,用于快速創建表

接下來來看白屬性create_definition的具體格式:

col_name type[NOT NULL | NULL] [DEFAULT default_value][AUTO_INCREMENT][PRIMARY KEY][reference_definition]
  • col_name:列名稱
  • type:字段類型
  • NOT NULL | NULL :指出列是否允許為空值,系統一般默認允許為空值,所以當不允許為空值時,必須使用NOT NULL
  • DEFAULT default_value:表示列的默認值
  • AUTO_INCREMENT:表示是否自動編號,每個表只能有一個 AUTO_INCREMENT列,并且必須被索引
  • PRIMARY KEY:是否為主鍵,一個表只能有一個主鍵,如果表中沒有PRIMARY KEY ,而某些應用程序需要主鍵,那么MySQL將會返回第一個沒有任何NULL列的UNIQUE鍵作為主鍵
  • reference_definition:為字段添加注釋

查看表結構

對于一個創建成功的數據表可以使用

SHOW [FULL] COLUMNS FROM 數據表名 [FROM 數據庫名]
# 或者是
SHOW [FULL] COLUMNS FROM 數據庫名.數據表名

進行查看。同樣也可以選擇使用DESCRIBE語句查看數據表結構

DESCRIBE 數據表名 [列名]

修改數據表結構

修改表結構是指增加/修改/刪除字段,修改字段名/類型以及修改表名,這可以使用ALTER TABLE語句來實現,語法格式如下。

ALTER [IGNORE] TABLE 數據表名 alter_spec[,alter_spec]... | table_options

說明:

  • IGNORE:可選項,表示如果出現重復關鍵的行,則執行一行,其他重復的行被刪除。
  • 數據表名:用于指定要修改的數據表的名稱。
  • alter_spec:用于定義要修改的內容,其語法格式為
    ADD [COLUMN] col_name create_definition [FIRST | AFTER col_name]           -- 添加新列,可指定位置(FIRST表示第一列,AFTER表示在某列之后)
    ADD [COLUMN] ( col_name create_definition, ...)                              -- 同時添加多列
    ADD INDEX [index_name] (index_col_name, ...)                                    -- 添加普通索引
    ADD PRIMARY KEY (index_col_name, ...)                                          -- 添加主鍵
    ADD UNIQUE [INDEX] [index_name] (index_col_name, ...)                           -- 添加唯一索引
    ALTER [COLUMN] columnname {SET DEFAULT literal | DROP DEFAULT}               -- 修改列的默認值(設置或刪除)
    CHANGE [COLUMN] old_col_name new_column_name col_definition [FIRST | AFTER col_name]  -- 修改列名和列定義,可指定位置
    MODIFY [COLUMN] col_name col_definition [FIRST | AFTER col_name]      -- 修改列定義,可指定位置
    DROP [COLUMN] col_name                                                     -- 刪除指定列
    DROP PRIMARY KEY                                                             -- 刪除主鍵
    DROP INDEX index_name                                                         -- 刪除索引
    RENAME [TO] new_table_name                                                     -- 重命名表

重命名表

重命名表的語法為:

RENAME TABLE 數據表名1 to 數據表名2

修改數據表名的操作與修改數據庫名一樣,不建議使用,因為底層一旦修改啊,上層的所有業務都要進行修改,可能會造成意料之外的問題。

復制表

創建表的CREATE TABLE語句還有另一種語法結構:在一個已經存在的數據表的基礎上創建該表的備份,也就是復制表。這種語法的格式如下

CREATE TABLE [IF NOT EXISTS] 數據表名 , {LIKE 源數據表名 | (LIKE 源數據表名)}

該語句的功能是根據源數據表生成一個數據表。注意這個數據表只是復制結構,并沒有拷貝內容:
在這里插入圖片描述

如果要拷貝內容的話可以使用:

CREATE TABLE 數據表名 AS SELECT * from 源數據表

刪除表

刪除表的語法很簡單:

DROP TABLE [IF EXISTS]

實際使用時避免真正刪除數據表!

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

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

相關文章

MySQL底層架構設計原理詳細介紹

文章目錄一、MySQL體系結構概覽二、連接層(Connection Layer)1. 連接器(Connectors)2. 連接池(Conncction Pool)三、服務層(Server Layer)1. SQL接口組件(SQL Interface&…

QB/T 4674-2021 汽車內裝飾用聚氨酯束狀超細纖維合成革檢測

汽車內飾品聚氨酯束狀超細纖維合成革是指以海島型雙組份或多組分纖維加工成飛織造布,再經水性聚氨酯樹脂或溶劑型聚氨酯樹脂浸漬、濕法凝固、溶劑或堿液萃取及后整理等工藝制成的汽車內裝飾皮革。QB/T 4674-2021 汽車內裝飾用聚氨酯束狀超細纖維合成革檢測項目測試項…

QML和Qt Quick

QML和Qt Quick QML 和 Qt Quick 是 Qt 框架中緊密相關但概念不同的兩個部分,它們之間的關系可以用如下方式清晰說明: 核心區別概覽??特性????QML????Qt Quick????本質??聲明式編程??語言??基于 QML 的??框架/庫????作用??定…

JavaScript 結構型設計模式詳解

1. 代理模式1.1. 使用場景代理模式在不改變原始對象的前提下,通過代理對象控制對其訪問,通常用于權限控制、延遲加載、遠程調用等場景。在前端開發中,可以通過代理模式對網絡請求、緩存機制等進行控制。1.2. 代碼實現class ApiService {reque…

攝像頭模塊在運動相機中的特殊應用

運動相機作為記錄高速運動場景的專用設備,其攝像頭模塊的設計與普通消費電子產品存在顯著差異。根據行業資料和技術發展,攝像頭模塊在運動相機中的特殊應用主要體現在以下五個維度:一、極端環境適應性設計運動相機的攝像頭模塊針對戶外運動場…

SpringBoot + MinIO/S3 文件服務實現:FileService 接口與 FileServiceImpl 詳解

在企業項目中,文件上傳和管理是非常常見的需求。本文基于 芋道源碼 的實現,介紹如何封裝一個通用的 文件服務 FileService,支持:文件上傳(保存數據庫記錄 存儲文件到 S3/MinIO 等對象存儲)文件下載與刪除文…

Oracle RAC認證矩陣:規避風險的關鍵指南

RAC Certification Matrix(RAC認證矩陣) 是Oracle官方發布的硬件、軟件與操作系統兼容性清單,明確規定了哪些平臺、組件和版本可以正式支持Oracle RAC(Real Application Clusters)的部署。它是搭建或升級RAC環境時必須…

【自然語言處理與大模型】如何通過微調來agent性能?

雖然大模型本身具備一定的指令理解和工具調用潛力,但在實際應用中,尤其是在復雜或專業領域,往往需要通過微調來提升Agent的工具調用能力。問題一:基座模型無法準確識別或選擇特定領域的工具當Agent需要在醫療、金融、法律、工業控…

在 Keil 中將 STM32 工程下載到 RAM 進行調試運行

在 Keil 中將 STM32 工程下載到 RAM 進行調試運行 在使用 STM32 進行調試時,默認情況下代碼會被燒寫到 Flash 中運行。然而,Flash 寫入速度較慢,擦寫次數有限,且調試過程中頻繁燒寫可能影響開發效率。在某些場景下(如快…

【51單片機】【protues仿真】基于51單片機寵物投食系統

目錄 一、主要功能 二、使用步驟 三、硬件資源 四、軟件設計 五、實驗現象 一、主要功能 1、LCD1602液晶顯示時間、溫度、食物重量 2、按鍵手動投喂食物? 3、稱重模塊檢測當前食物重量 4、食物重量小于閾值會聲光警報并自動投喂 二、使用步驟 基于51單片機的寵物投食…

騰訊云負載均衡增加訪問策略后訪問失敗

為了測試,在負載均衡的安全組添加2條安全策略,限制辦公室內IP可訪問,其他IP地址拒絕所有訪問。結果,訪問失敗。經過反復測試,主要是js問價加載失敗,動態接口訪問代碼返回正常。再進行測試,發現去…

CSS的文本樣式

1.文本樣式的分類注意&#xff1a;必須先建立標簽&#xff0c;再在head中修改1.1字體樣式1.1.1字體顏色代碼演示<head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&g…

R語言讀取excel文件數據-解決na問題

文章目錄安裝R語言運行環境實現代碼遇到的問題總結安裝R語言運行環境 安裝教程連接, 包含國內鏡像快速下載 實現代碼 實現思路&#xff1a;使用python將文件的空字符的位置變成0&#xff0c;生成csv文件后交給R語言處理python實現代碼如下&#xff1a; import pandas as pd…

【Nginx 運維實戰】版本替換:強制 vs 平滑升級全解析

【Nginx 運維實戰】版本替換&#xff1a;強制 vs 平滑升級全解析一&#xff1a;版本替換的兩種思路二&#xff1a;使用場景對比三&#xff1a;實戰1&#xff09;強制替換1.備份舊版本2.替換為新版本3.**賦予執行權限**4.**重啟 Nginx**2&#xff09;平滑替換1.確認進程文件2.備…

MQ-消息隊列

定義 Mssage Queue&#xff1a;消息隊列。它是一種“先進先出”&#xff08;FIFO&#xff09;的數據結構&#xff0c;用于在分布式系統或應用程序之間進行異步通信。組成1. 生產者&#xff08;Producer&#xff09;定義&#xff1a;消息的發送方&#xff0c;負責將業務系…

NVIDIA驅動程序核心的“即時編譯器”(Just-in-Time, JIT Compiler)詳細介紹

我們來詳細、深入地剖析這個位于NVIDIA驅動程序核心的“即時編譯器”&#xff08;Just-in-Time, JIT Compiler&#xff09;。它堪稱CUDA生態系統成功的“幕后英雄”&#xff0c;是連接軟件穩定性和硬件飛速發展的關鍵橋梁。 第一部分&#xff1a;JIT編譯器的本質 首先&#xff…

【PS2025全網最新版】穩定版PS2025保姆級下載安裝詳細圖文教程(附安裝包)(Adobe Photoshop)

今天&#xff0c;給大家帶來PS2025的保姆級下載安裝圖文教程。 前言&#xff1a; Adobe Photoshop 作為業界領先的圖像處理與設計軟件&#xff0c;持續推動著數字創意領域的發展。其應用涵蓋平面設計、攝影后期、UI/UX 設計、影視特效等多個專業方向&#xff0c;為用戶提供強…

分享TWS充電倉方案開發設計

TWS耳機市場“卷”到最后&#xff0c;拼的早已不只是音質&#xff0c;而是續航、交互、體積、成本四位一體。傳統充電倉用多顆IC堆砌&#xff1a;升壓、電量計、霍爾、LED驅動、保護IC……BOM高、貼片復雜、調試周期長。8位MCU把上述功能“一鍋端”&#xff1a;單芯片即完成電源…

【Java實戰?】深入Java單元測試:JUnit 5實戰指南

目錄一、單元測試概述1.1 單元測試概念1.2 單元測試優勢1.3 JUnit 5 框架組成1.4 JUnit 5 環境搭建二、JUnit 5 核心功能實戰2.1 測試類與測試方法2.2 測試生命周期2.3 斷言方法2.4 異常測試三、單元測試進階實戰3.1 參數化測試3.2 測試套件3.3 Mockito 框架3.4 單元測試實戰案…

分布式微服務--ZooKeeper作為分布式鎖

看這篇博客之前可以先去了解博主的另一篇講解ZooKeeper的博客&#xff1a;分布式微服務--ZooKeeper的客戶端常用命令 & Java API 操作-CSDN博客 1. 為什么需要分布式鎖&#xff1f; 在分布式系統中&#xff0c;多個服務節點可能同時訪問或修改同一份共享資源&#xff08;例…