讀SQL學習指南(第3版)筆記02_數據類型

来源:https://www.cnblogs.com/lying7/archive/2023/08/22/17645936.html
-Advertisement-
Play Games

![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230821142549307-1962607264.png) # 1. 命令行工具 ## 1.1. mysql -u root -p; ## 1.2. mysql> show ...


1. 命令行工具

1.1. mysql -u root -p;

1.2. mysql> show databases;

1.3. mysql> use sakila;

Database changed

1.4. mysql> SELECT now();

1.4.1. now()是MySQL的內建函數

1.4.2. 返回當前日期和時間

1.5. mysql> SELECT now() FROM dual;

1.5.1. Oracle資料庫伺服器要求查詢語句中必須包含from子句

1.6. 只需要輸入quit;或exit;就可以返回Windows或UNIX shell

2. 數據類型

2.1. 字元集

2.1.1. 拉丁字母的語言

2.1.1.1. 單位元組字元集

2.1.1.2. 字元數量很少,只需要單位元組就能存儲每個字元

2.1.1.3. 之前版本的MySQL伺服器中,預設字元集是latin1

2.1.2. 多位元組字元集

2.1.2.1. 日語

2.1.2.2. 韓語

2.1.2.3. 多位元組來存儲每個字元

2.1.2.4. 版本8中改為了utf8mb4

2.1.3. mysql> SHOW CHARACTER SET;

2.1.4. 可以在同一個數據表記憶體儲不同的字元集數據

2.1.5. 為數據列指定非預設字元集,只需要在類型定義後加上系統支持的字元集名稱

2.1.5.1. varchar(20) character set latin1

2.1.6. 設置整個資料庫的預設字元集

2.1.6.1. create database european_sales character set latin1;

2.2. 字元型數據

2.2.1. 定長字元串

2.2.1.1. char類型

2.2.1.2. 使用空格向右填充

2.2.1.3. 並始終占用同樣數量的位元組

2.2.1.4. 最大長度為255位元組

2.2.1.5. 存儲的所有字元串長度都一樣時使用

2.2.2. 變長字元串

2.2.2.1. varchar類型

2.2.2.2. 不需要向右填充

2.2.2.3. 占用的位元組數不固定

2.2.2.4. 最大長度為65,535位元組

2.2.2.4.1. 64KB

2.2.2.5. 字元串長度各不相同時使用

2.2.3. Oracle

2.2.3.1. char類型

2.2.3.1.1. 最大長度為2000位元組

2.2.3.2. varchar2類型

2.2.3.2.1. 最大長度為4,000位元組

2.2.3.3. 更大的文檔,可以選擇clob類型

2.2.4. SQL Server

2.2.4.1. 最大長度為8,000位元組的char和varchar類型的數據

2.2.4.2. varchar(max)的列中存儲最大長度達2GB的數據

2.3. 文本數據

2.3.1. 需要存儲的數據超出了varchar類型的最大長度(64KB)

2.3.2. 如果所載入的數據超出了文本列類型的最大長度,會被截斷

2.3.3. 在載入時,文本列數據尾部的空格不會被刪除

2.3.4. 在對text類型的文本列進行排序或分組時,只使用前1,024位元組

2.3.4.1. 該限制量可以根據需要增加

2.3.5. tinytext

2.3.5.1. 最大255位元組

2.3.6. text

2.3.6.1. 最大65535位元組

2.3.7. 一般情況下沒有什麼必要再使用tinytext或text類型了

2.3.8. mediumtext

2.3.8.1. 最大16777215位元組

2.3.9. longtext

2.3.9.1. 最大4294967295位元組

2.3.10. 存儲文檔

2.4. 數值型數據

2.4.1. 布爾型

2.4.1.1. 0表示false

2.4.1.2. 1表示true

2.4.2. 從1位元組(tinyint)到8位元組(bigint)

2.4.3. 最常用的是存儲整數的數值類型

2.4.3.1. 定義為unsigned,通知伺服器該列中存儲的所有數據均大於或等於0

2.4.4. 如果為浮點數類型的列指定了精度和有效位,記住,超出有效位和/或精度的數據會被四捨五入

