【轉載】MySQL隨筆

来源:https://www.cnblogs.com/the-silverwing/archive/2018/12/28/10191297.html
-Advertisement-
Play Games

配合食用:http://www.runoob.com/mysql/mysql-data-types.html 一.數據類型 1、整型 取值範圍如果加了 unsigned,則最大值翻倍,如 tinyint unsigned 的取值範圍為(0~256)。 int(m) 里的 m 是表示 SELECT 查 ...


配合食用:http://www.runoob.com/mysql/mysql-data-types.html

一.數據類型 

1、整型

MySQL數據類型 含義(有符號)
tinyint(m) 1個位元組  範圍(-128~127)
smallint(m) 2個位元組  範圍(-32768~32767)
mediumint(m) 3個位元組  範圍(-8388608~8388607)
int(m) 4個位元組  範圍(-2147483648~2147483647)
bigint(m) 8個位元組  範圍(+-9.22*10的18次方)

取值範圍如果加了 unsigned,則最大值翻倍,如 tinyint unsigned 的取值範圍為(0~256)。

int(m) 里的 m 是表示 SELECT 查詢結果集中的顯示寬度,並不影響實際的取值範圍,沒有影響到顯示的寬度,不知道這個 m 有什麼用。

2、浮點型(float 和 double)

MySQL數據類型 含義
float(m,d) 單精度浮點型    8位精度(4位元組)     m總個數,d小數位
double(m,d) 雙精度浮點型    16位精度(8位元組)    m總個數,d小數位

設一個欄位定義為 float(5,3),如果插入一個數 123.45678,實際資料庫里存的是 123.457,但總個數還以實際為準,即 6 位。

3、定點數

浮點型在資料庫中存放的是近似值,而定點類型在資料庫中存放的是精確值。

decimal(m,d) 參數 m<65 是總個數,d<30 且 d<m 是小數位。

4、字元串(char,varchar,_text)

MySQL數據類型 含義
char(n) 固定長度,最多255個字元
varchar(n) 可變長度,最多65535個字元
tinytext 可變長度,最多255個字元
text 可變長度,最多65535個字元
mediumtext 可變長度,最多2的24次方-1個字元
longtext 可變長度,最多2的32次方-1個字元

char 和 varchar:

  •  1.char(n) 若存入字元數小於n,則以空格補於其後,查詢之時再將空格去掉。所以 char 類型存儲的字元串末尾不能有空格,varchar 不限於此。
  •  2.char(n) 固定長度,char(4) 不管是存入幾個字元,都將占用 4 個位元組,varchar 是存入的實際字元數 +1 個位元組(n<=255)或2個位元組(n>255),所以 varchar(4),存入 3 個字元將占用 4 個位元組。
  •  3.char 類型的字元串檢索速度要比 varchar 類型的快。

varchar 和 text:

  •  1.varchar 可指定 n,text 不能指定,內部存儲 varchar 是存入的實際字元數 +1 個位元組(n<=255)或 2 個位元組(n>255),text 是實際字元數 +2 個位元組。
  •  2.text 類型不能有預設值。
  •  3.varchar 可直接創建索引,text 創建索引要指定前多少個字元。varchar 查詢速度快於 text, 在都創建索引的情況下,text 的索引似乎不起作用。

5.二進位數據(_Blob)

  •  1._BLOB和_text存儲方式不同,_TEXT以文本方式存儲,英文存儲區分大小寫,而_Blob是以二進位方式存儲,不分大小寫。
  •  2._BLOB存儲的數據只能整體讀出。
  •  3._TEXT可以指定字元集,_BLO不用指定字元集。

6.日期時間類型

MySQL數據類型 含義
date 日期 '2008-12-2'
time 時間 '12:25:36'
datetime 日期時間 '2008-12-2 22:06:44'
timestamp 自動存儲記錄修改時間

若定義一個欄位為timestamp,這個欄位里的時間數據會隨其他欄位修改的時候自動刷新,所以這個數據類型的欄位可以存放這條記錄最後被修改的時間。

數據類型的屬性

 

MySQL關鍵字 含義
NULL 數據列可包含NULL值
NOT NULL 數據列不允許包含NULL值
DEFAULT 預設值
PRIMARY KEY 主鍵
AUTO_INCREMENT 自動遞增,適用於整數類型
UNSIGNED 無符號
CHARACTER SET name 指定一個字元集

