设置主键:
删除表的主键约束:
ALTER TABLE 数据库名.表名
DROP PRIMARY KYE
更新a表,让a表中merberid字段的值指向b表的id值
UPDATE demo.trans AS a,demo.membermaster AS b
SET a.memberid=b.id
WHERE a.transcationno > 0
AND a.cardno = b.cardno;
三种设置主键的思路:业务字段做主键、自增字段做主键、手动复制字段做主键
- 尽量不要用业务有关的字段做主键
- 自增字段做主键,对于单机系统是没问题的,但是有多台服务器各自录入数据就不一定适用了,因为在对多台机器的数据进行合并时可能出现主键重复的为你
- 通过手动赋值的办法,通过一定逻辑确保字段在全系统中的唯一性
创建外键

创建表时定义外键约束:
CREATE TABLE 从表名
(
字段名 类型
...
CONSTRAINT 外键约束名称
FOREIGN KEY 字段名 REFERENCES 主表名 (字段名)
)
通过修改表来定义外键约束
ALTER TABLE 从表名 ADD CONSTRAINT 约束名 FOREIGN KEY 字段名 REFERENCES 主表名 (字段名)
连接
- 内连接(INNER JOIN):表示查询结果只返回符合连接条件的记录,这种连接方式比较常用;
SELECT 字段名
FROM 表名 AS a
JOIN 表名 AS b
ON (a.字段名称=b.字段名称);
- 外连接(OUTER JOIN):表示查询结果返回某一个表中的所有记录,以及另一个表中满足连接条件的记录
SELECT 字段名
FROM 表名 AS a
LEFT JOIN 表名 AS b
ON (a.字段名称=b.字段名称);
SELECT 字段名
FROM 表名 AS a
RIGHT JOIN 表名 AS b
ON (a.字段名称=b.字段名称);
注:没有外键约束也可以进行关联查询
网友评论