Mysql表基本操作

來源:互聯網
上載者:User

標籤:

一. 建立表的方法

文法:create table 表名(

屬性名稱資料類型完整約束條件,

屬性名稱資料類型條完整約束件,

。。。。。。。。。

屬性名稱資料類型

);

(1)舉例:
1 create table example0(2 id int,3 name varchar(20),4 sexboolean);

 

表的完整性條件約束
約束條件 說明
(1)primary key 標識該欄位為表的主鍵,
  (2) foreign key 標識該欄位為表的外鍵,與某主表相連繫
  (3) not null 標識該屬於的值不可為空
  (4) unique 標識這個屬性值是唯一
  (5) auto_increment 標識該屬性值的自動增加
  (6) default 為該屬性值設定預設值

 

 

 

 

 

 

 

 

 

1.1 設定表的主鍵

  主鍵是一個表的特殊欄位,這個欄位是唯一標識表中的每條資訊,主鍵和記錄的關係,跟人和身份證一樣。名字可以一樣,但是社會安全號碼碼絕對不會一樣,主鍵用來標識每個記錄,每個記錄的主索引值都不同。

  主鍵可以協助Mysql以最快的速度尋找到表中的每一條資訊,主鍵必須要滿足的條件那就是它的唯一性,表中的任意兩條記錄的主索引值,不能相同,否則就會出現主索引值衝突,主索引值不可為空,可以是單一的欄位,也可以是多個欄位的組合。

  主鍵衝突:
單主鍵情況:主鍵不能相同
多主鍵情況:表中有多主鍵時,只要主鍵不完全相同都是合格,只有當所有主鍵一模一樣時才會主鍵衝突

1 create table sxkj(2 User_id int primary key,3 user_name varchar(20),4 user_sexchar(7));
主鍵

 

 1.2 設定多個欄位做主鍵

1 舉例:2 create table sxkj2(3 user_id int,4 user_name float,5 grade float,6 primary key(user_id,user_name));
多主鍵

 

1.3 設定表的外鍵

  外鍵是表的一個特殊欄位,如果aa是B表的一個屬性且依賴於A表的主鍵,那麼A表被稱為父表,B表被稱為子表。

  文法:

  constraint 外鍵別名 foreign key(外鍵欄位1,外鍵欄位2) references 表名(關聯的主鍵欄位1,主鍵欄位2);

 

1.4 設定表的非空值

  文法:屬性名稱 資料類型  NOT NULL  

1 舉例:2 create table C(3 user_id int NOT NULL);

 

1.5 設定表的唯一性限制式

  唯一性指的就是所有記錄中該欄位不能重複出現

  文法:屬性名稱 資料類型 unique

1 舉例:2 create table D(3 user_id int unique);

 

1.6 設定表的屬性值自動增加

  Auto_increment是Mysql資料庫中特殊的約束條件,它的作用是向表中插入資料時自動產生唯一的ID,一個表只能有一個欄位使用auto_increment 約束,必須是唯一的。

  文法:屬性名稱 資料類型 auto_increment

  *預設欄位值從1開始自增。

1 舉例:2 create table F(3 user_id int primary key auto_increment);
1 插入一條空的資訊2 insert into F values();3 4 查看錶格F的內容5 select * from F;6 7 在結果中可以看到user_id為1

 

1.7 設定表的預設值

  在建立表時,可以指定表中的欄位的預設值,如果插入一條新的記錄時,沒有給這個欄位複製,那麼資料庫會自動的給這個欄位插入一個預設值,欄位的預設值用default來設定。

  文法:屬性名稱 資料類型 default 預設值

舉例:create table G(user_id int primry key auto_increment,user_name varchar(20) default ‘zero‘);向表中插入空資料:insert into G values();    //系統會預設第一欄位自增為1,第二欄位為預設值zero

 

二. 查看錶結構的方法

  Mysql  DESCRIBE可以查看那表的基本定義,包括、欄位名稱,欄位的資料類型,是否為主鍵以及預設值等。。

 

2.1 文法:describe 表名;可以縮寫為desc

舉例:

desc B;

 

2.2  show create table查詢表詳細的結構語句

 

三. 修改表的方法

     額外:修改表預設自增,從1000開始。

     alter table F auto_increment=1000;

 

3.1 修改表名

  文法:alter table 舊錶名 rename 新表名;

舉例;alter table A rename zyA;

 

3.2 修改表的資料類型

  文法:alter table 表名 modify 屬性名稱資料類型;

舉例;alter table A modify user_name double;

 

3.3 修改表的欄位名稱

  文法: alter table 表名 change 舊屬性名稱新屬性名稱新資料類型;

舉例:alter table A change user_name user_zyname float;

 

 3.4 修改增加欄位

  alter table 表名 ADD 屬性名稱1  資料類型 [完整性條件約束條件] [FIRST |AFTER 屬性名稱2]

增加沒有約束條件的欄位:
alter table A add phone varchar(20)
增加有完整約束條件的欄位:alter table A add age int(4) not null;

 

  在表的第一個位置增加欄位

  預設情況每次增加的欄位。都在表的最後。

alter table tt add num int(8) primary key first; 

 執行在那個位置插入新的欄位,在phone後面增加

alter table A add address varchar(30) not null after phone;

 

總結:

(1)預設add增加欄位是在最後面增加

(2)如果想在表的最前端增加欄位用first關鍵字

(3)如果想在某一個欄位後面增加的新的欄位,使用after關鍵字

 

3.5 刪除一個欄位

  alter table 表名 drop 屬性名稱;

舉例:刪除A表的age欄位alter table A drop age;

 

3.6 更改表的儲存引擎

  alter table 表名 engine=儲存引擎

alter table A engine=MYISAM

 

 3.7 刪除表的外鍵約束

  alter table 表名 drop foreign key 外鍵別名;

 

四.  刪除表的方法

4.1 刪除沒有被關聯的普通表

  drop table 表名;

 

4.2 刪除被其他表關聯的父表

  在資料庫中某些表之間建立了一些關聯關係。一些成為了父表,被其子表關聯,要刪除這些父表,就不是那麼簡單了。

  刪除方法:先刪除所關聯的子表的外鍵,再刪除主表。

  1.先用show create table 子表名 \G;查看子表的外鍵別名
  2.再alter table 子表名 drop foreign key 外鍵別名;刪除外鍵別名
  3.此時可以用drop table 父表名;刪除父表了

 

 

Mysql表基本操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.