一、創建表和插入數據:
create table cr01 ( sx int(50), mz varchar(50), bz varchar(50) ); insert into cr01 ( sx,mz,bz ) values (1,'sww','sww01'); insert into cr01 values (2,'aww','aww02'); insert into cr01 values (3,'qww','qww03'), (4,'eww','eww04'), (5,'rww','rww05'); insert into cr01 ( sx,mz,bz ) values (6,'yww','yww06'), (7,'uww','uww07'); select * from cr01;

==========================================================
二、查看表結構
查看表結構是指:查看數據庫中已經存在的表的定義
1、查看表基本結構的語句:describe
describe語句可以查看表的基本定義:其中包括字段名、字段數據類型、是否為主鍵和默認值等;
describe語句的語法格式如下: describe 表名;
describe可以縮寫為desc,格式如下: desc 表名;
describe cr01; 或者 desc cr01;

=======================================================
三、查看表的詳細結構語句show create table
該語句可以查看表的字段名、字段的數據類型、完整性約束條件等信息。除此之外還可以查看表的默認的存儲引擎和字符編碼
show create table的語法格式如下: show create table 表名;
以整潔的格式顯示的語法格式如下: show create table 表名 \G;
CREATE TABLE `cr01` ( `sx` int(50) DEFAULT NULL, `mz` varchar(50) DEFAULT NULL, `bz` varchar(50) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1

==================================================
四、修改表名
語法格式:alter table 舊表名 rename [to] 新表名;
舉例:alter table example1 rename user;
注釋:修改后example1表就不存在了,只存在名為user的新表,但是其內容是一致的,只是換了個名稱
執行前: show tables;

執行:alter table cr01 rename to jss;

執行后:show tables;

注意:PS:為了不影響示例,執行下面的語句會把之前修改過的表名再改過來:alter table jss rename to cr01;
====================================================================================================
五、修改字段的數據類型
語法格式:alter table 表名 modify 屬性名 數據類型; 注釋:表名指所要修改數據類型的字段的表的名稱;
屬性名指:所要修改數據類型字段的名稱;
數據類型指:修改后的新的數據類型
舉例:alter table user modify name varchar(30);
修改前先desc user 修改后再desc user 就會發現name字段的數據類型改變了
執行前:describe cr01; ----------查看原來的表結構類型

執行:alter table cr01 modify mz varchar(40);

執行后:describe cr01; -----------------------------執行后,再次查看表結構,看是否改變

注意:PS,還原:alter table cr01 modify mz varchar(50);
===========================================================================================
六、修改字段名
語法格式:alter table 表名 change 舊屬性名 新屬性名 新數據類型;
舉例:alter table example1 change stu_sex sex int(2);
注釋:新數據類型指修改后的數據類型,如不需要修改,則將新數據類型設置成與原來一樣
注意:修改整數類型時可能會影響表中的數據,特別注意的是字符類型的字段最好不要修改成整數類型或者浮點數類型
執行前:describe cr01;

執行:alter table cr01 change mz mzdd varchar(50);

執行后:describe cr01;

備注:PS:還原:alter table cr01 change mzdd mz varchar(50);
===========================================================================
七、增加字段
語法格式:alter table 表名 add 屬性名1 數據類型 [完整性約束條件] [first | after 屬性名2];
完整性約束條件:是可選參數,用來設置新增字段的完整性約束條件
first:是可選參數,其作用是將新增字段設置為表的第一個字的;
after:是可選參數,其作用是將新增字段添加到“屬性名2”所指的字段后;
如果執行的SQL語句中沒有“first”或者“after 屬性名2”參數指定新增字段的位置,則新增字段默認為表的最后一個字段;
(1)增加無完整性約束條件的字段
舉例:alter table user add phone varchar(20);
(2)增加有完整性約束條件的字段
舉例:alter table user add age int(4) not null;
(3)表的第一個位置增加字段
舉例:alter table user add num int(8) primary key first;
(4)表的指定位置之后增加字段
舉例:alter table user add address varchar(20) not null after phone;
執行前:describe cr01;

執行:
alter table cr01 add js varchar(40) unique after mz;
alter table cr01 add jss varchar(50); ----------分別依次執行

執行后:describe cr01;(select * from cr01;)


注意:PS:下面刪除新增的兩個字段,以便還原。
===============================================================================
八、刪除字段
刪除字段是刪除表中已經定義好的表中的某個字段,刪除后其字段所屬的數據都會被刪除。
語法格式:alter table 表名 drop 屬性名;
執行前:describe cr01;

執行:
alter table cr01 drop js;
alter table cr01 drop jss; -------------------分別依次執行;

執行后:describe cr01;

注意:PS:被還原為初始狀態了
=============================================================
九、修改字段的排列位置
語法格式:alter table 表名 modify 屬性名1 數據類型 first|after 屬性名2;
(1)字段修改到第一個位置
舉例:alter table user modify name varchar(20) first;
(2)字段修改到指定位置
舉例:alter table user modify sex tinyint(1) after age;
執行前:describe cr01;

執行:alter table cr01 modify bz varchar(50) after sx;

執行后:describe cr01;

注意:PS:還原:alter table cr01 modify mz varchar(50) after sx;
=====================================================================
十、更改表的存儲引擎
語法格式:alter table 表名 engine=存儲引擎名;
此處不示例;
======================================================
十一、刪除表的外鍵約束
**********************************************************************
十二、刪除表
(1)刪除沒有被關聯的普通表
語法格式:drop table 表名;
(2)刪除被其它表關聯的父表
刪除子表的外鍵約束,再刪除父表
執行前:show tables;

執行:drop table cr01;

執行后:show tables;

