【1】设置非空约束(NOT NULL ,NK)--->>>目的是f防止某些字段中的内容为空
CREATE TABLE +table_name (
属性名 数据类型 NOT NULL,
.........
);
【2】设置字段的默认值(DEFAULT)
CREATE TABLE +table_name (
属性名 数据类型 DEFAULT 默认值,
........
);
【3】设置唯一约束(UNIQUE,UK)===>>>保证字段的唯一性,比如记录学生档案信息的时候,要保证学生的学号信息的唯一性。
CREATE TABLE +table_name (
属性名 数据类型 UNIQUE,
.........
);
【4-1】设置单字段主键约束(PRIMARY KEY,PK)===>>>主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符。每张数据表只能存在一个主键;主键保证记录的唯一性;主键自动为NOT NULL(非空)。有类似UNIQUE的效果,来保证字段的唯一性。
CREATE TABLE +table_name
(属性名 数据类型 ,
属性名 数据类型 ,
......
PRIMARY KEY(属性名));
例子:
CREATE TABLE stu_info
(id int ,
name VARCHAR(12),
yeold int,
PRIMARY KEY(id));
若输入与主键重复的字段,则报错!!!
mysql> INSERT INTO stu_info VALUE(1,'jack',25);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
【4-2】多字段主键
CREATE TABLE +table_name
(属性名 数据类型 ,
属性名 数据类型 ,
......
PRIMARY KEY(属性名1,属性名2,.....)); >>>注意:此时表示属性名1和属性名2同时都不重复,是“且”的含义。否则输入命令不报错
【5】设置字段值自动增加(AUTO_INCREMENT) >>>默认下,该字段的值是从1开始增加,每增加一条记录,记录中该字段的值就会在前一条记录的基础上加1。
CREATE TABLE +table_name(
属性名 数据类型 AUTO_INCREMENT,
..........
);
例子:
mysql> DESC stu_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(12) | YES | | NULL | |
| yeold | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
【6】设置外键约束(FOREIGN KEY,FK)>>>
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。外键主要用来保证数据的完整性和一致性. 两个表必须是InnoDB表,MyISAM表暂时不支持外键 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
CREATE TABLE +table_name (
属性名 数据类型,
属性名 数据类型,
.....
CONSTRAINT 外键约束名 FOREIGN KEY (属性名1)
REFERENCES 表名 (属性名2)