MySQL

主键(primary key)非空且唯一。
外键: 让本表的某些列能过参照另一张表的某些列。使得参照表里包含外键的列,不会超过被参照列,已有的内容。

CREATE TABLE `USERS`(
    `id` int PRIMARY KEY,#每张表只能有一个主键
    `email` char(50) UNIQUE  KEY NOT NULL ,
    `user_name` varchar(20) NOT NULL,
    `telphone` char(11)
);

CREATE TABLE `USERS`(
    `id` int PRIMARY KEY AUTO_INCREMENT,#可以不输入,让其自动分配。
    `email` char(50) UNIQE  KEY NOT NULL ,
    `user_name` varchar(20) NOT NULL,
    `telphone` char(11)
);

CREATE TABLE `seller` (
    `id` int PRIMARY KEY AUTO_INCREMENT,
    `user_id` int UNIQUE KEY NOT NULL,
    FORGEIN KEY (`user_id`) REFERENCES `USERS` (`id`) # 添加外部约束
);

CREATE TABLE `houses` (
    `id` int PRIMARY KEY AUTO_INCREMENT,
    `summary` int UNIQUE KEY NOT NULL,
    `seller_id` int NOT NULL #卖房子的用户不一定是唯一的,所以不用UNIQUE KEY
    FORGEIN KEY (`seller_id`) REFERENCES `seller` (`id`) # 添加外部约束
);

CREATE TABLE `details`(
    `id` int PRIMARY KEY AUTO_INCREMENT
    `house_id` int UNIQUE KEY NOT NULL,
    FOREIGN KEY (`house_id`) REFERENCES `houses`(`id`)
);
多对多:
中间表
CREATE TABLE  `seller_tags`(
    `seller_id` int NOT NULL,
    `tag_id` int NOT NULL,
    FOREIGN KEY (`seller_id`) REFERENCE seller(`id`),
    FOREIGN KEY (`tag_id`) REFERENCE tags(`id`)
    PRIMARY KEY (`seller_id`,`tag_id`)  # 这句话的作用就是两者的组合是唯一的。
);

CREATE TABLE `tags`(
    'id' int PRIMARY KEY AUTO_INCREMENT,
    `name` varchar(20) UNIQUE KEY NOT NULL
);

增:#因为ID设置了为主键,所以不能重复
INSERT INTO `USERS`( `id`,`email`,`user_name`,`telphone`)
    VALUES(1,`335095199@qq.com`,`caoliang`,`11111111111`),
          (2,`caoliang@qq.com`,`caoliang2`,`22222222222`);

INSERT INTO `USERS`( `email`,`user_name`,`telphone`,`id`)
    VALUES(`335095199@qq.com`,`caoliang`,`11111111111`,1),
          (`caoliang@qq.com`,`caoliang2`,`22222222222`,2);

INSERT INTO `USERS`  #如果没有括号内的这一行只能按照顺序来插入
    VALUES(1,`335095199@qq.com`,`caoliang`,`11111111111`),
          (2,`caoliang@qq.com`,`caoliang2`,`22222222222`);


查:
SELECT `email`,`telphone` FROM `USERS`

关系

一对一的关系

一对多的关系

多对多的关系

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 678评论 0 1
  • 前面讲了SQL优化以及索引的使用、设计优化了,那么接下来就到表的设计与优化啦!!!真实地去设计优化单表结构以及讲述...
    JackFrost_fuzhu阅读 3,941评论 2 28
  • 回顾 字段类型(列类型):数值型,时间日期型和字符串类型 数值型:整型和小数型(浮点型和定点型) 时间日期型:da...
    翊溪阅读 982评论 0 0
  • 参考资料 慕课网——与MySQL的零距离接触 前言 本人菜鸟,入IT只为当鼓励师。本编文章主要对 MySQL的一些...
    BeYanJin阅读 325评论 0 2
  • 数据库简介关系型数据库MySQL安装和使用SQL语言 一、数据库简介 (一)数据库的发展 文件系统:磁盘文件存储数...
    哈喽别样阅读 448评论 0 1