資料庫基本操作
# 資料庫狀態
status; #簡寫 \s
show processlist;
- Id :該欄位表示當前會話的唯⼀識別符號,每個會話都有⼀個唯⼀的 ID。
- User :該欄位表示當前會話的⽤戶名。
- Host :該欄位表示當前會話的主機名或 IP 地址。
- db :該欄位表示當前會話正在使⽤的資料庫名,如果為 NULL,則表示當前未選擇任何資料庫。
- Command :該欄位表示當前會話正在執⾏的命令型別,如 Query、Sleep、Connect 等。
- Time :該欄位表示當前會話已經執⾏的時間,單位為秒。
- State :該欄位表示當前會話的狀態,如 starting、sending data、locked 等。
- Info :該欄位表示當前會話正在執⾏的 SQL 語句或其他資訊。
視覺化
int(11) VS int(21) 儲存空間,還是儲存範圍有區別?
答案是:兩者完全⼀樣,只是在顯示的時候補全0的位數不⼀樣。
括號中的數字並不表示儲存空間或儲存範圍的⼤⼩,⽽是⽤於指定顯示寬度,即在顯示查詢結果時,為了對
⻬和美觀,會在數字前⾯補上空格或 0,使得所有數字的顯示寬度都相同。因此, int(11) 和 int(21) 在
儲存空間和儲存範圍上沒有區別,只是在顯示的時候補全 0 的位數不同。
DECIMAL 定點數-更精確的數字型別
經驗之談
儲存性別、省份、型別等分類資訊時選擇TINYINT、char(1)或者ENUM
BIGINT儲存空間更⼤,INT和BIGINT之間通常選擇BIGINT
交易等⾼精度資料選擇使⽤DECIMAL
TEXT與CHAR和VARCHAR****的區別
CHAR和VARCHAR儲存單位為字元
TEXT儲存單位為位元組,總⼤⼩為65535位元組,約為64KB
CHAR資料型別最⼤為255字元
VARCHAR資料型別為變⻓儲存,可以超過255個字元
TEXT在MySQL內部⼤多儲存格式為溢位⻚,效率不如CHAR
欄位型別和時區的關係
MySQL****資料物件
MySQL****常⻅的資料物件有哪些**
DataBase/Schema
Table
Index
View/Trigger/Function/Procedure
庫、表、⾏層級關係
⼀個DataBase對應⼀個Schema
⼀個Schema包含⼀個或多個表
⼀個表⾥⾯包含⼀個或多個欄位
⼀個表⾥包含⼀條或多條記錄
⼀個表包含⼀個或多個索引
3.4.3 多DataBase⽤途
業務隔離
資源隔離
3.4.4****表上有哪些常⽤的資料物件
索引
約束
檢視、觸發器、函式、儲存過程
mysql****常⽤特殊命令
\h :顯示幫助資訊,包括所有可⽤的 MySQL 命令和特殊命令
\c :清除當前輸⼊的命令
\q :退出 MySQL 命令⾏⼯具。
\G :將查詢結果按列格式化,並以每⾏⼀個欄位的⽅式顯示。
\t:將查詢結果轉換為純⽂本格式。
\n:將查詢結果轉換為純⽂本格式,並在每⾏末尾新增換⾏符。
\d:設定語句分隔符
多表查詢
交叉連線, 不使⽤任何匹配條件
內連結
外連線
SELECT 欄位列表 FROM 表1 LEFT|RIGHT JOIN 表2 ON 表1.欄位 = 表2.欄位;
左連線和右連結
在實際應用中,選擇使用左連線還是右連線取決於您想要如何處理沒有匹配記錄的情況。如果您想要確保左表的所有記錄都能被包含在結果集中,即使右表中沒有匹配的記錄,您應該使用左連線。如果您想要確保右表的所有記錄都能被包含在結果集中,即使左表中沒有匹配的記錄,您應該使用右連線。
交叉連線, 不使⽤任何匹配
⼦查詢
⼦查詢是將⼀個查詢語句巢狀在另⼀個查詢語句中。
內層查詢語句的查詢結果,可以為外層查詢語句提供查詢條件。
⼦查詢中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS 等關鍵字還可以包含⽐較運算子:=
、 !=、> 、<等
代表運算子⼦查詢, 查詢年齡⼤於等於 25 歲員⼯所在部⻔(查詢⽼齡化的部⻔)
⼦查詢 EXISTS 關字鍵字表示存在。在使⽤ EXISTS 關鍵字時,內層查詢語句不返回查詢的記錄,⽽是返回⼀個真
假值。
#Ture 或 False,當返回 Ture 時,外層查詢語句將進⾏查詢;當返回值為 False 時,外層查詢語句不進⾏查詢
你們公司使⽤的mysql版本號?
5.7.3
mysql資料型別有哪些?
數值型別(整數、浮點數、定點數)、字串型別(字元、文字)、日期和時間型別等。以下是一些常見的資料型別: - 數值型別:TINYINT
、SMALLINT
、MEDIUMINT
、INT
、BIGINT
、FLOAT
、DOUBLE
、DECIMAL
等。 - 字串型別:CHAR
、VARCHAR
、TINYTEXT
、TEXT
、MEDIUMTEXT
、LONGTEXT
、ENUM
、SET
等。 - 日期和時間型別:DATE
、TIME
、DATETIME
、TIMESTAMP
、YEAR
你會使⽤哪些sql語句?增刪改查
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
- 刪(DELETE):用於刪除資料庫中的記錄。例如:
sql複製
DELETE FROM table_name WHERE some_condition;
- 改(UPDATE):用於更新資料庫中已有的記錄。例如:
sql複製
UPDATE table_name SET column1 = value1, column2 = value2 WHERE some_condition;
- 查(SELECT):用於從資料庫中檢索資料。例如:
sql複製
SELECT column1, column2, ... FROM table_name WHERE some_condition;