05 mysql之DDL

一、SQL的四個分類

我們通常可以將 SQL 分為四類,分別是:
DDL(數據定義語言)、DML(數據操作語言)、 DCL(數據控制語言)和 TCL(事務控制語言)。

DDL 用于創建、刪除、修改數據庫結構(如表、索引、視圖等),核心語句createdropalter、truncate
DML 負責數據的插入、刪除、更新和查詢,核心語句insertdeleteupdate
DQL 負責從數據庫中檢索數據,是使用頻率最高的SQL類型,核心語句select
DCL 用于管理數據庫訪問權限和數據安全,核心語句grantrevoke

二、什么是 DDL?

DDL 是 SQL 的一部分,用于定義和管理數據庫的結構(模式)。主要命令包括:

  • CREATE:創建數據庫、表、視圖等對象
  • ALTER:修改現有數據庫對象
  • DROP:刪除數據庫對象
  • TRUNCATE:刪除表中的數據但保留結構

其中DROP是刪除數據庫,可以參考之前的文章。

三、創建數據庫

語句:CREATE DATABASE 數據庫名;

我們使用root登錄mysql,輸入CREATE DATABASE school_db;

一般來說,我們采用root創建數據庫,然后可以將其賦予別的用戶進行管理,我們把該數據庫賦給leo用戶權限?

GRANT ALL PRIVILEGES ON school_db.* TO 'leo'@'localhost';

四、創建表?

我們采用navicat對SQL語句進行演示,使用navicat登錄leo用戶,會看到有個school_db的數據庫

創建 MySQL 數據表的 SQL 通用語法:

CREATE TABLE table_name (column1 datatype,column2 datatype,...
);

參數說明:

  • table_name?是你要創建的表的名稱。
  • column1,?column2, ... 是表中的列名。
  • datatype?是每個列的數據類型。

下面是示例:

4.1 創建學生表

CREATE TABLE students (student_id INT PRIMARY KEY AUTO_INCREMENT,  -- 主鍵,自增student_name VARCHAR(50) NOT NULL,          -- 非空字段age INT CHECK (age > 0),                    -- 年齡必須大于0gender ENUM('M', 'F', 'Other') DEFAULT 'Other',  -- 枚舉類型birth DATE NOT NULL                         -- 生日
);

在學習這個鏈接上右鍵刷新,然后我們就可以看到建立的數據表了。?

4.2 創建老師表

在上個示例中,我們采用的是SQL語句創建的,我們還可以使用navicat通過界面進行創建

第一步:在表上右鍵,新建表

第二步:添加主鍵

第三步:保存表,右上角,保存:
?

輸入表名:Teachers,然后點保存
?

第四步:添加字段
通過添加字段按鈕,依次添加如下字段 ,其中工作年限設置為0

第五步:添加外鍵

外鍵用于在兩個表之間建立一對一、一對多或多對多的關系。例如,在老師表和學生表之間,老師表中的mentor_student_id字段可以作為外鍵,關聯到學生表中的student_id字段,從而實現老師和學生之間的關聯,老師表也稱為父表,學生表也成為子表。

五、修改表結構(ALTER)

添加一個新列到?students?表:?

ALTER TABLE students ADD COLUMN email VARCHAR(100) UNIQUE;

修改?teachers?表的?subject?列:

ALTER TABLE teachers MODIFY subject VARCHAR(60) NOT NULL;

六、刪除表?

6.1 刪除表(保留結構):

TRUNCATE TABLE students;  -- 清空數據但保留表結構

注意:因為在Teachers表中包含有students的外鍵,刪除是會出錯的,所以需要先去刪除Teachers的外鍵。

6.2 刪除表(結構和數據):

DROP TABLE teachers;

七、查看表結構

?使用?DESCRIBE?或?SHOW CREATE TABLE?查看表定義:

DESCRIBE students;
SHOW CREATE TABLE students;

八、navicat導出表結構

