#创建数据库

CREATE DATABASE day15;

#使用

USE day15;

#创建表

CREATE TABLE test1(

id INT PRIMARY KEY AUTO_INCREMENT,#这是主键

num INT UNIQUE,#这个唯一键不起作用?

NAME VARCHAR(22)

);

#存入数据

INSERT INTO test1(NAME) VALUES(‘aaa‘);

#删除数据但是不重置自动增长数

DELETE FROM test1;

#删除数据重置行数(相当于删除掉整个表,然后再创建)

TRUNCATE TABLE test1;

############表与表之间的关系#####################

###一对多(B表外键字段存着A表的唯一主键表示拿一行被A表引用)

#主表user

CREATE TABLE t_user(

id VARCHAR(22),

username VARCHAR(22),

PASSWORD VARCHAR(32)

);

#主表的主键

ALTER TABLE t_user ADD CONSTRAINT PRIMARY KEY (id);

#从表:book表

CREATE TABLE t_book(

id VARCHAR(22),

title VARCHAR(55),

author VARCHAR(50),

user_id VARCHAR(32)#外键

);

#从表外键引用主表主键

#格式:ALTER TABLE 从表名 ADD CONSTRAINT FOREIGN KEY (从表外键) REFERENCES 主表名 (主表主键);

ALTER TABLE t_book ADD CONSTRAINT FOREIGN KEY (user_id) REFERENCES t_user (id);

###测试(查询)

#主表存入数据

INSERT INTO t_user(id,username,PASSWORD) VALUES(‘u001‘,‘琳琳‘,‘1234‘);

INSERT INTO t_user(id,username,PASSWORD) VALUES(‘u002‘,‘问我‘,‘1234‘);

INSERT INTO t_user(id,username,PASSWORD) VALUES(‘u003‘,‘恩恩‘,‘1234‘);

#从表存入数据

INSERT INTO t_book(id,title,author,user_id) VALUES(‘b001‘,‘短剑‘,‘丽丽‘,‘u001‘);

INSERT INTO t_book(id,title,author,user_id) VALUES(‘b002‘,‘宿舍‘,‘恩恩‘,‘u003‘);

INSERT INTO t_book(id,title,author,user_id) VALUES(‘b003‘,‘方法‘,‘额额‘,‘u001‘);

INSERT INTO t_book(id,title,author,user_id) VALUES(‘b004‘,‘覆盖‘,‘44‘,‘u002‘);

#主表主键不能被删除或更新,以为从表在使用

DELETE FROM t_user WHERE id=‘u001‘;

#############查询

#1,笛卡尔积,两个表的乘积集合

SELECT * FROM t_user,t_book;

SELECT COUNT(*) FROM t_user,t_book;

#2 隐式内连接

SELECT * FROM t_user,t_book WHERE t_user.id = t_book.user_id;

SELECT t_user.username,t_book.title FROM t_user,t_book WHERE t_user.id=t_book.user_id;

#3内连接

SELECT u.username,b.title FROM t_user u INNER JOIN t_book b ON u.id =b.`user_id`;

###4外链接

#左外连接:查询A表所有内容,设定条件显示B表内容

SELECT * FROM t_user u LEFT OUTER JOIN t_book b ON u.id = b.user_id;

#右外链接:查询B表所有内容,显示符合条件的A表内容

SELECT * FROM t_user u RIGHT OUTER JOIN t_book b ON u.id = b.user_id;

#######多对多(多对多是B表多项被A表多项引用)

##主表:学生表

CREATE TABLE m_student(

id VARCHAR(32) PRIMARY KEY, #主键

NAME VARCHAR(50),

age INT

);

##主表:中间表,学生课程表

CREATE TABLE m_course(

id VARCHAR(32) PRIMARY KEY, #主键

content VARCHAR(50),

teacher VARCHAR(50)

);

##从表:中间表,学生课程表

CREATE TABLE m_student_course(

student_id VARCHAR(32), #学生对应外键

course_id VARCHAR(32) #课程表对应外键

);

#######关系

###中间表与学生表:主外键关系

ALTER TABLE m_student_course ADD CONSTRAINT FOREIGN KEY (student_id) REFERENCES m_student (id);

###中间表与课程表:主键关系

ALTER TABLE m_student_course ADD CONSTRAINT FOREIGN KEY (course_id) REFERENCES m_course (id);

###联合主键

ALTER TABLE m_student_course ADD CONSTRAINT PRIMARY KEY (student_id,course_id);

###外键删除

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

###测试

INSERT INTO m_student(id,NAME,age) VALUES(‘s001‘,‘宿舍‘,‘22‘);

INSERT INTO m_student(id,NAME,age) VALUES(‘s002‘,‘宿33‘,‘32‘);

INSERT INTO m_course(id,content,teacher) VALUES(‘c001‘,‘去你妹‘,‘问我‘);

INSERT INTO m_course(id,content,teacher) VALUES(‘c002‘,‘sad‘,‘恩恩‘);

INSERT INTO m_course(id,content,teacher) VALUES(‘c003‘,‘fdsa‘,‘额额‘);

INSERT INTO m_student_course(student_id,course_id) VALUES(‘s001‘,‘c001‘);

INSERT INTO m_student_course(student_id,course_id) VALUES(‘s002‘,‘c001‘);

INSERT INTO m_student_course(student_id,course_id) VALUES(‘s001‘,‘c002‘);

INSERT INTO m_student_course(student_id,course_id) VALUES(‘s002‘,‘c003‘);

##查询:某人学某课

#隐式内连接

