MySql链表语句--博客园老牛大讲堂

为什么链表?--博客园老牛大讲堂

  因为表与表之间有关系,而且查询时需要两张表的某些数据。

链表的前提是:表与表之间必须设置主外键吗?

  不是的,其实表与表之间不需要设置主外键关系,用数据库语句就可以实现链表查询,删除,修改,增加等操作。

为什么要设置主外键呢?

  通常我们看到表与表之间有关系,常常设置主外键。为什么?其实这样做是为了规范!假设一个不了解你表结构的人,都能够任意的修改你的外键。那这个表就不严谨了。

我们到底设不设主外键呢?
  分情况:1、如果表结构简单,少量的表。逻辑不复杂。那么这个就不需要设置主外键了。特别对于数据库语句不熟悉的人,就方便多了。

      2、如果表结构复杂,有大量的表,逻辑复杂的。那么自己不可能记住所有主外键之间的关系,那么就需要设置主外键。

怎样实现链表查询呢?

  链表查询又分为:左联表,右链表。等.

  链表不仅可以进行查询,还可以链表查询,链表增加,链表删除,链表修改。

 例子一、--博客园老牛大讲堂

  (左联表)、现在有两张表,a表与b表,a表主要字段有:id,a?1,a2,a3。b表字段有:id,b1,b1_id。其中a表的id为主键,b1_id为外键。如

     思路:左连接就是以左边的a表为基础,查询出所关联的数据。多余的数据则清除,缺失的数据则为空。

 

左链表查询结果如图所示:

  

例子二、--博客园老牛大讲堂

  (右联表)、现在有两张表,a表与b表,a表主要字段有:id,a?1,a2,a3。b表字段有:id,b1,b1_id。其中a表的id为主键,b1_id为外键。图如上所示

     思路: 右连接就是以右边的b表为基础,原理与左联接类似。

  如果是右连接的结果是:

例子四、--博客园老牛大讲堂

    上面都是链表查询结果,下面我说一个链表删除操作。

    题目:现有两张表:chapters表:id(主键),name。division表:id(主键),name_id(chapters的外键),part。

    要求:实现链表删除操作。

    语句:DELETE c,d FROM chapters c JOIN division d ON c.id=d.name_id WHERE c.id=1

        

时间: 2024-07-30 13:40:47

MySql链表语句--博客园老牛大讲堂的相关文章

Java的日期字符串的转换---博客园老牛大讲堂

关于日期的转换:参考下面代码---博客园老牛大讲堂 代码目的:1.主要是把字符串的日期类型转换为日期类型 2.计算n天后的日期. 3.把计算结果转化为字符串. 详细了解字符串之间的转换:http://www.blogjava.net/Werther/archive/2009/06/09/280954.html package text; import java.text.ParseException; import java.text.SimpleDateFormat; import java.

JavaScript的基本用法--博客园老牛大讲堂

我最近总结了关于javaScript的用法,下面分享给大家--关注博客园老牛大讲堂 数组的用法: var arr=[10,1,66,55,100,5,2,7,1]; var arr1=[4,8,11]; console.log(arr.push(4,8,11));//添加末尾元素,返回数组的长度 console.log("末尾添加元素:"+arr); console.log(arr.unshift(4,8,11));//添加头元素,返回数组长度 console.log("开头

H5混合开发APP配置以及第一个工程--博客园老牛大讲堂

前段时间有人问我怎样用H5开发app,我恰好知道就把步骤粘出来,有不懂的地方给我留言,我再修改.--博客园老牛大讲堂 思想:首先用Hbuilder开发工程,把自己的工程粘贴到APICloud的工程里面.然后用网上的APICloud的内容打包内容. 环境:Hbuilder,夜神模拟器,APICloud开发工具. 提示:因为APICloud因为提示功能不好,所以建议如果想开发就用Hbuilder开发.开发完就把css,js,img粘里面就行了. 第一.首先下载一个APICloud开发环境(APICl

微信小程序开发---博客园老牛大讲堂

最新搞了个微信小程序,一切东西都是从头学习.我简单的介绍一下开发中遇到的几个技术点和前提--------博客园老牛大讲堂 注意事项:1.小程序要认证,不认证将来就没办法让别人看到,别人就搜索不到. 2.不要用margin和pandding.因为用这些的话,容易横向屏幕溢出的情况 3.小程序的开发和angular类似,跟其他的都差的远. 第一,怎么做小程序的底部导航.----博客园老牛大讲堂 代码:在app.json文件里面添加代码,selectedIconPath是选中状态的图片,iconPat

关于ajax跨域通信-博客园老牛大讲堂

一.首先ajax是什么? ajax是一段代码,是用来解决前端(H5)与后端(Java,php)通信的. 二.不用ajax行不? 可以啊!只要你自己写的H5页面是静态的,或者不与后台进行通信,进行数据的交流,不用ajax也行. 三.ajax能实现跨域吗? 什么是跨域:例如:你写了一个好看的页面,但是页面的某些数据需要和后台进行交互,怎么做呢,用ajax啊!但是!对与Java程序就不行了,代码全对,但就是老报错.这就是跨域了.就好像你连接不上网一样.ajax对于Java程序来说能实现跨域的! 四.怎

APICloud连接夜神模拟器--博客园老牛大讲堂

条件:夜神模拟器,自己电脑必须连接同一个局域网. 第一.首先在夜神模拟器上安装一个APILoader.(APILoader有一个缺点:它是强制更新) 第二.打开APPLoader,双击其中的白圈,出现. 如图: 其中的的上面的是IP地址,下面的是端口号.点击连接就行.其中IP地址和端口号,下面介绍. 第三.用APICloud创建一个工程.myFirstApp工程.index.html是默认启动项. 第四.点击帮助-->查看WiFi真机同步地址. 这里的地址填到上面. 第五.运行方式和安卓开发一样

H5移动开发底部导航-博客园老牛大讲堂

一.H5分类 网页开发,移动开发,移动混合开发, 二.所用知识点: APICloud:APICloud是为了开发APP的,所以如果用H5开发的移动端,需要发送短信,获取照相机等就要用APICloud的了. aui框架:aui框架就是专门开发移动端的框架. 三.怎样用H5开发移动端? 我建议如果用H5开发移动端,全都用H5网页开发.如果涉及到发送短信和照相等操作,再用APICoud开发. 1 <!doctype html> 2 <html> 3 4 <head> 5 &l

H5支持所有浏览器-博客园老牛大讲堂

只需要使用下面的模板就好了. 提醒:其中的注释一定不要删除. 1 <!DOCTYPE html> 2 <html lang="zh-CN"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 6 <!-- IE=ed

JAVA的JSON数据包装-博客园老牛大讲

一.什么是json呢? {     "id":"1",     "username":"老牛大讲堂",     "password":"123" } 这就是json数据.用来和页面(HTMl)进行通信的. 二.通信为什么用json呢? 没有为啥,因为都用json.前端也好,后端也好,都用json数据传输. 三.java怎样把数据包装成json数据? 第一步:导入jar包.jar包自己下吧