可以通過在表上右鍵->轉儲SQL文件,導出數據表的結構和數據
比如到處的數據表結構文件內容如下:里面清晰的定義了表的字段等詳細內容
?

?

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

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

相關文章

1 2 3 4 5順序插入,形成一個紅黑樹

紅黑樹的特性與優點 紅黑樹是一種自平衡的二叉搜索樹,通過額外的顏色標記和平衡性約束,確保樹的高度始終保持在 O(log n)。其核心特性如下: 每個節點要么是紅色,要么是黑色。根節點和葉子節點(NIL節點)是…

微服務6大拆分原則

微服務6大拆分原則 微服務拆分是指將一個大型應用程序拆分成獨立服務的過程,在微服務拆分時,需要考慮以下6大微服務拆分原則 一、單一職責原則 微服務單一職責原則,是指每個微服務應該專注于解決一個明確定義的業務領域或功能,…

java: Compilation failed: internal java compiler error 報錯解決方案

java: Compilation failed: internal java compiler error 報錯解決方案 如下圖所示: 在編譯的時候提示 java: Compilation failed: internal java compiler error 原因:內部 java 編譯錯誤,一般是編譯版本不匹配。 問題解決 項目中有以下設置JDK版本…

介紹一下ReentrantLock 跟 Synchronized 區別

ReentrantLock 跟 Synchronized 區別 面試回答: 相同點: synchronized 和 ReentrantLock 都是用來保護資源線程安全的。 都可以保證可見性。 synchronized 和 ReentrantLock 都擁有可重入的特點。 從基本語義和概念上說 synchronized: Java 內建的…

第7次課 棧A

