Mysql表的簡單操作

🏝?專欄:Mysql_貓咪-9527的博客-CSDN博客
🌅主頁:貓咪-9527-CSDN博客?

“欲窮千里目,更上一層樓。會當凌絕頂,一覽眾山小。”

目錄

3.1 創建表

?3.2 查看表結構

3.3 修改表

1. 添加字段

2. 修改字段

3. 刪除字段

4.修改字段名

5. 修改表名

6.刪除表?

3.4?實踐案例:修改表


在數據庫中,表的操作主要包括表的創建、查看、修改、刪除等。了解如何操作這些表是數據庫管理和開發的基本技能。

3.1 創建表

創建表時,指定表的結構、數據類型、字符集、校驗規則和存儲引擎等。以下是創建表的詳細語法:

語法:

create table table_name (field1 datatype [constraint],field2 datatype [constraint],...
) [character set charset_name] [collate collation_name] [engine storage_engine];
  • field: 表示列名(字段名)

  • datatype: 列的數據類型(如 int、varchar、date 等)

  • constraint: 可選的約束條件(如 primary key、not null、unique 等)

  • character set: 字符集(可選,如果未指定,使用數據庫的默認字符集)

  • collate: 校驗規則(可選,如果未指定,使用數據庫的默認校驗規則)

  • engine: 存儲引擎(如 innodb、myisam 等)

注:括號[]里面可以省略,自定義寫或者不寫。

?

?查看表的創建信息:

show create table user;

其中被圈起來的就是我們沒有寫,默認被添加的。

示例:

create table user (id int primary key, name varchar(20) not null comment '用戶名', password char(32) not null comment '密碼是32位的md5值', birthday date comment '生日'
) character set utf8 collate utf8_general_ci engine=myisam;

作用:

  • 創建一個名為 users 的表,包含 idnamepasswordbirthday 字段。

  • 設置字符集為 utf8,校驗規則為 utf8_general_ci,存儲引擎使用 myisam

說明

  • primary key:定義主鍵,確保該字段唯一且不為空。

  • not null:字段不能為空。

  • comment:給字段加注釋,便于理解字段用途。

存儲引擎說明

不同存儲引擎具有不同的特性:

  • myisam:適用于讀取較多的場景,存儲和索引分離。

  • innodb:支持事務,行級鎖,外鍵約束,適用于高并發寫操作。

?3.2 查看表結構

語法:

desc 表名;

或者

show columns from table_name;
  • table_name: 表的名稱

使用規則:

  • describe: 顯示表的字段信息,包括字段名、數據類型、是否允許 null 值、鍵的類型(如 primary keyindex 等)及其他信息。

  • show columns: 和 describe 類似,但輸出格式可能略有不同。

示例:

describe user;

3.3 修改表

1. 添加字段

語法:

alter table table_name add column column_name datatype 
[constraint] [after existing_column];

注:mysql支持分段書寫指令?

  • table_name: 表的名稱

  • column_name: 新增字段的名稱

  • datatype: 字段的數據類型

  • constraint: 可選約束,指定列的規則,如 not nulldefault

  • existing_column: 如果指定,將字段添加到該字段之后

使用規則:

  • add column: 添加新字段時,可以指定新字段的默認值、約束條件以及字段的位置(是否放在已有字段后面)。

示例:

alter table user add assets varchar(100) comment '圖片路徑' after birthday;

作用:

  • users 表中添加名為 assets 的字段,用于保存圖片路徑,數據類型為 varchar(100),并放置在 birthday 字段后。

2. 修改字段

語法:

alter table table_name modify column column_name datatype [constraint];
  • column_name: 要修改的字段名稱

  • datatype: 新的數據類型

  • constraint: 可選約束

使用規則:

  • modify column: 修改現有字段的類型或約束條件。可以改變數據類型、長度、是否允許 null 等。

  • 修改字段時,字段位置不能更改。

示例:

alter table users modify name varchar(60) not null;

作用:

  • 修改 users 表中 name 字段的長度為 60,并設置為 not null。?

?

3. 刪除字段

語法:

alter table table_name drop column column_name;
  • column_name: 要刪除的字段名稱

使用規則:

  • drop column: 刪除字段時會丟失該字段的數據,操作前請確保備份。

示例:

drop table user drop asserts;

作用:

  • 刪除 user?表中的 asserts?字段。

4.修改字段名

語法:

alter table table_name change column old_column_name new_column_name datatype [constraint];
  • table_name: 表的名稱

  • old_column_name: 要修改的字段的原名稱

  • new_column_name: 修改后的字段名稱

  • datatype: 字段的數據類型(必須重新指定)

  • constraint: 可選的約束(如 not nullunique 等)

