MySQL表的管理 學習

2021-10-23 19:44:35 字數 3683 閱讀 9621

在之前的章節中,其實我們主要學習了如何去建立一張表,那在本節課程中,我們將要學習如何去管理一張表。

新增刪除表字段

語法:

新增字段

alter

table tb_name add 欄位名稱 字段屬性 [完整性約束條件]

[first(將某個欄位加到起始位置)|

after 欄位名稱]

刪除字段

alter

table tb_name drop 欄位名稱

示例:

新增

alter

table

user

add user_name varchar(60

)not

null

after id

刪除alter

table

user

drop email

動態新增刪除預設值

語法:

新增預設值:

alter

table tb_name alter 欄位名稱 set

default 預設值;

刪除預設值:

alter

table tb_name alter 欄位名稱 drop

default

示例:

-- 給email欄位新增預設值 0-未填寫

alter

table

user

alter email set

default

'0-未填寫'

;-- 刪除age欄位的預設值

alter

table user2

alter age drop

default

動態修改欄位的屬性和型別

語法:

修改字段型別,字段屬性

alter

table tb_name

modify 欄位名稱 字段型別 [字段屬性]

[first

|after 欄位名稱]

修改欄位名稱,字段型別,字段屬性

alter

table tb_name

change 原欄位名稱 新字段名稱 字段型別 字段屬性 [

first

|after 欄位名稱]

示例:

-- 修改字段型別,字段屬性

alter

table

user

modify username varchar20)

notnull

unique

-- 修改欄位名稱,字段型別,字段屬性

alter

table

user

change username user_name varchar(20

)not

null

動態新增和刪除主鍵
新增主鍵

alter

table tb_name add

primary

key(欄位名稱)

刪除主鍵

alter

table tb_name drop

primary

key;

示例:

-- 新增主鍵

alter

table

user

addprimary

key(id)

;-- 刪除主鍵

alter

table

user

drop

primary

key;

注意:如果對主鍵設定自增約束後,是不能直接刪除主鍵的,需要先刪除自增約束。

動態新增和刪除唯一約束

語法:

新增唯一

alter

table tb_name add

unique

key|

index

[index_name]

(欄位名稱);

刪除唯一

alter

table tb_name drop

index index_name;

注意:當我們想要刪除唯一約束的時候,需要借助唯一約束的名字,可以通過show create table tb_name語句檢視表的詳細資訊。當沒有給唯一欄位的約束起名字時,系統預設將欄位名設定為唯一字段索引名稱。

示例:

-- 新增唯一索引

alter

table

user

addunique

key(username)

;-- 或

alter

table

user

addunique

index uni_email(email)

;--uni_加欄位名稱

-- 刪除時則:

alter

table

user

drop

unique

index uni_email;

修改表名稱
修改資料表名稱:

alter

table tb_name rename[to

|as] new _tb_name

或rename

table tb_name to new_tb_name

示例:

alter

table

user

rename

to user666;

mysql 5.5之後預設使用innodb儲存引擎。

什麼是儲存引擎

「儲存引擎」從字面理解,「儲存」的意思的儲存資料。

「引擎」一詞**於發動機,它是發動機中的核心部分。在軟體工程領域,相似的稱呼有「遊戲引擎」、「搜尋引擎」,它們都是相應程式或系統的核心元件。

所以從這裡可以看出「儲存引擎」似乎也是資料庫的核心。儲存引擎是mysql有別於其他資料庫管理系統的最大特色,比如它的兄弟oracle中就沒有專門的儲存引擎的概念,我們知道關係型資料庫的資料是存在表裡的,可以將表理解為由行和列組成的**,類似於excel的電子**的形式,每個**就是乙個資料。

表是在儲存資料的同時,還要組織資料的儲存結構,而這些資料的組織結構就是由儲存引擎決定的。

但是,對於使用者和應用程式來說同一張表的資料,無論用什麼引擎來儲存,使用者看到的資料都是一樣的。不同的引擎訪問、引擎功能,占用的空間大小,讀取效能等可能有區別。

簡單來說,儲存引擎就是資料的儲存結構,由實際業務決定。

常用引擎

對於日常工作來說,常用的儲存引擎只有四種:預設的innodb、myisam和memory。

acid指的是:原子性(atomiocity)、一致性(consistency)、隔離性(isolation)、永續性(durability)。這也是mysql資料庫的特性

RABC許可權管理學習

rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...

記憶體管理學習筆記

1.棧 堆和靜態區 靜態區 儲存自動全域性變數和static變數 包括全域性靜態變數和區域性靜態變數 靜態區的內容在整個程式的生命週期內都存在。棧 儲存區域性變數。棧上的內容只在函式的範圍內存在,當函式執行結束,這些內容也會自動被銷毀。其特點是效率高,但是空間大小有限。堆 由malloc系列函式或n...

cocos記憶體管理學習

口訣 1.誰建立,誰釋放。通過new或者clone建立的物件,必須呼叫release或者autorelease。2.new,clone以外的方法建立的物件都被宣告了autorelease。3.誰retain,誰release。無論這個物件是如何生成的,只要呼叫了retain就要呼叫release。正...