課堂學習 棧(stack) 是一種遵循先入后出邏輯的線性數據結構。 我們可以將棧類比為桌面上的一摞盤子,如果想取出底部的盤子,則需要先將上面的盤子依次移走。我們將盤子替換為各種類型的元素(如整數、字符、對象等&…

ts裝飾器

TypeScript 裝飾器是一種特殊類型的聲明,能夠被附加到類聲明、方法、訪問符、屬性或參數上。它本質上是一個函數,會在運行時被調用,并且被裝飾的聲明信息會作為參數傳遞給裝飾器函數。 裝飾器的分類 類裝飾器 類裝飾器作用于類構造函數&…

【金倉數據庫征文】政府項目數據庫遷移:從MySQL 5.7到KingbaseES的蛻變之路

摘要:本文詳細闡述了政府項目中將 MySQL 5.7 數據庫遷移至 KingbaseES 的全過程,涵蓋遷移前的環境評估、數據梳理和工具準備,遷移實戰中的數據源與目標庫連接配置、遷移任務詳細設定、執行遷移與過程監控,以及遷移后的質量驗證、系…

VB與Excel無縫連接實現指南

一、前期準備 引用Excel對象庫: 在VB開發環境中,點擊"項目"→"引用" 勾選"Microsoft Excel XX.X Object Library"(XX.X代表版本號) 創建Excel應用程序對象: vb Dim xlApp As Excel.…

【MySQL】數據庫、數據表的基本操作

個人主頁:Guiat 歸屬專欄:MySQL 文章目錄 1. MySQL基礎命令1.1 連接MySQL1.2 基本命令概覽 2. 數據庫操作2.1 創建數據庫2.2 查看數據庫2.3 選擇數據庫2.4 修改數據庫2.5 刪除數據庫2.6 數據庫備份與恢復 3. 表操作基礎3.1 創建表3.2 查看表信息3.3 創建…

cursor sign in 網頁登錄成功,sursor軟件里一直登陸不成功沒有登陸信息

今天在使用cursor登陸無法登陸,點擊sigin in打開網址登陸成功后,軟件里一直無法顯示登陸信息。 點擊sigin in 在網址登陸成功后 解決辦法: 方法1.設置windows默認應用為chrome. 辦法2: 刪除代理 cursor上ctrl, 打開設置,找到…

深入理解卷積神經網絡的輸入層:數據的起點與預處理核心

內容摘要 本文圍繞卷積神經網絡輸入層展開,詳細介紹其在網絡中的重要作用,包括接收不同領域數據的形式及傳遞數據的過程。深入解讀數據預處理的關鍵操作,如去均值、歸一化和PCA/白化。助力讀者透徹理解輸入層,為構建高效卷積神經…

解決 MySQL 數據庫無法遠程連接的問題

在使用 MySQL 數據庫時,遇到這樣的問題: 本地可以連接 MySQL,但遠程機器連接時,總是報錯 Host ... is not allowed to connect to this MySQL server。 這通常是因為 MySQL 的用戶權限或配置限制了遠程訪問。 1. 登錄 MySQL 數據…

MCP認證全解析:從零到微軟認證專家

MCP認證全解析:從零到微軟認證專家 什么是MCP認證? Microsoft Certified Professional(MCP)是由微軟官方頒發的技術認證,旨在驗證IT從業者在微軟技術棧(如Azure、Windows Server、SQL Server等&#xff0…

驅動開發系列57 - Linux Graphics QXL顯卡驅動代碼分析(四)顯示區域更新

一:概述 前面在介紹了顯示模式設置(分辨率,刷新率)之后,本文繼續分析下,顯示區域的繪制,詳細看看虛擬機的畫面是如何由QXL顯卡繪制出來的。 二:相關數據結構介紹 struct qxl_moni…

遠程調用負載均衡LoadBalancer

1. 什么是負載均衡 負載均衡就是將負載(工作任務,訪問請求)進行分攤到多個操作單元(服務器,組件)上進行執行。 根據負載均衡發生位置的不同,一般分為服務端負載均衡和客戶端負載均衡。 服務端負載均衡:指的…

【深度學習】【目標檢測】【Ultralytics-YOLO系列】YOLOV3核心文件detect.py解讀

【深度學習】【目標檢測】【Ultralytics-YOLO系列】YOLOV3核心文件detect.py解讀 文章目錄 【深度學習】【目標檢測】【Ultralytics-YOLO系列】YOLOV3核心文件detect.py解讀前言if name ‘main’parse_opt函數main函數run函數不同命令參數的推理結果常規推理命令推理命令(新增…

NextPolish1.4.1 安裝與使用-bioinformatics tools54

01 簡介 NextPolish 是一個用于修正由低準確度長讀段(如 ONT 或 CLR)組裝出來的基因組序列中堿基錯誤(SNV/Indel)的工具。它支持: 僅使用短讀段 僅使用長讀段 同時使用短讀段與長讀段 NextPolish 包含兩個核心模塊…

Vue3 el-tree:全選時只返回父節點,半選只返回勾選中的節點(省-市區-縣-鎮-鄉-村-街道)

需求原因:全選時,傳給接口的code數據太多了; 如果加上 check-strictly 父節點與子節點無關聯,可以初步滿足需求 效果如下使用了check-strictly的話,tree就沒有了半選效果 不好的地方:用戶體驗感不好&#x…

使用 docker 安裝 nacos3.x

一、安裝 nacos 1.拉取鏡像 使用如下指令拉取鏡像 docker pull nacos/nacos-server 拉取完成后,可以使用以下命令查看是否拉取到對應的鏡像,默認拉取最新鏡像 docker images 2.新建掛載文件目錄 mkdir -p /home/ubuntu/nacos/conf/mkdir -p /home/…

高性能Python Web 框架--FastAPI 學習「基礎 → 進階 → 生產級」

以下是針對 FastAPI 的保姆級教程,包含核心概念、完整案例和關鍵注意事項,采用「基礎 → 進階 → 生產級」的三階段教學法: 一、FastAPI介紹 FastAPI 是一個現代化的、高性能的 Python Web 框架,專門用于構建 APIs(應…