SQL DDL語句

来源:https://www.cnblogs.com/heyongshen/archive/2023/11/20/17843322.html
-Advertisement-
Play Games

Data Defination Language,數據定義語言。這類 SQL 語句用於定義或修改資料庫結構。主要的 DDL 操作包括 CREATE(創建新表或資料庫)、ALTER(修改現有資料庫對象的結構)和 DROP(刪除表、視圖或其他資料庫對象)。 表操作 創建表 CREATE TABLE 創建 ...


Data Defination Language,數據定義語言。這類 SQL 語句用於定義或修改資料庫結構。主要的 DDL 操作包括 CREATE(創建新表或資料庫)、ALTER(修改現有資料庫對象的結構)和 DROP(刪除表、視圖或其他資料庫對象)。

表操作

創建表 CREATE TABLE

創建數據表的時候,不但需要指定表名字和列名,還需要指定每列的數據類型以及其它的一些屬性信息。

語法格式:

CREATE TABLE TB_NAME (列名 屬性, ... ,列名 屬性)

數據類型

常見的數據類型有這些:

整型

1、 INT 或 INTEGER: 用於存儲整數

2、 SMALLINT: 較小範圍的整數

3、 BIGINT: 較大範圍的整數

4、 TINYINT: 非常小的整數,例如用於存儲年齡或天數


浮點型

1、 FLOAT: 浮點數,用於存儲帶小數的數值,精度較低

2、 DOUBLE: 雙精度浮點數,比 FLOAT 有更高的精度

3、 DECIMAL 或 NUMERIC: 定點數,用於存儲精確的數值,如貨幣

字元型

1、 char(n): 存儲的是一個固定長度的字元串,無論存儲的字元串長度是多少都會占用n個字元空間。

例如: 定義一個 char(10) 類型的欄位,無論存儲的字元串長度是多少,它都會占用 10 個字元的空間。


2、 varchar(n): 存儲的是一個可變長度的字元串,n表示字元串的最大長度

例如: varchar(100) 欄位存儲一個長度為 50 的字元串時,只會占用約 50 個字元的空間。


3、 nchar(n): 同樣也是存儲一個固定長度的字元串,但它用於存儲 Unicode 數據,n表示最大字元串的長度。占用的空間通常是 char 的兩倍,因為 Unicode 字元通常需要更多的存儲空間。n 表示字元串的最大長度。這裡的長度是指字元的數量,不是位元組的數量。


4、 nvarchar(n): 存儲的是一個可變長度的 Unicode 字元串。和nchar一樣,適用於多語言環境。n 表示字元串的最大可能字元數。

例如: 當數據包含多種語言,如英文、中文、日文和德文等,使用 nchar 或 nvarchar 是更好的選擇。這是因為這些數據類型專門設計用於存儲 Unicode 字元串,能夠有效地處理多種不同的字元集和國際化字元。


日期和時間

1、 DATE: 僅存儲日期

2、 TIME: 僅存儲時間

3、 DATETIME 或 TIMESTAMP: 存儲日期和時間


布爾型

1、 BOOLEAN: 存儲真(TRUE)或假(FALSE)值


二進位數據

1、BINARY(n): 存儲固定長度的二進位數據

2、 VARBINARY(n): 存儲可變長度的二進位數據

3、 BLOB: 二進位大對象,用於存儲大量的二進位數據,如圖片或音頻


枚舉和集合

1、 ENUM: 允許從預定義的值列表中選擇一個值

2、SET: 允許從預定義的值列表中選擇多個值


例如: 定義枚舉這種數據類型時,需要指定與定義的值

sex ENUM('M', 'F')

約束屬性

1、 主鍵:屬於表中某條記錄的唯一標識符,主鍵可以由一個欄位,也可以由多個欄位組成,分別成為單欄位主鍵或多欄位主鍵。主鍵使用 primary key 關鍵字指定。

2、 外鍵:用於建立兩個表之間的關聯關係。一個表中的外鍵指向另一個表的主鍵,建立外鍵的表為“從表”,外鍵依賴的表為“主表”。通過 foreign key 關鍵字指定外鍵。

3、 唯一性:用於確保列中的所有值都是唯一的。和主鍵的區別在於 唯一性的數值允許為空。 通過 UNIQUE 關鍵字指定。

其它屬性

1、 非空:用於確保列中的每條記錄都必須有一個值,通過 NOT NULL 關鍵字指定

