數據庫的表結構
本文對MySQL的數據定義語言(DDL)學習,DDL中比較常用的有create(創建),show(查),alter(修改),drop(刪除),實現對錶結構的增刪改查
創建表
下面是例子的表結構,其中就是用到了create(創建)關鍵字
create table me(
id int unsigned auto_increment,
name varchar(20) not null comment '姓名',
phone varchar(20) comment '手機號',
site varchar(20) default '地址不詳'comment '地址',
primary key(id)
);
查詢表
使用上面的例子
show tables; #查詢數據庫所有的表
desc me; #查詢表結構
show create table me\G #查詢表結構所使用的語法
修改表名
對例子的表名進行修改使用alter(修改)關鍵字
將me表名修改爲message表名
修改表名的格式爲alter table <舊錶名> rename to <新表明>;
alter table me rename to message;
添加新列
如果我們要對上面的例子添加列,我們需要使用alter(修改)關鍵字,添加列的位置無非有兩種首列(first)以及非首列(after)。
爲整個表第一列之前添加列,使用first,我們來添加一個學號(number)的列
添加首列的格式爲alter table <表名> add <新列名> <數據類型> <約束條件> <其他> first;
其中新列名後面的參數根據自己的需求選擇加與不加
alter table message add numer int not null commment '學號' first;
爲非首列添加列,使用after,此處我們給phone(手機號)列後面添加一個score(成績)列
添加非首列格式爲alter table <表名> add <新列名> <數據類型> <約束條件> <其他> after <需要在那個列後面添加列的列名>;
此處成績我採用varchar是因爲我使用的默認值爲varchar型的’不及格’,只是爲其演示
alter table message add score varchar(4) default '不及格' comment '成績' after phone;
修改列名
此處我們將score(成績)列名修改成java列名,並把數據類型修改成tinyint
修改列名格式爲alter table <表名> change <舊列名> <新列名> <新數據類型>;
數據類型不可省略
alter table message change score java tinyint;
修改列的數據類型
我們將上面添加的學號列的數據類型修改成varchar類型
修改列的數據類型格式爲alter table <表名> modify <列名> <數據類型>;
alter table message modify number varchar(20);
修改列的排序位置
將name(姓名)列排到首列
格式爲alter table <表名> modify <列名> <數據類型> first;
此處的雖然是換行但數據類型不可省略
alter table message modify name varchar(20) first;
將name(姓名)列排在java列後面
格式爲alter table <表名> modify <列名> <數據類型> after <需要排在那個列名後面>;
此處數據類型不可省略
alter table message modify name varchar(20) after java;
刪除列
將number(學號)列刪除
刪除列的格式爲alter table <表名> drop <需要刪除的列名>;
alter table message drop number;
刪除數據庫表
此處我們需要用到drop(刪除)關鍵字
我們將整個message表刪除
刪除表的格式爲drop table <表名>;
下面刪除語句中的if exists可有可無,這句是判斷數據庫中是否存在此表,有的話刪除,沒的話不報錯
drop table if exists message;