使用規則:

  • change column: 用于修改字段名稱,同時可以修改字段的數據類型和約束。修改時,必須提供字段的完整數據類型,即使只是修改名稱,也需要指定數據類型。

  • 注意:在修改字段名時,不能省略數據類型和原字段名稱。

示例:

alter table users change column name xingming varchar(60) not null;

作用:

  • users 表中的 name 字段重命名為 xingming,并將數據類型修改為 varchar(60),且字段不能為空(not null)。

5. 修改表名

語法:

alter table old_table_name rename to new_table_name;
  • old_table_name: 原表名

  • new_table_name: 新表名

使用規則:

  • rename to: 修改表名時,要保證新名稱沒有與現有表重名。

6.刪除表?

drop table [表名];

3.4?實踐案例:修改表

假設我們有一個 users 表,包含以下字段:idnamepasswordbirthday

1. 插入數據

insert into users (id, name, password, birthday) 
values (1, 'a', 'b', '1982-01-04'),(2, 'b', 'c', '1984-01-04');

2. 查看表結構

describe users;

3. 添加字段:添加 assets 字段,保存圖片路徑:

alter table users add assets varchar(100) comment '圖片路徑' after birthday;

4. 修改字段:修改 name 字段的長度:

alter table users modify name varchar(60);

5. 刪除字段:刪除 password 字段:

alter table users drop password;

6. 修改表名:將表名 users 改為 employee

alter table users rename to employee;

7. 最終查看表結構

describe employee;

注:?

  • 創建表:創建表時,確保字段類型、約束條件、字符集和存儲引擎的選擇合適。

  • 修改表:通過 alter table 命令,可以添加、刪除、修改字段,甚至修改表名。

  • 刪除表:使用 drop table 命令刪除表,操作時要格外小心。

  • 注意:所有的修改表結構的操作都會影響數據完整性,因此在進行這些操作時,務必先做好備份。

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

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

相關文章

【云馨AI-大模型】自動化部署Dify 1.1.2,無需科學上網,Linux環境輕松實現,附Docker離線安裝等

Dify介紹 官網:https://dify.ai/zh生成式 AI 應用創新引擎開源的 LLM 應用開發平臺。提供從 Agent 構建到 AI workflow 編排、RAG 檢索、模型管理等能力,輕松構建和運營生成式 AI 原生應用。 Dify安裝腳本 目錄創建 mkdir -p /data/yunxinai &&a…

WordPress上傳圖片時顯示“未提供數據”錯誤

在WordPress中上傳圖片時顯示“未提供數據”的錯誤,通常是由多種原因引起的,以下是一些常見的問題及其解決方法: 1. 文件權限問題 WordPress需要正確的文件和目錄權限才能正常上傳圖片。如果權限設置不正確,可能會導致無法上傳圖…

python3面試題20個(python web篇)

更多內容請見: python3案例和總結-專欄介紹和目錄 文章目錄 1.python asyncio的原理?2.對Flask藍圖(Blueprint)的理解?3.Flask 和 Django 路由映射的區別?4.什么是wsgi,uwsgi,uWSGI?5.Django、Flask、Tornado的對比?6.CORS 和 CSRF的區別?7.Session,Cookie,JWT的理解8.簡…

RedisTemplate和RedissonClient適用的場景有什么不同

在 Spring Boot 項目中,RedisTemplate 和 RedissonClient 分別針對不同的使用場景設計,以下是它們的核心區別和適用場景分析: 一、RedisTemplate(Spring Data Redis) 定位 Spring 官方提供的 Redis 操作工具&#xf…

人臉表情識別系統分享(基于深度學習+OpenCV+PyQt5)

最近終于把畢業大論文忙完了,眾所周知碩士大論文需要有三個工作點,表情識別領域的第三個工作點一般是做一個表情識別系統出來,如下圖所示。 這里分享一下這個表情識別系統: 采用 深度學習OpenCVPyQt5 構建,主要功能包…

GitHub供應鏈攻擊事件:Coinbase遭襲,218個倉庫暴露,CI/CD密鑰泄露

此次供應鏈攻擊涉及GitHub Action "tj-actions/changed-files",最初是針對Coinbase的一個開源項目的高度定向攻擊,隨后演變為范圍更廣的威脅。 攻擊過程與影響 Palo Alto Networks Unit 42在一份報告中指出:“攻擊載荷主要針對其…

Redis 核心源碼解析:從設計哲學到企業級應用實踐

一、Redis 的核心設計哲學 Redis 的成功源于其 「用內存換時間」 的核心理念,圍繞以下三個核心原則構建: 極簡主義:單線程模型避免鎖競爭,代碼保持高度內聚。 性能至上:所有數據常駐內存,網絡層采用事件驅…

GZCTF平臺搭建及題目上傳

前言 我用手里的Ubuntu虛擬機搭建的,大家根據自己的實際情況來吧 安裝及部署 首先,你的虛擬機需要有Docker和Docker-Compose,前者可以看我之前的文章,另外一個可以輸入下面的命令安裝,注意先獲取管理員權限&#xff…

Pycharm社區版創建Flask項目詳解

一、創建工程項目 二、配置工程目錄 新建的空項目下創建目錄。 1、新建app.py文件 2、app.py代碼如下: from flask import Flask, render_templateapp Flask(__name__)app.route("/") def root():"""主頁:return: Index.html"&qu…

CentOS 7 64位安裝Docker

以下是在已有的 CentOS 7 64 位虛擬機上安裝 Docker 并配置華為鏡像源的詳細步驟: 1. 備份原有 Yum 源(可選,建議操作) # 備份原有倉庫文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backu…

運動仿真——phased.Platform

在雷達仿真過程中,運動仿真的必要性,以及運動仿真可以實現哪些功能,在matlab對應的user guide中已經講的很清楚了,這里不再贅述。 本文主要介紹phased.Platform的一些“坑”,和典型的用法。 第一坑:系統對…

緩存刪除三級補償方案:延遲隊列+消息隊列+定時任務兜底

問題背景: 在 Cache-Aside 模式中,更新數據庫后刪除緩存失敗會導致數據不一致。本文提供工業級三級補償方案,實現最終一致性保障。 整體架構: 更新操作觸發 → 一級延遲隊列 → 二級消息隊列 → 三級定時任務方案實現: 一、第一級補償:延遲隊…

從零開始實現 C++ TinyWebServer 數據庫連接池 SqlConnectPool詳解

文章目錄 數據庫連接池是什么?Web Server 中為什么需要數據庫連接池?SqlConnectPool 成員變量實現 Init() 函數實現 ClosePool() 函數SqlConnectRAII 類SqlConnectPool 代碼SqlConnectPool 測試 從零開始實現 C TinyWebServer 項目總覽 項目源碼 數據庫連…

C++題目

1、內存管理 1.內存模型 棧:在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。 堆:就是那些由new分配的內存塊,其釋放由程序員控制(一個new對應一個delete&#xff09…

天地圖InfoWindow插入React自定義組件

截至2025年03月21日天地圖的Marker不支持添加Label; 同時Label和Icon是不支持自定義HTMLElement只支持String;目前只有InfoWindow支持自定義HTMLElement; 效果圖 React核心api import ReactDOM from react-dom/client const content document.createElement(div);…

Java并發編程面試匯總

Java并發編程 一、 基礎概念1. 進程與線程的區別是什么?2. 創建線程的幾種方式?3. 線程的生命周期(狀態)有哪些?4. 什么是守護線程(Daemon Thread)?5. 線程優先級(Priori…

【STM32】第一個工程的創建

目錄 1、獲取 KEIL5 安裝包2、開始安裝 KEIL52.1、 激活2.2、安裝DFP庫 3、工程創建4、搭建框架5、開始編寫代碼 1、獲取 KEIL5 安裝包 要想獲得 KEIL5 的安裝包,在百度里面搜索“KEIL5 下載”即可找到很多網友提供的下載文件,或者到 KEIL 的官網下載&a…

動態規劃~01背包問題

01背包問題 經典的0 - 1背包問題的解決方案。 二維數組的版本 代碼功能概述 0 - 1背包問題指的是有 n 個物品和一個容量為 m 的背包,每個物品有對應的體積 v[i] 和價值 w[i],需要從這些物品里挑選若干個放入背包,讓背包內物品的總價值達到最…

深入理解Java享元模式及其線程安全實踐

引言 在軟件系統中,當需要處理海量細粒度對象時,直接創建大量實例可能會導致內存消耗激增和性能下降。享元模式(Flyweight Pattern)通過共享對象內部狀態,成為解決這類問題的經典方案。然而在多線程環境下&#xff0c…

1、mysql基礎篇--概述

關系型數據庫(RDBMS) 概念特點:數據模型: 概念 建立在關系模型基礎上,有多張表相互連接的二維表組成的數據庫 特點: 1、使用表存儲,格式統一,便于維護 2、使用sql語言操作&#…