3、子表被外键约束修饰的字段必须和父表的主键字段的类型一样 。
注意:一个表中有被外键修饰的字段,就称该表有外键(是“有外键” 。而不是“是外键”),并会给该表中的外键约束取一个名称,所以我们常说的这个表有没有外键,指的不是被外键约束修饰的字段名,而是指这个表是否有存在外键约束 。也就是说,不能说这个表的外键是xxx(该表中被外键约束修饰的字段名),这种说法是错误的 , 但是大多数人已经习惯了这样 , 虽然影响不大,但是在很多时候需要理解一个东西时,会造成一定的困扰 。
格式:CONSTRAINT外键名称FOREIGN KEY(被外键约束的字段名称)REFERENCES主表名(主键字段)
英文解释:CONSTRAINT:约束REFERENCES:参考
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22),
location VARCHAR(50),
PRIMARY KEY(id)
);
CREATE TABLE tableB
(
id INT(11),
name VARCHAR(22) NOT NULL,
deptId INT(11),
PRIMARY KEY(id),
CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
);
解释:tableB中有一个名为tableA_tableB_1的外键关联了tableA和tableB两个表,被外键约束修饰的字段为tableB中的deptId,主键字段为tableA中的id
1.2.3:非空约束
NOT NULL. 被该约束修饰了的字段,就不能为空,主键约束中就包括了这个约束
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) NOT NULL,
location VARCHAR(50),
PRIMARY KEY(id)
);
1.2.4:唯一约束
UNIQUE被唯一约束修饰了的字段,表示该字段中的值唯一,不能有相同的值,通俗点讲,就好比插入两条记录,这两条记录中处于该字段的值不能是一样的 。
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) UNIQUE,
location VARCHAR(50),
PRIMARY KEY(id)
);
也就是说在插入的记录中,每条记录的name值不能是一样的 。
1.2.5:默认约束
Default指定这一列的默认值为多少,比如,男性同学比较多,性别就可以设置为默认男,如果插入一行记录时,性别没有填 , 那么就默认加上男
CREATE TABLE table
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
);
1.2.6:自动增加
AUTO_INCREMENT 一个表只能一个字段使用AUTO_INCREMENT,并且使用这个约束的字段只能是整数类型(任意的整数类型TINYINT,SMALLIN,INT,BIGINT),默认值是1,也就是说从1开始增加的 。一般就是给主键使用的,自动增加,使每个主键的值度不一样,并且不用我们自己管理,让主键自己自动生成
CREATE TABLE table(id INT(11) PRIMARY KEY AUTO_INCREMENT,name VARCHAR(22) NOT NULL);
2、查询表结构
2.1、查看表基本结构语句
格式1:DESCRIBE 表名/DESC 表名这两个的功能是一样的,简写了单词describe
DESCRIBE student;
2.2、查看创建表的语句
格式:SHOW CREATE TABLE 表名
SHOW CREATE TABLE student;
这样显示的格式很不好 , 看不清楚 , 所以有了下面这个语句
格式:SHOW CREATE TABLE 表名\G
SHOW CREATE TABLE student\G;
3、修改数据表
修改数据表包括:对表中字段的增加、删除、修改 。在这个里面用的关键字为 ALTER
3.1、修改表名
格式:ALTER TABLE旧表名 RENAME[TO]新表名;
将student表名改为student1(改完后在改回来)
ALTER TABLE student RENAME TO student1;
3.2、修改表中的字段名
格式:ALTER TABLE表名 CHANGE旧字段名新字段名新数据类型
将student表中的name字段名改为 username
- mysql怎么设置时区 mysql时间显示设置
- 云服务器游戏出现黑屏问题怎么解决? 云服务器游戏黑屏怎么办
- redis缓存失效怎么办 redis缓存数据不一致
- 如何修改戴尔服务器的IP地址? 戴尔服务器ip地址怎么改
- mongodb大公司案例 MongoDB公司怎么样
- 无法启动mongodb 1053 安装mongodb显示没有启动权
- mysql下到了c盘 mysql怎么不存到c盘
- mysql怎么把两个字段拼在一起 mysql字段拼接中文
- 联合索引怎么创建 联合索引mongodb
- mongodb442安装教程 mongodb安装必须要root权限
