表约束:
声明主键:
PRIMARY KEY
主键自增:
auto_increment
唯一:
unique
非空:
not null
外键约束:
当新建的表B想和其它表A进行关联的时候,表B需要有一个字段和其它表A进行映射,这样做的话,删除表A数据时,只要表B中存在和表A有关联的数据,表A的关联数据就不可以删除
CREATE TABLE A(
id INT PRIMARY KEY auto_increment,
name VARCHAR(20)
)
CREATE TABLE B(
id INT PRIMARY KEY auto_increment,
name VARCHAR(10),
aId INT,
FOREIGN KEY (aId) REFERENCES A (id)
)
FOREIGN KEY (外键字段) REFERENCES 要关联表名 (要关联的字段)
上面创建B表就代表了。将B表外键字段(aId) 关联 B表 的 id
B表中的aid 关联向了A表中的id,当B表中存在和A表有关联数据时,A表中的那一条关联数据不可以删除
多表查询内连接:
普通内连接:
inner join ... on 条件
查询A表和B表中 id = aid 的值匹配出来的数据
SELECT * FROM A INNER JOIN B on id = aId
隐式内连接:
查询A表和B表中 id = aid 的值匹配出来的数据
SELECT * FROM A,B WHERE A.id = B.aId
多表查询外连接:
左外连接:
LEFT JOIN ... on 条件
以左为主,进行查询 查询结果和内连接相似,只不过会将为主的表 无法匹配的数据也查询出来
SELECT * FROM A LEFT JOIN B ON A.id=B.aId
右外连接
SELECT * FROM A RIGHT JOIN B ON A.id = B.aId
子查询:
将一个查询的结果做为另一个查询的条件
SELECT * FROM 表名 WHERE english > (SELECT SUM(english) FROM 表名)