-- 主鍵約束:
id int primary key
可以唯一確定一張表中的一條記錄,也就是通過給某個字段添加約束,就可以使得字段不重復且不為空。
create table date ( id int primary key, sname varchar(20) )
--聯合主鍵 :
primary key(id,sname)
create table date ( id int, sname varchar(20), ssex varchar(5), sage int, primary key(id,sname) )
當你插入內容時兩條記錄字段和起來是不能重復的
insert into date values(1,'李四',18); insert into date values(2,'李四',18); //此時不會報錯
當你插入的內容重復時會報錯
insert into date vlaues(1,'李四',18); insert into date vlaues(1,'李四',18);
--自增約束:
auto_increment 這個時候id 就會自動增長
create table data( id int primary key auto_increment, sname varchar(20) )
當你在插入的時候就可以不用插入id 的值
insert into data(sname) values('李四'); //當你插入內容的時候尤其要注意, data(sname) 表名后面要接插入的字段名

當你設置自增約束時,必須要對同一字段設置其他約束,不然就會報錯。
CREATE TABLE data( id int auto_increment, sname varchar(20) )
[Err] 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
--建表的時候忘記添加主鍵約束,添加表的主鍵約束,刪除表的主鍵,修改主鍵
create table data1( id int, sname varchar(20), sage int )
alter table data1 add primary key(id); //添加主鍵的語句
alter table data1 drop primary key; //刪除主鍵的語句
alter table data1 modify id int primary key; //通過修改一字段去給他添加主鍵