2、 預設值:當插入記錄時,如果沒有為列提供值,將自動使用預設值。通過 DEFAULT 關鍵字指定。

3、 自動遞增:一般是結合主鍵使用的,適用於整數類型。通過 AUTO_INCREMENT 關鍵字可以指定某列值可以自動更新,預設起始值和自增都是1

例如: 創建一張表

CREATE TABLE students (
    ID int PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age TINYINT,
    sex ENUM('M', 'F')
);

刪除表 DROP TABLE

刪除一張表,只需要指定表的表名就可以了

DROP TABLE
    TABLE_NAME

修改表 ALTER TABLE

幾乎所有的資料庫管理系統(DBMS)都支持 ALTER TABLE 語句,這是用來修改已存在的表的結構的標準 SQL 命令。然而,具體的 ALTER TABLE 語句的語法和支持的操作確實在不同的 DBMS 之間有所差異。這些差異可能包括如何添加、刪除或修改列,如何更改數據類型,以及如何添加或修改約束等。


這裡以為常用的MySQL資料庫為例:


添加列

ALTER TABLE
    table_name
ADD
    column_name data_type;

刪除列

ALTER TABLE
    table_name
DROP COLUMN
    column_name;

修改列類型

ALTER TABLE
    table_name
ALTER COLUMN
    column_name new_data_type;

修改列名

命令修改列名時,需要重新指定該列的屬性,包括數據類型和任何其他屬性

ALTER TABLE
    table_name
CHANGE COLUMN
    old_column_name new_column_name column_definition;

庫操作

創建庫 CREATE DATABASE

CREATE DATABASE database_name;

雖然 CREATE DATABASE 是 SQL 的標準部分,不同的資料庫系統可能會在這個基本命令之上提供額外的選項和特性。

刪除庫 DROP DATABASE

DROP DATABASE database_name;

說明:

1、這個操作會永久刪除資料庫及其所有內容,這個操作是不可逆的

2、在 SQL 標準中,沒有專門的命令來修改已經存在的資料庫的屬性,如其名稱或其他設置。不同的資料庫管理系統(DBMS)可能提供了修改資料庫特定屬性的能力,但這些通常是特定於該系統的擴展,並不是 SQL 標準的一部分。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大家好,我是 Java 陳序員。許可權認證是我們日常開發繞不過的話題,這是因為我們的應用程式需要防護,防止被竄入和攻擊。 在 Java 後端開發中,實現許可權認證有很多種方案可以選擇,一個攔截器、過濾器也許就可以輕鬆搞定。當然,現在也有很多成熟的框架,供我們選擇。輕量的 Shiro,Spring 家族的 ...
  • TIM輸出比較(OC): 主要功能輸出PWM波形,PWM波形是驅動電機的必要條件,所以信息TIM輸出比較就等於學習PWM CNT:計數器,計數自增,CCR:捕獲比較寄存器,程式員給定的一個值 當CNT,大於、小於、大於CCR時,輸出就會置0,置1,置0....,一個不斷跳變的pwm的波形 每個高級定 ...
  • 在今天的學習中,我們簡要瞭解了Python的控制流程,特別是if-else判斷和迴圈操作。作為有著Java開發經驗的程式員,我們跳過了一些基礎概念,著重探討if判斷和迴圈的靈活運用。Python的縮進寫法和與Java的一些語法區別都是需要註意的地方。在編寫程式時,if嵌套和迴圈是基礎結構,而設計模式... ...
  • 教程簡介 本文將簡單描述視頻網站教程,視頻網站是一個類似於騰訊視頻一樣的網站,視頻資源用戶自己上傳,然後提供友好的界面查看視頻和搜索視頻,並且提供管理頁面對於視頻進行管理,我們將使用Blazor作為前端,並且由MasaFramework作為後端框架,一般情況下我們需要做簡單的許可權管理,對於用戶登錄我 ...
  • 數據持久化 PlayerPrefs相關 PlayerPrefs是Unity游戲引擎中的一個類,用於在游戲中存儲和訪問玩家的偏好設置和數據。它可以用來保存玩家的游戲進度、設置選項、最高分數等信息。PlayerPrefs將數據存儲在本地文件中,因此可以在游戲重新啟動時保持數據的持久性。 //Player ...
  • 什麼是SSR Blazor中的流式渲染結合了SSR(服務端渲染),服務端將HTML拼好返回給前端,有點像我們熟知的Razor Pages 或 MVC 。 當已經有了 Razor Pages 或 MVC 時,為什麼還要選擇使用 Blazor 來實現這一點?這裡有幾個原因。 首先,Razor Pages ...
  • 文章記錄了作者曲折的探索過程,最終成功將AMD cpu的Thinkbook 14p筆記本電腦從21h2版本更新到了23h2版本,而且系統的應用配置和數據基本沒變。 ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是IAR下手動拷貝自定義程式段到RAM中執行的方法。 在痞子衡舊文 《IAR下RT-Thread工程自定義函數段重定向失效分析》 里,我們知道 IAR 鏈接器處理自定義程式段重定向是有一些限制的,只要用戶重寫了底層 __low_level ...
