5 MySQL中的列屬性

2022-08-23 16:09:12 字數 3129 閱讀 6642

mysql中的列屬性

列屬性列屬性:真正約束欄位的是資料型別,但是資料型別的越是很單一,需要一些額外的屬性來約束資料的合法性

列屬性包括哪些?

null , notnull , default , primary key , auto_increment , comment

列描述列描述:comment 沒有實際意義,是專門用來描述欄位會根據表建立語句儲存,用來給資料庫管理員了解.

預設值預設值 : 某一種資料經常性出現某個具體的值,可以一開始就定義好,在需要真實資料的時候,使用者可以選擇性的使用預設值.

預設值關鍵字: default

如何使用預設值 :

在插入資料的時候,不給該字段賦值,想使用預設值可以不一定要去指定列表,故意不適用字段列表:可以使用default關鍵字來代替值.

intsert into my_table values ('老衲',18,default);

主鍵主鍵 : primary key 主要的鍵,一張表中只能有乙個字段可以使用對應的鍵,用來唯一的約束該欄位裡面的資料,不能重複 ,

一張表中只能有乙個主鍵,主鍵不能為空.

增加主鍵:

1,在建立表的時候,直接在字段之後新增primary key.

2,在建立表的時候,在所有字段之後,使primary key (主鍵字段列表)來建立主鍵(如果多個欄位做為主鍵,可以使用復合主鍵)

3,當表已將建立之後,再次額外追加主鍵,可以修改字段屬性,也可以直接追加

alter table 表名 modify 字段列表 primary key ;

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

主鍵前提: 表中字段對應的資料本身是獨立的(不重複)

主鍵約束:

主鍵對應得字段中的資料不允許重複,一旦重複,資料操作失敗

更新主鍵 & 刪除主鍵

不能更新主鍵,只能在刪除後才能新增主鍵

刪除主鍵

alter table 表名 drop primary key ;

主鍵分類

業務主鍵 : 在主鍵建立過程中,很少使用真實業務資料作為主鍵字段

邏輯主鍵 : 沒有業務含義,無論是什麼值都沒有關係 (id)

自動增長

自動增長 auto_increment :當對應的字段,不給值,或者預設為null的時候,會自動的被系統出發,系統會從當前欄位中已有的最大值進行+1操作,得到乙個新的不同的字段. 自增長通常是作為主鍵的.

特點:auto_increment

1,任何乙個欄位要做自增長前提是本身必須是乙個索引(key一欄的值)

2,自增長字段必須是數字必須是整型

3,一張表只能有乙個自增長字段

自增長為什麼是從1開始?為什麼每次都增長1?

所有系統的變數(如字符集,校對集)都是有系統變數控制的

檢視自增長對應的變數: show variables like 'auto_increment%';

auto _increment_offset 起始值

auto _increment_increment 步長

修改變數實現不同的效果:修改是對整個資料庫修改,而不是單張表(一般沒有必要修改)

修改自增長步長: set auto _increment_set = 5;

刪除自增長

alter table 表名 drop id int ;

注意在刪除的時候,不要加主鍵 primary key

唯一鍵一張表中很多字段需要具有唯一性,資料不能重複,但是一張表中只能有乙個主鍵.

唯一鍵(unique key) 就可以解決表中多個字段需要唯一性約束的問題

本質:唯一鍵預設允許為空,切可以多個為空(因為空字段不參與唯一性比較)

增加唯一鍵:

1.建立表的時候,可以在字段後面直接新增unique key 標示

2.在所有的字段之後增加unique key (字段列表),同樣支援復合唯一鍵

3.在建立表之後增加唯一鍵

alter table 表名 add unique key (欄位名);

唯一鍵約束:

可以為空,可以多個為空.如果唯一鍵not null那就和主鍵約束完全一致

更新唯一鍵 & 刪除唯一鍵

刪除:alter table 表名 drop index 索引名字;

--唯一鍵預設時候欄位名作為索引名.(刪除的是唯一鍵約束而不是字段)

索引幾乎所有的索引都建立在字段之上.

索引:系統根據某種演算法.將已有的資料(未來可能新增的資料),單獨建立乙個檔案,

檔案能夠實現快速匹配資料,並且能夠快速找到對應表中的記錄.

索引的意義:

1.提公升查詢的效率

2.約束資料的有效性(唯一性等)

增加索引的前提條件:

1.檔案本身會產生索引檔案(有時候索引檔案會表資料檔案大)占用空間

2.如果某個字段需要作為查詢的條件經常使用,那麼可以使用索引

3.如果某個字段需要進行資料有效性的約束,也可能使用索引

mysql中提供了多種索引

1.主鍵索引 : primary key

2.唯一索引 : unique key

3.全文索引 : fulltext index

4.普通索引 : index

全文索引:

針對文章內部的關鍵字進行索引

例 : 

1.新增primary key(主鍵索引) 

mysql>alter table `table_name` add primary key ( `column` ) 

2.新增unique(唯一索引) 

mysql>alter table `table_name` add unique ( `column`) 

3.新增index(普通索引) 

mysql>alter table `table_name` add index index_name ( `column` ) 

4.新增fulltext(全文索引) 

mysql>alter table `table_name` add fulltext ( `column`) 

5.新增多列索引 

mysql>alter table `table_name` add index index_name ( `column1`, `column2`, `column3` )

5 mysql中的庫操作

對資料庫的操作包括對資料庫的增 刪 改 查 接下來介紹一下基本的sql語句 建立資料庫 create database 資料庫名稱 字符集 charset utf8 create database czpdb charset urf8 czpdb 資料庫在磁碟中就是乙個資料夾,它下邊的db.opt檔...

5 Mysql效能分析

1.慢查詢日誌 2.檢視問題sql的執行計畫 3.優化慢sql 4.檢視慢sql執行時的效能使用情況 5.調整系統引數 6.提公升伺服器硬體1.引數,開啟sql sql set global slow query log on set global long query time 1 配置檔案 my...

5) MySQL插入資料

mysql insert語句允許您將一行或多行插入到表中。下面說明了insert語句的語法 insert into table column1,column2.values value1,value2,首先,在insert into子句之後,在括號內指定表名和逗號分隔列的列表。然後,將括號內的相應列...