mysql數據庫的基本介紹與操作(第二篇)
1.創建表:
格式:
create table 表名(
列名 類型 是否可以為空,
列名 類型 是否可以為空,
) engine=innodb default charset=utf8;
例子:
create table t_article (
article_id INT (11) NOT NULL auto_increment,
article_name VARCHAR (200) NOT NULL,
article_author VARCHAR (100) NOT NULL,
article_src VARCHAR (1000) DEFAULT ‘文章來自萬方庫‘,
create_time TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘創建時間‘,
primary key (article_id)
) engine=innodb default charset=utf8;
對以上表結構的解釋:
not null表示該字段的值不能為null.
auto_increment表示該字段是自動遞增的,一張表僅能有一個自增遞增字段,並且該自動遞增的字段同時必須是主鍵,自動遞增列還可以設置步長與初始值.
剛才上面創建了表t_article,article_id字段為遞增字段,在此重新設置遞增列.
2.刪除表:
drop table 表名; 例子:drop table t_article;
#表如果存在則刪除
drop table if exists 表名;例子:drop table if exists t_article;
#清空表
delete * from t_article;(存在遞增字段的話,遞增字段的初始值不為1,執行該刪除語句後,id的初始值不會重置為1).
truncate table t_article;(存在遞增字段的話,遞增字段的初始值不為1,執行該刪除語句後,id的初始值會重置為1).
3.修改表
#添加列
alter table 表名 add 列名 列類型; 例子: alter table t_article add article_keywords varchar(20);
#刪除列
alter table 表名 drop column 列名; 例子: alter table t_article drop column article_keywords;
#修改列
alter table 表名 modify column 列名 類型; 例子: alter table t_article modify column article_src varchar(100);
alter table 表名 change 原列名 新列名 類型; 例子: alter table t_article change article_src article_source varchar(200);
#添加主鍵:
alter table 表名 add primary key(列名);
例子:alter table t_aricle add primary key(article_name); 執行此語句的時候會發生錯誤,提示如下:
發生以上錯誤的原因是:在創建t_article表的時候已經將article_id設置為了主鍵,但mysql的表只能有一個主鍵,不能有兩個主鍵,因此這樣的設置是錯誤的.
要想設置article_name為主鍵,可以使用以下兩種解決方案.
方法1:去除t_artilce表的article_id主鍵,執行:alter table t_article drop primary key;繼續執行,發生如下錯誤:
錯誤原因已經很明顯了,以上的命令是去掉article_id,但是article_id字段被設置為了自動遞增,遞增列是必須要被設置為主鍵的,也就是
說遞增列是無法解除其主鍵功能的,那該怎麽辦? 很簡單,去掉article_id字段的自動遞增功能唄,去除命令如下:
alter table t_article modify column article_id int(11) not null first;
去除表t_article中article_id的自動遞增功能,再去除字段article_id的主鍵功能,執行結果如下:
very good,這樣就可以賦予表t_article中article_name的主鍵功能了,執行結果如下:
完美,第一種方法演示結束.
方法2:將article_id與article_name設置為聯合主鍵.按照下面四個步驟進行.
第一步: alter table t_article modify column article_id int(11) not null first; --刪除article_id自動遞增功能.
第二步: alter table t_article drop primary key; --刪除article_id字段的主鍵特性.
第三步 : alter table t_article add primary key(article_id,article_name); --設置article_id與article_name為聯合主鍵.
第四步 : alter table t_article modify column article_id int(11) not null auto_increment; --恢復article_id的自動遞增功能.
操作結果如下:
#刪除主鍵
alter table 表名 drop primary key; ----alter table t_article drop primary key;(存在遞增列,一定要先刪除遞增列的自動遞增功能,再執行此語句).
mysql數據庫的基本介紹與操作(第二篇)