建立表dept和stu:
mysql> create table department(
dept_id int primary key auto_increment,
dept_name char(20) not null default ''
);mysql> create table stu(
stu_id int primary key auto_increment,
stu_name char(20),
age int,
height decimal(4,1)
dept_id int,
foreign key(dept_id) references dept(dept_id)
);
修改表名:--格式: alter table tablename rename newtablename;
mysql> alter table department rename dept;
檢視表結構:--格式: desc tablename;
mysql> desc stu;
檢視建表語句:--格式: show create table tablename;
mysql> show create table stu;
新增字段:--格式:alter table tablename add fieldname type;
mysql> alter table stu add phone char(11) after height; --新增乙個phone欄位,位置處於欄位height之後
mysql> alter table stu add addr varchar(200); --新增乙個addr欄位,位置為表中的最後乙個字段
刪除字段:--格式:alter table tablename drop fieldname;
mysql> alter table stu drop age;
更改欄位的名稱和型別:--格式:alter table tablename change oldfieldname newfieldname type;
mysql> alter table stu change addr address varchar(200) after phone;
--把addr欄位的名稱更改為address,並且放在phone之後。
更改欄位的型別:--格式:alter table tablename modify fieldname type;
mysql> alter table stu modify phone varchar(20) after stu_name;
--把phone欄位的型別更改為varchar,長度為20,並且放在stu_name之後。
新增和刪除主鍵:--刪除主鍵格式:alter table tablename drop primary key;
--新增主鍵格式:alter table tablename add primary key(fieldname);
mysql> alter table dept drop primary key; --刪除dept表的主鍵
mysql> alter table dept add primary key(dept_id); --為dept表新增主鍵,主鍵列為dept_id
新增和刪除外來鍵:--先用show create table tablename;命令檢視外來鍵約束的名稱
--刪除外來鍵格式:alter table tablename drop foreign key 外來鍵約束名;
--新增外來鍵格式:alter table tablename add foreign key(fieldname) references tablename(fieldname);
mysql> show create table stu; --檢視stu表中外鍵約束的名稱
mysql> alter table dept drop foreign key stu_ibfk_1; --刪除stu表的外來鍵
mysql> alter table dept add foreign key(dept_id) references dept(dept_id); --為stu表新增外來鍵
設定欄位的預設值以及是否為空:--格式:alter table tablename modify fieldname fieldtype not null|null default value;
mysql> alter table stu modify address varchar(200) not null default 'xinxiang';
--設定address欄位不能為空,預設值為'xinxiang'
mysql> alter table dept modify dept_name char(20) null; --設定dept表中的dept_name欄位允許取空值
資料庫修改表結構
修改資料表 alter table 表名sql 的書寫不考慮順序,但是批量執行 需要要考慮好先執行哪些,後執行哪些 在修改資料表結構時,必須要明確 修改的字段中是否存在資料,例如 如果需要更改乙個欄位的約束為非空約束,那麼首先要保證該字段中已有的資料沒有null值。因此在做程式之前資料庫分析,設計是...
資料庫修改表結構SQL
資料庫修改欄位名 alter table t pda node template item rename column sequence number to sequence number1 新增字段 alter table t pda node template item add sequence...
Mysql資料庫alter修改表
如果你想要修改表的資訊,你會發現alter很強大。我們可以看到這樣一張表。create table score student id int 10 unsigned notnull event id int 10 unsigned notnull score int 11 default null ...