2.4.4.1. 定義為unsigned,但這隻表示禁止列中存儲負數,並不會改變該列所存儲數據的取值範圍

2.4.5. 高精度的科學或製造業數據往往需要精確到小數點後8位

2.5. 時間型(temporal)數據

2.5.1. datetime、timestamp和time類型也允許包含小數點後面最多有6位數字的秒數(微秒)

2.5.1.1. 當使用這些數據類型定義列時,可以提供一個0~6的數字

2.5.2. datetime(2)表示允許時間精確到1/100秒

2.5.3. timestamp類型

2.5.3.1. 存放的信息與datetime類型一樣(包括年、月、日、時、分、秒)

2.5.3.2. 當行被添加到數據表或被修改時,MySQL伺服器會自動為timestamp類型的列填充當前的日期/時間

2.5.4. 只需要存放年份的列可以使用year類型

2.5.5. 存放完成某項任務所需時間的列可以使用time類型

2.5.5.1. 通過兩個datetime類型的列來獲取(一個存放任務開始的日期/時間,另一個存放任務結束的日期/時間),計算兩者的差值就可以得到所花費的時間

2.5.5.2. 使用單個time類型的列更簡單

2.5.6. Oracle Datebase接受的日期範圍是公元前4712年至公元9999年

2.5.7. MySQL其時間範圍是公元1000年至公元9999年

2.5.8. SQL Server則只能處理公元1753年至公元9999年

2.5.8.1. SQL Server 2008的datetime2數據類型,其日期範圍從公元1年至公元9999年

2.5.9. 如果存儲的是歷史日期,就需要註意了


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

-Advertisement-
Play Games
更多相關文章
  • ## 背景 ​ 我們寫博客難免需要大量圖片,如果把圖片一張張上傳到博客相冊再引用圖片鏈接,就很麻煩。所以需要一種手段,讓我們可以在本地寫完博客內容後,自動把博客引用的圖片傳到網上,併在網上發佈。 ​ 這時候就需要***dotnet-cnblog*** :博客園文章快捷發佈工具 ## 環境準備 ### ...
  • 整體統一前端框架,使用VUE重新寫,支持Windows模式和傳統菜單導航模式切換。整體框架支持租戶,全面支持雲端部署與應用。全新界面設計,提升用戶的易用性。 ...
  • Woa(Wechat Official Account)是一個基於.net 7開發的微信公眾平臺介面項目,利用Supabase作為數據存儲和消息通信服務,同時提供了ChatGPT和Claude2等目前熱門的生成式AI會話功能接入。 ...
  • # ansible、Ad-Hoc、YAML劇本 ## 1.簡介 ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量運行命令等功能。 ## 2.部署 1.dn ...
  • 哈嘍大家好,我是鹹魚 文章《[SELinux 導致 Keepalived 檢測腳本無法執行](https://mp.weixin.qq.com/s?__biz=MzkzNzI1MzE2Mw==&mid=2247486319&idx=1&sn=4932d10d7ad39d02d2536be1a70b1 ...
  • [toc] # 最小化安裝Linux系統初始化腳本 **註:此腳本適用於centos 7/8、Ubuntu1804,具體需要根據實際情況進行測試調整。** 此腳本包含的功能: 1. 允許 root 用戶使用 ssh 登錄 2. 關閉 selinux 3. 關閉防火牆 4. 設置 ps1 5. 設置默 ...
  • 多摩川協議理解-(1) 多摩川編碼器有絕對值的和增量的兩種,這邊主要是我對多摩川絕對值的理解。 前文, 多摩川編碼器其實是日本有一家公司叫多摩川的公司做出來的,其實他們家有很多種編碼器,但是這裡我只對他的們出的協議作出理解。 硬體介面方面,因為有單圈和多圈只分,多圈一般有電池,所以會多一個帶電池的。 ...
  • 為什麼需要設備驅動模型 內核版本發展 2.4版本之前內核沒有統一的設備驅動模型,但是可以用(例如先前的led字元設備驅動實驗,使用前需要手動調用mknod命令創建設備文件,從而進一步控制硬體)。 2.4~2.6版本內核使用devfs,掛載在/dev目錄。需要在內核驅動中創建設備文件(調用devfs_ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...