約束:mysql
not null:非空約束,指定某列不爲空 sql
unique: 惟一約束,指定某列和幾列組合的數據不能重複數據庫
primary key:主鍵約束,指定某列的數據不能重複、惟一 ide
foreign key:外鍵,指定該列記錄屬於主表中的一條記錄,參照另外一條數據spa
check:檢查,指定一個表達式,用於檢驗指定數據ci
Not nullrem
create table temp( it id int not null, table name varchar(255) not null default ‘abc’, class sex char null ) |
Unique
create table temp ( id int not null, name varchar(25), password varchar(16), constraint uk_name_pwd unique(name) ); |
Primary key
create table temp ( id int primary key, name varchar(25), password varchar(16) );
設置主鍵自增:auto_increment create table temp ( id int auto_increment primary key, name varchar(25), password varchar(16) );
|
foreign key:
創建在兩表或多張表中的關聯關係,以保證數據完整性
注意:1.子表參照的值必須在主表被參照字段的值的範圍內
2.若是主表中有值被參照,那麼主表中的相應記錄不能被刪除
3.子表的外鍵參照的列只能是主表的主鍵列或惟一約束的列
CREATE TABLE student( sid INT PRIMARY KEY auto_increment, sname VARCHAR(20), scid INT,
-- FOREIGN KEY (scid) REFERENCES class(cid)
CONSTRAINT fk_scid FOREIGN key(scid) REFERENCES class(cid)
)ENGINE=INNODB;
DROP TABLE student; DROP TABLE class;
語法1: FOREIGN KEY (外鍵字段) REFERENCES 主表(主鍵字段); 語法2: CONSTRAINT 外鍵名 FOREIGN KEY (外鍵字段) REFERENCES 主表(主鍵字段); (外鍵名:fk_字段名) --------------------------- ENGINE : 引擎
mysql所特有一種數據存儲機制 |
Check(MySQL數據庫中,沒有做用)
CREATE TABLE STUDENT( SID INT PRIMARY KEY, SNAME VARCHAR(20) NOT NULL, SSEX CHAR(1), SAGE INT check( sage<19) ) |
建表後操做表表結構:
查看錶結構:
DESC 表名; mysql> desc student; |
修改列類型:
alter TABLE 表名 MODIFY 列名 目標類型; mysql> ALTER TABLE student MODIFY sid VARCHAR(10); |
增長列:
alter TABLE 表名 ADD 列名 類型; mysql>alter TABLE student ADD sage int; |
刪除列:
alter TABLE 表名 DROP 列名; mysql> alter table student drop sname; |
修改列名:
alter TABLE 表名 CHANGE 舊列名 新列名 類型; mysql> ALTER TABLE student CHANGE aaa bbb INT; |
修改表名:
語法1: ALTER TABLE 表名 RENAME 新表名; 語法2: RENAME TABLE 舊錶名 TO 新表名; mysql> alter table student rename stu; mysql> rename table student to stu; |