程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 《MySQL必知必會學習筆記》:創建和操作表

《MySQL必知必會學習筆記》:創建和操作表

編輯:MySQL綜合教程

《MySQL必知必會學習筆記》:創建和操作表


創建和操縱表

在前面的學習中,雖然還沒有系統的介紹如何創建表和操縱表,但還是用到了一點。例如:創建一個學生student表,其中包括學生ID、姓名name、成績score,則可以用如下的命令來完成;

create table student(
      id int(10) not null,
      name varchar(10) not  null,
      score int(10) null);

\

我們有時想學生ID設置為自動增長型的,如下:

create table student4(
    id int(10) not null auto_increment,
    name varchar(10) not null,
    score int(10) null,
    primary key(id)
    );

注意:如果想要將id設置為auto_increment,則一定要將id設置為主鍵(primary key),否則會報錯,如下:

\

上面就是操作數據庫時創建表的常見的方式,下面就對系統的對創建表進行講解。

表創建基礎

為利用create table 創建表,必須給出下列信息:

1、新表的名字,在關鍵字create table關鍵字之後給出。 2、表列的名字和定義,用逗號分隔。

還是以一個實際例子來進行說明,如下:

\<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="hljs sql">從上面可以看到,表明跟在create table 關鍵字之後,而所有的列括在圓括號之中,各列之間用逗號分隔,每列的定義以列名(在表中必須唯一)開始,後跟列的數據類型,數據類型可以在命令行 help create table,可以看到。

注意:在創建新表時,指定的表名必須不存在,否則會報錯。如果你僅想在一個表不存在時創建它,應該在表明後給出if not exists .這樣在創建表之前MySQL數據庫會先檢查你要創建的表名是否存在,只要表名存在,無論你創建的表的結構是否相同,都不能創建。

上面涉及到一些關鍵字(null、primary key、auto_increment等),下面一一進行介紹。

null 關鍵詞

有not null 修飾的列,當有insert into 插入數據時,必須要給出值,而用 null修飾的列,當有insert into 插入數據時可以不給出該列的值。

當我們對列不用null/not null 修飾時,默認是null修飾。

對null要多說幾句:我們不要把null值與空串相混淆。null值是沒有值,它不是空串。如果指定’ ‘,這在not null列中是有效的

primary key 關鍵詞

primary key(id)就是將id列設為主鍵,當然,我們也可以不在創建時就設置主鍵,也可以創建表之後設置主鍵。

主鍵值必須唯一,如果只設置一列為主鍵,則這一列中是不允許有重復的標志的。如果設置多列為主鍵,則這多個列的組合必須是唯一的。

例如:當表中已經存在id=5了,我們想繼續插入另一個id=5的數據,則會報錯。
\

auto_increment

auto_increment 關鍵字就是使得id為自動增長性。
當我們利用insert into 插入數據時,由於id的自動增長性,我們可以選擇不給id指定數值。我們也可以選擇給id給定數值(此數值要唯一),之後id的自動增長就是在最大id值基礎上增長。

如下:
\

主鍵與null值:主鍵為其值唯一標識表中每個行的列。主鍵中只能使用不允許null值的列。允許null值的列不能作為唯一標識。

指定默認值 default

在創建表時,如果我們對某列指定default時,則當我們使用insert插入數據時如果對該列不給定值,則就是用默認值來填充。

用法如下:

\

更新表

終於到了更新表這一節,在前兩周的學習中,自己一直想為已存在的表添加一個新的列,卻不知道怎麼做,都是通過新建一個表來解決這樣的問題。

既然學到這裡,那我們就一起好好學習下吧。

更新表結構我們要少用,我們應該在創建表的時候就考慮好表的結構,以便後期不對該表進行大的改動。

為了使用alter table更改表的結構,必須給出下面的信息:

1、在alter table 之後給出要更改的表名(該表必須存在,否則報錯) 2、所做更改的列表。

增加一個新列

如果我們想為human_information添加一列(tel)應該怎麼做呢?

alter table human_information add tel varchar(10);//增加一個新列

\

刪除一個列

如果我們想把上面添加的新列tel刪除掉,應該如何來操作呢??

如下:

alter table human_information drop column tel;

\

設置主鍵

前面提到過,除了在建表時設置主鍵外,還可以在建表後設置主鍵,方法如下:

alter table customers add primary key(cust_id);

\

設置外鍵

上面介紹了如何為表設置主鍵,還可以設置外鍵。

例如,customers表中的cust_id 就可以作為orders表中的外鍵

alter table orders add constraint fk_orders_customers foreign key(cust_id) references customers(cust_id);//為表orders設置外鍵

\

有了上面設置主鍵和外鍵的基礎,我們可以繼續練習一下如何設置主鍵和外鍵,如下:

\

刪除表

在前面的學習中,我們已經知道如何去刪除表中的內容,例如,如果我們想刪除student表中的一行內容,我們可以這麼做:

delete  from student where name='z';//刪除表student中名字為z的數據。

當我們想刪除表student中所有的內容,則可以利用如下兩種方法:

1、delete from student ;

2、truncate student;

無論我們選擇上面的那種方式來刪除表中的內容,但是表是不會被刪除的,即表的結構還在,只是數據沒有了。

如果我們想刪除表student,該怎麼做呢??

如下:

drop table student;

\

注意:在刪除表之前,最後做一個完整的備份,以防我們刪錯了。

重命名表

上面介紹了如何刪除一個表,接著介紹如何重命名一個表,用法如下:

rename table student to student_rename;//將student重命名為student_rename;

\

小結

到這裡就將創建表和操作表做了一個完整的介紹。最後我們還來回顧一下:

1、新建一個student表的命令如下:

create table student(
      id int(10) not null auto_increment,
      name varchar(10) not null,
      sex varchar(10) not null default 'male',
      score int(10) null,
      primary key(id)
      );

上面的建表語句基本上就覆蓋了建表語句中所有的知識點,例如:null/not null,auto_increment,primary key ;

2、更改表結構

alter table student add mathScore int(10);//為student表增加一個新列

alter table student drop  column mathScore;//刪除mathScore列

3、建表後設置主鍵

alter table student add primary key(id);

4、設置外鍵

alter table orders add constraint fk_orders_customers foreign key(id) references customers (id);//為orders設置外鍵

5、刪除表

drop table student;

6、重命名表

rename table student to new_student;

以上就是我們創建表和操作表的全部內容。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved