DDL 資料表的建立

2021-08-08 22:50:41 字數 3437 閱讀 1654

-- ddl(*)(data definition language):資料定義語言,用來定義資料庫物件:庫、表、列等;

-- 運算元據表,資料表的建立

-- 切換資料庫

use mydatabase;

-- 刪除資料表

drop table test;

-- create table 表名 ( 屬性名 資料型別 [完整性約束條件],

-- 屬性名 資料型別 [完整性約束條件],

-- ) [字符集];

-- 建立資料表

create table test (

-- 主鍵(主鍵約束) primary key 唯一的約束該欄位裡面的資料,不能重複,不可為空

-- 自增 auto_increment 自增長字段必須是數字,且為鍵。一張表最多只能有乙個自增長 使用:不寫,null,default

id int primary key auto_increment ,

-- 自動生成唯一值

id serial,

-- 唯一性(唯一約束)unique/unique key 字段具有唯一性,資料不能重複

tname varchar(20) unique, -- varchar:可變長度字串型別

-- 非空約束 not null

tbirth date not null,-- date:日期型別,格式為:yyyy-mm-dd;

-- 浮點型:超出指定範圍,會丟失精度,自動四捨五入

-- 當插入資料時,整數部分是不能超過長度的,但小數部分可以,四捨五入。因為四捨五入二導致整數部分超出指定的長度,系統也執行成立

tsal double(5,2), -- double:雙精度浮點數,例如double(5,2)表示最多5位,其中必須有2位小數 8位元組

tcomm float(5,2), -- float:單精度浮點數,用法同double,不加括號表示沒有小數部分 4個位元組

-- 定點型:絕對的保證整數部分不會被四捨五入,不會丟失精度,理論上小數部分也不會丟失精度。

-- 整數部分不能超出長度,小數部分長度可以隨意超出,四捨五入。定點數長度溢位,是不會進製的,會報錯

tmoney decimal(5,2), -- decimal/dec(m,d):定點數型別,用法同浮點型,m+2個位元組

-- 日期與時間型別

ttime time, -- time:時間型別,格式為:hh:mm:ss

tdate date, -- date:日期型別,格式為:yyyy-mm-dd

tdatetime datetime, -- datetime:日期時間型別 yyyy-mm-dd hh:mm:ss

tyesr year(2), -- year: 年份型別, 格式為:yy year(2)或yyyy year(4)

tstamp timestamp, -- timestamp:時間戳型別 yyyy-mm-dd hh:mm:ss 會自動賦值

-- 字串型別

tchar char(20), -- char:定長字串,磁碟在定義結構的時候,就已經確定了最終資料的儲存長度

-- char(l)在utf8環境下,需要l*3=12個位元組 l最大為255

-- 定長的磁碟空間比較浪費,但效率高。如果資料基本上確定長度一樣,就使用定長

tvarchar varchar(20), -- varchar:變長字串,在分配空間的時候,按照最大的空間分配,但實際最終用了多少,是根據具體的資料來確定的

-- varchar(l) utf8環境下,大小為l*3+1(byte).理論長度是65536個字元,但會多出1~2個位元組來確定儲存的實際長度

-- 變長的磁碟空間比較節省,但效率低,如果資料不確定長度(不同資料有變化),就使用變長

ttext text, -- text:文字字串(儲存文字),如果資料量非常大,通常說超過了255個字元,就用文字字串

tblob blob, -- blob:文字字串(儲存二進位制資料)

-- 列舉:在進行資料規範的時候,系統會自動建立乙個數字和列舉元素的對應關係,放到日誌中

-- 再進行資料插入的時候,系統自動將字元轉換成物件的數字,提取資料的時候,自動將數值轉換為字串 編號從1開始

gender enum('男','女') default '男',

-- 集合字串:和列舉類似,實際儲存的是數字,不是字串。

tset set('男','女') default'男' -- 集合中的每乙個元素都對應乙個二進位制位,將他們反過來,就是對應的十進位制的數字。

-- default:預設值,在資料進行插入的時候,不給該字段賦值,直接使用default代替值

-- comment:專門用來描述字段,會根據表建立語句儲存。用來給程式猿進行了解的。

-- foreign key:外面的鍵,鍵不在自己表中。如果一張表中有乙個字段指向另外一張表的主鍵,那麼該欄位稱之為外來鍵

-- foreign key(外來鍵字段) references 外部表(主鍵字段)

-- foreign key (ttext) references tuser(id)

-- primary key(主鍵字段列表)來建立聯合主鍵。

)charset utf8;

-- 追加主鍵

-- alter table 表名 add primary key(字段列表)

alter table t2 add primary key (id);

-- 修改表字段屬性

-- alter table 表名 modify 欄位名 資料型別 primary key

alter table t2 modify id int primary key;

-- 刪除主鍵 (主鍵不可更新)

-- alter table 表名 drop primary key

alter table t2 drop primary key ;

-- 追加外來鍵

-- alter table 表名 add [constraint 外鍵名字] foreign key (外來鍵字段) references 父表(主鍵字段);

alter table t1 add constraint k_1 foreign key (uid)references test(id);

alter table t1 add foreign key (uid)references test(id);

-- 刪除外來鍵

-- alter table 表名 drop foreign key 外鍵名字

alter table t2 drop foreign key t_k;

-- 新建一張表t2,同時將另一張表的資料t1複製進去

create table t2 as select * from t1

建立資料表

語法 create table 表名 欄位名稱 字段型別 字段特徵 是否為null,預設值 標識列 主鍵 唯一鍵 外來鍵 check約束 欄位名稱 字段型別 字段特徵 是否為null,預設值 標識列 主鍵 唯一鍵 外來鍵 check約束 建立老師表teacher id name gender age...

建立資料表

class users models.model uphone models.charfield max length 20,verbose name 號碼 upwd models.charfield max length 20,verbose name 密碼 uemail models.email...

建立資料表

一 資料表 1 資料表 或表 是資料庫最重要的組成部分之一,是其他物件的基礎 2 表是乙個二維表,行稱為 記錄 列稱為 字段 二 建立資料表 1 首先開啟資料庫 資料庫要存在 show databases 檢視當前所有的資料庫 use 資料庫名稱 開啟指定資料庫 select databases 顯...