MySQL資料庫:5、創建表的完整語法、MySQL數據類型

来源:https://www.cnblogs.com/kangssssh/archive/2022/11/23/16919701.html
-Advertisement-
Play Games

一、創建表的完整語法 1、創建表的語法 create table 表名( ​ 欄位名1 欄位類型(數字) 約束條件, ​ 欄位名2 欄位類型(數字) 約束條件, ​ 欄位名3 欄位類型(數字) 約束條件,...) 2、創建表的條件 create table: 創建表的關鍵字 表名:表的名字 欄位名: ...


目錄

一、創建表的完整語法

1、創建表的語法

create table 表名(

​ 欄位名1 欄位類型(數字) 約束條件,

​ 欄位名2 欄位類型(數字) 約束條件,

​ 欄位名3 欄位類型(數字) 約束條件,...)

2、創建表的條件

  • create table: 創建表的關鍵字
  • 表名:表的名字
  • 欄位名:該列欄位的名字,例如Excel文檔里的序號、姓名、年齡等欄位
  • 欄位類型(數字):該欄位的字元類型,當類型為整型或者浮點型時可以不填(用於展示數字的長度),其他類型為:Bytes
  • 約束條件:可以是單個,也可以寫多個,空格隔開就可以,主要用於約束該欄位下的數據存儲條件

3、數字的含義

​ 在創建表的時候,欄位名後會加上數據的類型,而數據類型的後面又會加上數字,數字在很多地方都是用來限制儲存數據的長度,但是在整型中數字是用來控制展示的長度,因此在寫整型時,通常不用加數字

create table t12(id int(3));  不是用來限制長度
insert into t12 values(12345);

create table t13(id int(5) zerofill);  而是用來控制展示的長度
insert into t13 values(123),(123456789);

create table t14(id int);

二、MySQL數據類型

1、欄位類型之整型

整型的種類:

  • tinyint

    • 特點:最大可以儲存1個bytes(正負號占一個bit)
  • smallint

    • 特點:最大可以儲存2個biyts(正負號占一個bit)
  • int

    • 特點:最大可以儲存4個biyts(正負號占一個bit)
  • bigint

    • 特點:最大可以儲存8個biyts(正負號占一個bit)

​ MySQL中整型預設自帶正負號,正負號會占用一個bit,也就是說整型的最大值會受正負號影響,下麵可以通過添加數據的方式驗證正負號的存在

取消正負號:

​ 在創建表的階段,在整型類型後添加關鍵詞,就可以取消正負號

​ create table 表名(欄位名 整型的類型 unsigned);

2、欄位類型之浮點型

浮點型的種類:

  • float(m,d)
    • 特點:單精度浮點型 8位精度(4位元組) m總個數,d小數位
  • double(m,d)
    • 特點:雙精度浮點型 16位精度(8位元組) m總個數,d小數位
  • decimal(m,d)
    • 特點:DECIMAL是一種定點類型,即所有值都有一個固定的小數位數。這 一點的重要性在於DECIMAL值不會像浮點數那樣存在四捨五入的問題
    • M的取值範圍是1〜65,D的取值範圍是0〜30,且不超過M

3、欄位類型之字元類型

字元類型的種類:

  • char(n)
    • 特點:固定長度,最多255個字元
  • carchar(n)
    • 特點:可變長度,最多65535個字元

區別:

​ char(n) 固定長度,char(4)不管是存入幾個字元,都將占用4個位元組,varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),所以varchar(4),存入3個字元將占用4個位元組。

4、欄位類型之枚舉與集合

  • 枚舉(多選一)
    • 枚舉指在創建表的時候,指定的欄位名後可以填入枚舉類型,在關鍵詞後方括弧內,填入多個數據值,後期在往該欄位名下添加數據時,只能添加枚舉後括弧內多個數據值的其中一個,否則將會報錯
    • 關鍵詞:enum(數據值1, 數據值2,...)
枚舉:
	多選一
	create table t15(
    	id int,
      	name varchar(32),
       gender enum('male','female','others')
    );
 	insert into t15 values(1,'tony','猛男');
  	insert into t15 values(2,'jason','male');
 	insert into t15 values(3,'kevin','others');
  • 集合(多選多/多選一)
    • 集合和枚舉的功能相似,也是在定義欄位名階段,在欄位名後方添加集合關鍵詞,在括弧內填入多個數據值,在後期添加該欄位名的數據的時候,可以填入指定的一個或多個數據值,指定外的數據值無法添加
    • 關鍵詞:set(數據值1, 數據值2,...)
集合
	多選多/多選一
	create table t16(
    	id int,
      	name varchar(16),
       hobbies set('basketabll','football','doublecolorball')
    );
 	insert into t16 values(1,'jason','study');
 	insert into t16 values(2,'tony','doublecolorball');
	insert into t16 values(3,'kevin','doublecolorball,football');

5、欄位類型之日期類型

類型的種類:

datetime		年月日時分秒
date			年月日
time			時分秒
year			年

代碼用法:

create table t17(
	id int,
  	name varchar(32),
 	register_time datetime,
 	birthday date,
 	study_time time,
 	work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');

涉及到時間類型的一般無需我們手動添加,系統都會自動進行添加


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

-Advertisement-
Play Games
更多相關文章
  • 在使用 Linux 系統的過程中,我們經常需要查看系統、資源、網路、進程、用戶等方面的信息,查看這些信息的常用命令值得瞭解和熟悉。 ...
  • 痞子衡嵌入式半月刊: 第 67 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 ...
  • Python基礎之MySQL資料庫 一、約束概述 1、為什麼要約束 ​ 為了防止資料庫中存在不符合語義規定的數據和防止錯誤信息的輸入、輸出造成無效的操作而提出的 ​ 為了保證數據的完整性,SQL規範以約束的方式對錶數據進行額外的條件限制,從以下四個方面考慮 實體完整性:例如一個表中不能存在兩條相同的 ...
  • 摘要:DWS的負載管理分為兩層,第一層為cn的全局併發控制,第二層為資源池級別的併發控制。 本文分享自華為雲社區《GaussDB(DWS) 併發管控&記憶體管控》,作者: fighttingman。 1背景 這裡將併發管控和記憶體管控寫在一起,是因為記憶體管控實際是通過限制語句的併發達到記憶體管控的目的的。 ...
  • Pandas靈活強大,是數據分析必備工具庫!但處理大型數據集時,需過渡到PySpark才可以發揮並行計算的優勢。本文總結了Pandas與PySpark的核心功能代碼段,掌握即可絲滑切換。 ...
  • 學習思路: 1.需求是什麼? 2.方案是什麼? 3.邏輯是什麼? 4.開發中的問題?怎麼解決? 整體流量概況: 1.累計用戶量 2.每日新增用戶量 3.每日的訪問人數、次數 4.每日的全部訪問人均次數、時長和深度 5.計算用戶平均會話數 6.計算當日訪問IP數 7.新老用戶訪問占比 8.每日新老用戶 ...
  • 在進行對接數據時,經常會遇到對接的是介面數據。 關於在對接介面類型的數據,數據返回的為json數組形式的數據,需要講數組先解析出來,主要是通過 jsonpath 表達式 。 jsonpath 表達式 : 1、JSONPath是xpath在json的應用2、JSONPath 是參照xpath表達式來解 ...
  • 在實際使用時,必不可少地需要將多個文檔甚至是多個集合彙總到一起計算、分析,MongoDB 提供了原生聚合框架支持這樣的計算、分析。 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...