SELECT s.name , content FROM m_student s, m_student_course sc , m_course c

WHERE s.id = sc.student_id AND sc.course_id = c.id;

#内连接

SELECT s.name , c.content FROM m_student s

INNER JOIN m_student_course sc ON s.id = sc.student_id

INNER JOIN m_course c ON sc.course_id = c.id;

原文:http://www.cnblogs.com/linjiqian/p/4488959.html

mysql表一对多关系,mysql表与表之间的关系(多对多,一对多)相关推荐

  1. python类与类的关系_python 类与类之间的关系

    一.依赖关系(紧密程度最低) (1)简单的定义:就是方法中传递一个对象.此时类与类之间存在依赖关系,此关系比较低. (2)实例植物大战僵尸简易版 题目要求:创建一个植物,创建一个僵尸 1.植物:名字. ...

  2. python中类与对象之间的关系_python 类与类之间的关系

    一.依赖关系(紧密程度最低) (1)简单的定义:就是方法中传递一个对象.此时类与类之间存在依赖关系,此关系比较低. (2)实例植物大战僵尸简易版 题目要求:创建一个植物,创建一个僵尸 1.植物:名字. ...

  3. python中类与对象之间的关系_python类与类之间的关系

    在面向对象中,类和类之间也可以产生相关的关系 类中的关系: 依赖关系是最轻的,最重的是继承关系,关联关系是比较微妙的 依赖关系 执行某个动作的时候,需要xxx来帮助完成这个操作,此时的关系是最轻的. ...

  4. python中简述对象和类的关系_python 类与类之间的关系

    一.依赖关系(紧密程度最低) (1)简单的定义:就是方法中传递一个对象.此时类与类之间存在依赖关系,此关系比较低. (2)实例植物大战僵尸简易版 题目要求:创建一个植物,创建一个僵尸 1.植物:名字. ...

  5. python类的继承关系,python——类和类之间的关系(继承多态)

    1.类和类之间的关系有三种:is-a.has-a和use-a关系. is-a关系也叫继承或泛化,比如学生和人的关系.手机和电子产品的关系都属于继承关系. has-a关系通常称之为关联,比如部门和员工的 ...

  6. java c 关系_C语言和java之间的关系

    近些年来,移动互联网在全世界范围内的迅速发展,使得计算机行业也迅速发展,那c语言和java语言作为计算机语言中两种,相应的逐渐被人们了解和关注,想学习和从事c语言和java的朋友也越来越多.那同样都是 ...

  7. 二元函数连续与偏导数存在的关系_怎样理解多元函数,连续与偏导存在的关系,偏导连续之间的关系...

    展开全部 多元函数连续不是偏导存在的充分条件也不是必要条件.62616964757a686964616fe78988e69d8331333366306464 而偏导连续则是更强的条件,即偏导存在且连续 ...

  8. mysql、orcl中database、schema、user之间的关系

    对于MySQL而言,"database 数据库" 和 "schema 模式" 是同一件事.具体区分如下表: In MySQL: server instance ...

  9. 简述机器指令与微指令之间的关系_机器指令与微指令之间的关系是(

    [多选题]人住宾馆后,为了预防火灾事故的发生,导游人员应( ). [多选题]一般会计报表的数据来源有____. [单选题]一个n个顶点的连通无向图,其边的个数至少为( ). [单选题]选用对比剂注射参 ...

  10. cpu和内存的关系(CPU,内存和cache之间的关系)

    CPU.内存.主板三者间关系.插座形式.安装注意事项 这种问题很难回答,你可以找一本书看,呵呵 .我只能说出一点,CPU读取数据速度很慢,因为要从硬盘读取,所以用内存来读取.但是用 内存卡,段电后会丢 ...

最新文章

  1. PyQt4编程之简短地做出多个选择框
  2. 特岗计算机老师年度总结,特岗教师个人年度工作总结
  3. 技术解析:如何用pyecharts绘制时间轮播图
  4. java地图点线面_openlayers之点,线,面(以城市,河流,省份为例,分别对应点线面)...
  5. 深圳部分写字楼租金暴跌,为何会出现这种情况?
  6. pythonresponse对象的属性_Scrapy中response属性以及内容提取
  7. php like %%,thinkphp实现like模糊查询实例
  8. 百度谷歌2013年母亲节 赏析中文搜索引擎庆祝涂鸦
  9. 一个简单的c# 贪吃蛇程序
  10. H - 命运(动态规划) 数塔问题
  11. JExcel - 学习总结(1)
  12. 地震日记-2008-05-14
  13. 【路径大全】iphone所有文件路径。CYDIA
  14. 音视频技术开发周刊 | 243
  15. 今天讲一下完整的前端模块化,很实用
  16. 中文姓名按照拼音排序-python
  17. php 算生存曲线,生存曲线(三):统计分析方法这么多,到底选哪个?
  18. 无法接收到github邮箱验证码的解决方法
  19. git教程(涵盖GitHub\Gitee\Gitlab)
  20. Kafka 消息中间件

热门文章

  1. 用WMI修改计算机名和IP
  2. [CTO札记]Yew敏捷软件项目管理最佳实践
  3. 关于display相关的一些内容(总体)
  4. 网页设计制作必须知道的10个秘诀
  5. Git基础-获取仓库、提交、查看历史、撤销
  6. JavaScript原生的节点操作
  7. HotSpot 自动内存管理笔记与实战
  8. C语言——指针与结构体 内存的动态分配
  9. Update: OCS 2007 R2 (RTM) Download and Documentation
  10. 与股权投资有关的抵消分录的编制