1 外键,用来在两个表之间建立连接关系,可以是一列或者多列。一张表可以有一个或多个外键,作用保持数据的一致性和完整性。2 主表(父表),即主键所在的表;3 从表(子表),外键所在的表;4 CREATE TABLEcolor (5 nid INT NOT NULL PRIMARY KEY,6 NAME CHAR (20) NOT NULL
7 ) ENGINE = INNODB DEFAULT CHARSET =utf8;8
9 CREATE TABLEfruit (10 nid INT NOT NULL PRIMARY KEY,11 smt CHAR (32) NULL,12 color_id INT NOT NULL,13 CONSTRAINT fk_cc FOREIGN KEY (color_id) REFERENCEScolor (nid)14 ) ENGINE = INNODB DEFAULT CHARSET = utf8;
外键约束
1 非空约束,Not Null Constraint,指字段的值不能为空。2 1、null#可为空3 2、not null#不可为空4 语法:5 字段名 数据类型 NOT NULL
非空约束
1 唯一性约束,Unique Constraint,要求该列唯一,可以为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。2 语法:3 字段名 数据类型 UNIQUE
唯一约束
1 默认约束,Default Constraint,指定某列的默认值。2 语法:3 字段名 数据类型 DEFAULT默认值4 如果插入一条新纪录时,没有为该字段赋值,那么系统会自动为这个字段赋值为设定的默认值。
默认约束
1 在数据库应用中,希望在每次插入新纪录时,系统自动生成字段的主键值。可通过为表的主键增加AUTO_INCREMENT 关键字来实现。MySQL中默认初始值为1,一条记录自动加1,一个表只能有一个字段使用AUTO_INCREMENT 约束,且该字段必须为主键的一部分。AUTO_INCREMENT 的字段类型可以是任何整数类型(TINYINT\SMALLINT\INT\BIGINT等)2 语法:3 字段名 数据类型 AUTO_INCREMENT
自增约束
注意:外键约束PREIGN KEY 不能跨MySQL存储引擎使用!因为外键约束是用来保证数据的参照完整性,如果之间需要关联外键,却指定了不同的存储引擎,这些表之间是不能创建外键约束的。
2、查看数据表结构
查看表基本结构语句DESCRIBE DESCRIBE表名或者简写为DESC 表名;
1 ysql> DESCtb_emp1;2 +--------+-------------+------+-----+---------+-------+
3 | Field | Type | Null | Key | Default | Extra |
4 +--------+-------------+------+-----+---------+-------+
5 | id | int(11) | NO | PRI | NULL | |
6 | name | varchar(25) | YES | | NULL | |
7 | deptId | int(11) | YES | | NULL | |
8 | salary | float | YES | | NULL | |
9 +--------+-------------+------+-----+---------+-------+
10 4 rows in set (0.01sec)11
12 mysql>DESCRIBE tb_emp1;13 +--------+-------------+------+-----+---------+-------+
14 | Field | Type | Null | Key | Default | Extra |
15 +--------+-------------+------+-----+---------+-------+
16 | id | int(11) | NO | PRI | NULL | |
17 | name | varchar(25) | YES | | NULL | |
18 | deptId | int(11) | YES | | NULL | |
19 | salary | float | YES | | NULL | |
20 +--------+-------------+------+-----+---------+-------+
21 4 rows in set (0.00sec)22
23 mysql>
View Code
查看详细结构语句SHOW CREATE TABLE SHOW CREATE TABLE 表名;
1 mysql> SHOW CREATE TABLEtb_emp1;2 +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3 | Table | Create Table |
4 +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5 | tb_emp1 | CREATE TABLE`tb_emp1` (6 `id` int(11) NOT NULL,7 `name` varchar(25) DEFAULT NULL,8 `deptId` int(11) DEFAULT NULL,9 `salary` float DEFAULT NULL,10 PRIMARY KEY(`id`)11 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
12 +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13 1 row in set (0.00sec)14