mysql 架構是系統架構 。它包含存儲 MySQL 服務器運行時所需信息的表。廣義的分類是, mysql模式包含存儲數據庫對象元數據的數據字典表,以及用于其他操作目的的系統表。
《三國志》數據庫各個表的實施過程掌握表結構管理。其中包含MySQL數據類型、如何創建表單、修改表結構、索引引用等内容。
MySQL數據類型數值類型(整數類型)
整數類型的數,默認情況下既可以表示正整數又可以表示負整數(此時稱為有符号數)。如果隻希望表示零和正整數,可以使用無符号關鍵字 unsigned 對整數類型進行修飾(此時稱為無符号整數)。
數值類型(小數類型)
decimal(length,precision)用于表示精度确定(小數點後數字的位數确定)的小數類型,length決定了該小數的最大位數,precision用于設置精度(小數點後數字的位數)。
例如:
字符串類型
字符串類型的數據外觀上使用單引号括起來,例如三國人物姓名 張飛、國家名稱 蜀國 等。
char()與varchar() 的區别
例如對于簡體中文字符集gbk的字符串而言,varchar(255)表示可以存儲255個漢字,而每個漢字占用兩個字節的存儲空間。假如這個字符串沒有那麼多漢字,例如僅僅包含一個‘中’字,那麼varchar(255)僅僅占用1個字符(兩個字節)的儲存空間;而char(255)則必須占用255個字符長度的存儲空間,哪怕裡面隻存儲一個漢字。
日期類型datetime 與 timestamp 都是日期和時間的混合類型,區别在于:表示的取值範圍不同,datetime 的取值範圍遠遠大于 timestamp 的取值範圍。将NULL插入timestamp字段後,該字段的值實際上是MySQL服務器當前的日期和時間。同一個timestamp類型的日期或時間,不同的時區,顯示結果不同。
複合類型(包括enum類型和set類型)MySQL支持兩種複合數據類型:enum枚舉類型和set集合類型。
二進制類型的字段主要用于存儲由 0 和 1 組成的字符串,因此從某種意義上将,二進制類型的數據是一種特殊格式的字符串。
二進制類型與字符串類型的區别在于:字符串類型的數據按字符為單位進行存儲,因此存在多種字符集、多種字符序;而二進制類型的數據按字節為單位進行存儲,僅存在二進制字符集binary。
選擇合适的數據類型選擇合适的數據類型,不僅可以節省儲存空間,還可以有效地提升數據的計算性能。
Createtable 表名(
字段名1數據類型 [約束條件],
…
[其他約束條件],[其他約束條件]
) 其他選項(例如存儲引擎、字符集等選項)
設置主鍵(PrimaryKey)約束
如果一個表的主鍵是單個字段,直接在該字段的數據類型或者其他約束條件後加上 primarykey 關鍵字,即可将該字段設置為主鍵約束。也可以是多個主鍵共同約束,設置為複合主鍵。
CREATE TABLE san_wujiang ( ...... primarykey 姓名);
CREATE TABLE san_wujiang ( ...... primarykey (姓名,性别));
設置自增型字段
默認情況下,MySQL自增型字段的值從1開始遞增,且步長為1。
CREATE TABLE san_wujiang (
`序号` int(11) NOT NULL AUTO_INCREMENT,
其他選項的設置
設置表的存儲引擎
CREATE TABLE san_wujiang (......) engine = 存儲引擎類型
設置該表的字符集
CREATE TABLE san_wujiang (......) default charset = 字符集類型
設置索引關鍵字的壓縮方式,可以通過設置 pack_keys 選項實現(注意僅對MyISAM存儲引擎的表有效)。
CREATE TABLE san_wujiang (......) pack_keys=壓縮類型
方法一,在create table語句的末尾添加like子句,可以将源表的表結構複制到新表中。
create table 新表名 like 源表
方法二,在create table語句的末尾添加一個select語句,可以實現表結構的複制,甚至可以将源表的表記錄拷貝到新表中。下面的語法格式将源表的表結構以及源表的所有記錄拷貝到新表中。
create table 新表名 select * from 源表
成熟的數據庫設計,數據庫的表結構一般不會發生變化。數據庫的表結構一旦發生變化,基于該表的視圖、觸發器、存儲過程将直接受到影響,甚至導緻應用程序的修改。
修改字段相關信息删除 姓名 字段。
alter table san_wujiang drop 姓名
添加 昵稱 新字段。
alter table san_wujiang add 昵稱 varchart(255)
修改表的 姓名 和 數據類型。
alter table san_wujiang change 姓名 新姓名 varchart(255)
僅對 姓名 字段的數據類型進行修改。
alter table san_wujiang modify 姓名 varchart(100)
添加約束條件
向表的某個字段添加約束條件的語法格式如下(其中約束類型可以是唯一性約束、主鍵約束及外鍵約束)。
alter table san_wujiang add constraint 約束名 primary key ('序号')
删除表的主鍵約束條件
alter table san_wujiang drop primary key
删除表的外鍵約束時,指定外鍵約束名稱
alter table san_wujiang drop foreign key 約束名
删除表字段的唯一性約束
實際上隻需删除該字段的唯一性索引即可。
alter table san_wujiang drop index 索引名;
修改引擎
alter table san_wujiang engine=innodb
修改字符集
alter table san_wujiang default charset=utf8mb4
修改起始值為1
alter table san_wujiang auto_increment=1
修改壓縮類型
alter table san_wujiang pack_keys=1
rename table san_wujiang to san_wujiang_new
alter table san_wujiang rename san_wujiang_new
如果表之間存在外鍵約束關系,此時需要注意删除表的順序。
drop table san_wujiang
創建數據庫表時,初學者通常僅僅關注該表有哪些字段、字段的數據類型及約束條件等信息,數據庫表中另一個重要的概念 索引 很容易被忽視。
什麼是索引想象一下現代漢語詞典的使用方法,理解索引的重要性。
索引的設計往往需要一定的技巧,掌握了這些技巧,可以确保索引能夠大幅地提升數據檢索效率,彌補索引在數據更新方面帶來的缺陷。
約束主要用于保證業務邏輯操作數據庫時數據的完整性;約束是邏輯層面的概念。 索引則是将關鍵字數據以某種數據結構的方式存儲到外存,用于提升數據的檢索性能;索引既有邏輯上的概念,更是一種物理存儲方式,且事實存在、需要耗費一定的儲存空間。
索引種類創建表的同時創建索引
create table 表名(字段名1 數據類型 [約束條件],
…[其他約束條件],…
[ unique | fulltext ] index [索引名] ( 字段名 [(長度)] [ asc | desc ] )
) engine=存儲引擎類型 default charset=字符集類型
使用姓名當作索引
CREATE TABLE san_wujiang (
'序号' CHAR ( 20 ) PRIMARY KEY,
'姓名' CHAR ( 100 ) NOT NULL,
UNIQUE INDEX name_index (
'姓名' ( 20 )),
FULLTEXT INDEX brief_fulltext ('姓名'),
) ENGINE = MyISAM DEFAULT charset = gbk;
在已有表上創建索引
create [ unique | fulltext ] index 索引名
on 表名 ( 字段名 [(長度)] [ asc | desc ] )
alter table 表名 add [ unique | fulltext ]
index index_name ( '姓名' [(varchar(20))] [ asc | desc ] )
drop index index_name on san_wujiang
問題1:如何創建一個劇本中需要的武将數據?
問題2:在新的劇本中如何創建我們自定義的武将?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!