数据库
首页 > 数据库> > mysql----

mysql----

作者:互联网

ALTER TABLE 表名 操作集锦

add --> 增加列
modify —> 修改列名和列类型

ALTER TABLE stu
MODIFY sid int;

change ----> 修改列名

DROP —> 删除列 或者 主键

RENAME TO —> 修改表名

主键自增长

关键字 AUTO_INCREMENT 约束 主键是整型

一定重复不了

内部有计数的东西。

不建议使用 建议是由uuid 做主键

唯一约束 非空约束

关键字

unique notnull 非空和唯一型

主键不用加

因为主键本身就有非空性,唯一性和被引用性。

外键的指定

foreign key (属性名) reference 另一个表(参照的列);

一对一关系

从表的主键就是外键。

多对多关系

引入中间表

两张表都是主表

得专门创建一个主表

这里引入一个问题

#修改一下列得类型
ALTER TABLE stu
MODIFY sid int;
#创建中间表实现多对多得关系  关联表
CREATE TABLE STU_TEA(
  SID INT,
	TID INT,
	CONSTRAINT FK_STU FOREIGN KEY(SID) REFERENCES stu(SID),
	CONSTRAINT fk_teacher FOREIGN KEY(tid) REFERENCES teacher(tid)
	);
	DROP TABLE STU_TEA; 
	
	INSERT  INTO stu VALUES(1,'ZM');
	INSERT  INTO stu VALUES(2,'WF');
	INSERT  INTO stu VALUES(3,'SDZ');
	INSERT INTO stu VALUES(4,'LTY');
	INSERT  INTO stu VALUES(5,'LK');
	INSERT  INTO TEACHER VALUES (1,'贾老师');
	INSERT  INTO teacher VALUES (2,'李老师');
	INSERT  INTO teacher VALUES (3,'张老师');
	SELECT * FROM stu;
	INSERT INTO stu_tea VALUES(1,1);
		INSERT INTO stu_tea VALUES(2,1);
			INSERT INTO stu_tea VALUES(3,1);
				INSERT INTO stu_tea VALUES(4,1);
					INSERT INTO stu_tea VALUES(5,1);
					SELECT * FROM stu_tea;
					
	

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mN3SIx6j-1635865062499)(C:\Users\张猛\AppData\Roaming\Typora\typora-user-images\image-20211102220401987.png)]

MySQL创建外键时报Can’t create table (errno: 150)错误解决办法

**第一种情况,很简单,就是列的类型不匹配,**比如用int类型的列去关联varchar的列:

最后一种情况则是,找不到外键引用的列。列在增加外键的时候,可能已经存在数据了(历史数据,或者更新数据库表时设置的默认值),但这些数据并不一定能在外键关联表中找到对应的行记录。这种情况也会导致外键创建失败。

标签:INSERT,tea,INTO,----,stu,VALUES,mysql,主键
来源: https://blog.csdn.net/qq_53913402/article/details/121111429