一周排行
    -Advertisement-
    Play Games
  • 前言 微服務架構已經成為搭建高效、可擴展系統的關鍵技術之一,然而,現有許多微服務框架往往過於複雜,使得我們普通開發者難以快速上手並體驗到微服務帶了的便利。為瞭解決這一問題,於是作者精心打造了一款最接地氣的 .NET 微服務框架,幫助我們輕鬆構建和管理微服務應用。 本框架不僅支持 Consul 服務註 ...
  • 先看一下效果吧: 如果不會寫動畫或者懶得寫動畫,就直接交給Blend來做吧; 其實Blend操作起來很簡單,有點類似於在操作PS,我們只需要設置關鍵幀,滑鼠點來點去就可以了,Blend會自動幫我們生成我們想要的動畫效果. 第一步:要創建一個空的WPF項目 第二步:右鍵我們的項目,在最下方有一個,在B ...
  • Prism:框架介紹與安裝 什麼是Prism? Prism是一個用於在 WPF、Xamarin Form、Uno 平臺和 WinUI 中構建鬆散耦合、可維護和可測試的 XAML 應用程式框架 Github https://github.com/PrismLibrary/Prism NuGet htt ...
  • 在WPF中,屏幕上的所有內容,都是通過畫筆(Brush)畫上去的。如按鈕的背景色,邊框,文本框的前景和形狀填充。藉助畫筆,可以繪製頁面上的所有UI對象。不同畫筆具有不同類型的輸出( 如:某些畫筆使用純色繪製區域,其他畫筆使用漸變、圖案、圖像或繪圖)。 ...
  • 前言 嗨,大家好!推薦一個基於 .NET 8 的高併發微服務電商系統,涵蓋了商品、訂單、會員、服務、財務等50多種實用功能。 項目不僅使用了 .NET 8 的最新特性,還集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、 ...
  • 本文主要介紹攝像頭(相機)如何採集數據,用於類似攝像頭本地顯示軟體,以及流媒體數據傳輸場景如傳屏、視訊會議等。 攝像頭採集有多種方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),網上一些文章以及 ...
  • 前言 Seal-Report 是一款.NET 開源報表工具,擁有 1.4K Star。它提供了一個完整的框架,使用 C# 編寫,最新的版本採用的是 .NET 8.0 。 它能夠高效地從各種資料庫或 NoSQL 數據源生成日常報表,並支持執行複雜的報表任務。 其簡單易用的安裝過程和直觀的設計界面,我們 ...
  • 背景需求: 系統需要對接到XXX官方的API,但因此官方對接以及管理都十分嚴格。而本人部門的系統中包含諸多子系統,系統間為了穩定,程式間多數固定Token+特殊驗證進行調用,且後期還要提供給其他兄弟部門系統共同調用。 原則上:每套系統都必須單獨接入到官方,但官方的接入複雜,還要官方指定機構認證的證書 ...
  • 本文介紹下電腦設備關機的情況下如何通過網路喚醒設備,之前電源S狀態 電腦Power電源狀態- 唐宋元明清2188 - 博客園 (cnblogs.com) 有介紹過遠程喚醒設備,後面這倆天瞭解多了點所以單獨加個隨筆 設備關機的情況下,使用網路喚醒的前提條件: 1. 被喚醒設備需要支持這WakeOnL ...
  • 前言 大家好,推薦一個.NET 8.0 為核心,結合前端 Vue 框架,實現了前後端完全分離的設計理念。它不僅提供了強大的基礎功能支持,如許可權管理、代碼生成器等,還通過採用主流技術和最佳實踐,顯著降低了開發難度,加快了項目交付速度。 如果你需要一個高效的開發解決方案,本框架能幫助大家輕鬆應對挑戰,實 ...