關於mysql建表問題?

時間 2021-05-31 17:02:00

1樓:

好啦好啦,我來幫你查

字符集(CHARACTER SET)和校對集(COLLATE

字符集:

可以設定伺服器預設字符集

資料庫預設字符集

表預設字符集

甚至到列缺省字符集

某個級別沒有指定,那麼繼承上級。

mysql4.1及其之後的版本,對字符集的支援分為四個層次:

伺服器(server),資料庫(database),資料表(table)和連線(connection):

character_set_server:這是設定伺服器使用的字符集

character_set_client :這是設定客戶端傳送查詢使用的字符集

character_set_connection :這是設定伺服器需要將收到的查詢串轉換成的字符集

character_set_results :這是設定伺服器要將結果資料轉換到的字符集,轉換後才傳送給客戶端

整個過程:

- client(如php程式)傳送乙個查詢;

- 伺服器收到查詢,將查詢串從character_set_client 轉換到character_set_connection,然後執行轉換後的查詢;

- 伺服器將結果資料轉換到character_set_results字符集後發送回客戶端。

1、告訴伺服器傳送的資料是什麼型別的。

character_set_client

2、告訴轉換器,轉換什麼編碼

character_set_connection

3、查詢結果用什麼編碼

character_set_results

如果三者都是字符集N

那麼可以簡寫為 set names N;

例如:客戶端字符集和連線字符集

【後面多圖,猛擊--> mysql 字符集(CHARACTER SET)和校對集(COLLATE)

---分割分割---

第二個表示可以為空,預設為空

如果是`user_id` int(11) NOT

NULL的話呢就是不能為空,必須設定預設值,比如0什麼的

---分割分割---

最後這個呢,是外來鍵

在MySQL 3.23.44版本後,InnoDB引擎型別的表支援了外來鍵約束。

外來鍵的使用條件:

1.兩個表必須是InnoDB表,MyISAM表暫時不支援外來鍵(據說以後的版本有可能支援,但至少目前不支援);

2.外來鍵列必須建立了索引,MySQL 4.1.2以後的版本在建立外來鍵時會自動建立索引,但如果在較早的版本則需要顯示建立;

3.外來鍵關係的兩個表的列必須是資料型別相似,也就是可以相互轉換型別的列,比如int和tinyint可以,而int和char則不可以;

外來鍵的好處:可以使得兩張表關聯,保證資料的一致性和實現一些級聯操作;

外來鍵的定義語法:

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)

REFERENCES tbl_name (index_col_name, ...)

[ON DELETE ]

[ON UPDATE ]

該語法可以在 CREATE TABLE 和 ALTER TABLE 時使用,如果不指定CONSTRAINT symbol,MYSQL會自動生成乙個名字。

ON DELETE、ON UPDATE表示事件觸發限制,可設引數:

RESTRICT(限制外表中的外來鍵改動)

CASCADE(跟隨外來鍵改動)

SET NULL(設空值)

SET DEFAULT(設預設值)

NO ACTION(無動作,預設的)

例子猛擊-->MYSQL外來鍵(Foreign Key)的使用

這樣需求mysql表如何建立

郭啟軍 長遠當然是,一張稱號表,一張角色表,一張角色和稱號的關聯表,這樣新增稱號的時候不用動ddl,只需要增加記錄,並且稱號表還可以放稱號相關的屬性,好擴充套件。用json陣列一時爽,擴充套件重構就知道有多難受了 Jian 這種情況一般有兩種做法 第一,簡單一點的話就在Role角色表增加tittle...

大量讀寫的mysql表怎麼優化?

混血王子 和我的業務類似,但是我沒你這麼大的量。我覺得redis的部分保留,水平分表應該不錯的,另外統計部分用中間表統計。還有就是提供你乙個思路,order用mongodb來存可能好點 已登出 從你的問題描述上看可以使用分庫設計。首先單庫在1千萬時出現效能障礙。我們假設1千萬是單機單庫的效能極限。可...

mysql表中列舉如何可以做到級聯?

cc void SQL 已經寫好,拿去用把,懷疑你是讓我給你做作業 建表 CREATE TABLE T CITYS ID bigint 20 unsigned NOTNULL AUTO INCREMENT COMMENT 主鍵,自增長 PROV NAME varchar 15 NOT NULL CO...