1. 程式人生 > >數據庫mysql的學習(三)

數據庫mysql的學習(三)

har 一個 磁盤 類別 name lec 不同的 自己的 一模一樣

刪除數據庫表

drop table [if exists] 表一,表二.....;

表分區:比如圖書信息表有1000萬個圖書信息,如何優化他,其中一種方式就是表分區。就是把一張表的數據分成多個區塊,這些區塊可以在同一個磁盤上,也可以在不同的磁盤上。

基本操作如下:

技術分享圖片

先創建bookinfo的表,然後分區“partition by range(xx)”就是通過xx來分區。

裏面分了三個區,p1,p2,p3.分別為20109999之前,20159999之前,和其他。

向表中插入數據“insert into xx values(xx,‘xx‘)”

技術分享圖片

查看每個分區的內容"select * from xx partition(xx)"

技術分享圖片

主鍵的概念:

表中的每一行都應該具有可以唯一標識自己的一列(或一組列)。而這個承擔標識作用的列稱為主鍵
如果沒有主鍵,數據的管理將會十分混亂。比如會存在多條一模一樣的記錄,刪除和修改特定行十分困難。

外鍵

通俗的說就是兩個表相關聯,連接這倆表的那個字段就是外鍵

約束

通過對表的行和列的數據做出限制,來確保數據的完整性和唯一性。

一般有非空約束,主鍵約束,唯一約束,默認約束,外鍵約束。

技術分享圖片

比如圖書編號和類別編號就要主鍵約束,類別編號就要外鍵約束,書名非空約束和唯一約束。

非空約束

表的創建默認為空(NULL),設為非空約束後,如果在添加數據時,沒有指定值,則會報錯。

在創建是設置。

也可以通過修改表的方法來來添加發非空約束。

技術分享圖片

這樣插入數據就會報錯

技術分享圖片

可以通過修改數據類型來改變約束

技術分享圖片

主鍵約束

要求主鍵列的數據唯一,並且不為空,能夠唯一標識表的一條記錄。

一張表最多一個主鍵約束

第一種創建 列名後加primary key

技術分享圖片

或者指定constraint xx primary key(xx)pk_id是自己定義的主鍵名稱。

技術分享圖片

通過修改也可以添加主鍵

1.alter table bookinfo2 add primary key(book_id);

2.alter table bookinfo2 modify book_id int primary key;

3.alter table bookinfo2 add constraint pk_id primary key(book_id);

刪除主鍵

直接alter table bookinfo2 drop primary key;

也可以有多字段聯合主鍵或叫復合主鍵

create table bookinfo2(
book_id int,
book_name char(20),
primary key(book_id,book_name)
);

唯一約束

方法和前面一樣 可以直接在列名後 加上unique 或者constraint uk_banme unique(xx)

修改添加的話

技術分享圖片

技術分享圖片

默認約束

技術分享圖片

技術分享圖片

技術分享圖片

外鍵約束

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

數據庫mysql的學習(三)