二.CRUD

創建資料庫

語法:CREATE DATABASE 資料庫名;

eg:

mysql> create DATABASE RUNOOB;

通過mysqladmin建立資料庫:

使用普通用戶,你可能需要特定的許可權來創建或者刪除 MySQL 資料庫。

所以我們這邊使用root用戶登錄,root用戶擁有最高許可權,可以使用 mysql mysqladmin 命令來創建資料庫

eg:

[root@host]# mysqladmin -u root -p create RUNOOB
Enter password:******

刪除資料庫

 語法:drop database <資料庫名>;

eg:

mysql> drop database RUNOOB;

 

使用 mysqladmin 刪除資料庫:

你也可以使用 mysql mysqladmin 命令在終端來執行刪除命令。

以下實例刪除資料庫 RUNOOB(該資料庫在前一章節已創建):

 eg:

[root@host]# mysqladmin -u root -p drop RUNOOB
Enter password:******

-------------待更新

 

MySQL 的 WHERE 子句的字元串比較是不區分大小寫的。 你可以使用 BINARY 關鍵字來設定 WHERE 子句的字元串比較是區分大小寫的。

如下實例:

BINARY 關鍵字

mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='runoob.com'; Empty set (0.01 sec) mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='RUNOOB.COM'; +--------------+----------------+--------------------+------------------------+ | runoob_id | runoob_title | runoob_author | submission_date | +--------------+----------------+--------------------+------------------------+ |        3        | JAVA 教程   | RUNOOB.COM | 2016-05-06        | |        4        | 學習 Python | RUNOOB.COM | 2016-03-06       | +--------------+----------------+--------------------+------------------------+ 2 rows in set (0.01 sec)

實例中使用了 BINARY 關鍵字,是區分大小寫的,所以 runoob_author='runoob.com' 的查詢條件是沒有數據的。

 


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

-Advertisement-
Play Games
更多相關文章
  • 在PostgreSQL官方文檔:https://www.postgresql.org/download/linux/redhat/ 有選項和說明 1、檢查有沒安裝:rpg -ga | grep postgresql 2、下載 從上述網址得到YUM地址,即在終端輸入:yum install https ...
  • rocksdb(https://rocksdb.org.cn/)是臉書(facebook)公司開源的一個key-value存儲引擎,基於leveldb開發。rocksdb使用的是LSM存儲引擎,純c++編寫。rocksdb具有很好的讀寫性能。但是rocksdb的實際操作需要很好的閱讀rocksdb ...
  • 非select命令 資料庫 1.創建 //create database 庫名 2.刪除 //drop database 庫名,... 2.重命名//exec sp_renamedb '庫名','新庫名' 表 1.創建 //create table 表名 (列名 類型,...) 2.刪除 //dro ...
  • --聲明變數,同時為變數賦值 declare @n int=10 print @n --單獨使用一條語句為變數複製 set @n=20 print @n select @n=30 print @n --通過set賦值與select複製的區別 select @n=COUNT(*) from Emplo... ...
  • 1、MongoDB介紹 1.1 什麼是MongoDB ? MongoDB 是由C++語言編寫的,是一個基於分散式文件存儲的開源資料庫系統。 在高負載的情況下,添加更多的節點,可以保證伺服器性能。 MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。 MongoDB 將數據存儲為一個文 ...
  • 正文 生產環境中有一實例每天使用mysqldump備份時長達到了2個小時53分鐘,接近3個小時,還不算上備份文件歸檔的時間,這個時間對於邏輯備份來說有點久。為了提高邏輯備份效率,打算替換為使用mydumper。 對比mysqldump,mydumper具有如下特點: 1. 多線程備份 2. 備份執行 ...
  • 正常切換切換前: 主庫:SQL> select DATABASE_ROLE from v$database;DATABASE_ROLE PRIMARY SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS f ...
  • SELECT子句:用來指定查詢返回欄位,星號(*)表示返回所有欄位 SELECT [DISTINCT]*|欄位列表 #DISTINCT 用來過濾重覆數據 FROM子句:用來指定數據來源的表 FROM <表名> WHERE子句:用來定義查詢返回數據的條件 WHERE 查詢條件 GROUP BY子句:用 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...