Javaweb入门 数据库第二天
接着说昨天语法中提到的drop,delete和truncate的区别
drop用于删除库和表,不能用于删除表记录
delete和truncate都可以用于删除表记录,不能用于删除库和表
而delete和truncate之间的区别在:
delete可以删除表中的某一部分记录,也可以删除表中的所有记录,而且是一条一条的删除
truncate只能一次删除所有的表记录,删除时不是一条一条的删,而是删除表,再重新创建表
查询时mysql中常见的函数
ifnull(列,值)
对指定列的值判断是否为null,如果为null,就用括号后面的值进行参数替换,查询不会修改表中的值
count(列或者*)
count函数是对指定的列或者所有列统计行数,*代表所有列
max/min(列名)
max(列名)--对指定的列求最大值
min(列名)--对指定的列求最小值
sum(列)
对指定的列求和
avg(列)
对指定的列求平均值
curdate()
获取当前时间 格式:年月日
curtime()
获取当前时间 格式:时分秒
sysdate()/now()
获取当前时间 格式:年月日 时分秒
其它函数
ceil(数值)--向上取整 floor(数值)--向下取整 round(数值)--向下取整 rand(数值)--随机数
外键和表的关系
外键约束
现实生活中有很多数据间往往是有关系,比如员工和部门之间存在一定的关系,学生和老师之间也存在一定的关系,而这些关系需要我们保存起来,那么:
如何在数据库中才能保存两张表数据之间的对应关系?
通常我们可以在其中一张表中添加一个列,用来保存另外一张表的主键,从而来保存两张表的对应关系,而这个列就是这张表的外键
什么是外键
所谓的外键就是用于通知数据库两张表数据之间对应关系的一个列,数据库会通过外键来维护两张表的对应关系
指定某一列外键和不指定外键有什么区别
如果不指定外键,只是在其中一张表中添加了一个列用于保存另外一张表的主键,同样可以保存两张表之间的对应关系,只不过这段关系只有我们开发人员知道,数据库不知道两张表之间是有关系的,因此数据库不会帮我们来维护这段关系
如果指定外键,通过外键通知数据库两张表之间有对应关系,数据库就会帮我们维护这段关系,比如在指定外键后,如果想删除一个部门,数据库会在删除之前检查该部门下是否还有员工,如果有数据库就会阻止删除
添加外键的方法
创建表时添加外键
创建表过后指定外键
删除外键
表关系
一对一
比如学生在固定教室上课,那么这个教室就只对应这一个班,而这一个班也只对应这一个教室,对于一对一的两张表,可以在任意一张表中添加列,保存另外一张表的主键,从而保存两张表之间的关系
一对多或多对一
比如你对应的父亲只有一个,而你的父亲对应的孩子有几个,对于一对多或多对一的两张表,可以在多的一方添加列,保存另一方的主键,从而保存两张表之间的关系
多对多
比如上课,教你的老师有多个,而一个老师也教多个学生,对于多对多的关系,可以拆分成多张一对多的关系,无法在两张表中添加列保存关系,但我们可以添加一张第三方表(专门保存两张表的关系)保存两张表的主键,从而保存两张表的关系.
关联查询和外连接查询
笛卡尔积查询
同时查询两张表,其中一张表的记录是m条,另一张表的记录是n条,笛卡尔积查询的结果是m*n条,语法:select * from 表名,表名;
由于笛卡尔积查询的结果中包含大量错误数据,因此我们一般不会直接使用这种查询,我们可以从笛卡尔积查询的结果中通过where条件剔除错误的激励,保留正确的记录,就是我们最终想要的结果
关联查询
将两张或两张以上的表按照指定条件查询,将结果显示在一张表中
语法:select 列 from 表名,表名..... where......;
左外连接查询
显示左侧表中的所有记录,如果右侧表中没有对应的记录就显示null
语法:select 列 from a left join b on(a.id=b.id) ; on(a.id=b.id)是条件语句
右外连接查询
显示右侧表中的所有记录,如果左侧表中没有对应的记录就显示null
语法:select 列 from a right join b on(a.id=b.id) ; on(a.id=b.id)是条件语句
子查询
所谓的子查询其实就是将一个查询得出的结果,作为另外一个查询的条件
语法:select ..... from ...... where .....(select ...... from .......);
Javaweb入门 数据库第二天的更多相关文章
- Javaweb入门 数据库第一天
数据库概述 本菜鸟使用的数据库软件为Mariadb,以下内容都是以Mariadb数据库软件来写的学习总结. 数据库 所谓的数据库就是用于存储.管理数据的仓库,数据库根据底层存储数据结构的不同可以分为很 ...
- Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD
原文:Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链 ...
- Mybatis最入门---数据库的下载与安装
[一步是咫尺,一步即天涯] 近期.因为工作进度调整,之前的Spring教程就先临时告一段落了,兴许找个时间继续更新,假设有那位看官想了解某个内容的,敬请留言,大家一起学习. 作为数据库工具的使用开篇. ...
- JavaWeb学习总结第二篇--第一个JavaWeb程序
JavaWeb学习总结第二篇—第一个JavaWeb程序 最近我在学院工作室学习并加入到研究生的项目中,在学长学姐的带领下,进入项目实践中,为该项目实现一个框架(用已有框架进行改写).于是我在这里记录下 ...
- JavaWeb入门——Tomcat的目录结构
JavaWeb入门——Tomcat的目录结构 摘要:本文主要了解了Tomcat的目录结构. 目录结构 打开Tomcat的目录,可以看到如下文件和文件夹: bin目录 该目录下存放的是二进制可执行文件. ...
- JavaWeb入门——在Linux环境下安装Tomcat服务器
JavaWeb入门——在Linux环境下安装Tomcat服务器 摘要:本文主要学习了如何在Linux环境下安装Tomcat服务器. 准备工作 检查Java环境变量 检查系统是否配置了Java的环境变量 ...
- JavaWeb入门——在Windows环境下安装Tomcat服务器
JavaWeb入门——在Windows环境下安装Tomcat服务器 摘要:本文主要学习如何在Windows环境中下载并安装Tomcat服务器. 下载 获取安装包 推荐去官网上下载Tomcat: htt ...
- JavaWeb入门——背景知识
JavaWeb入门——背景知识 摘要:本文主要介绍了Web服务器的相关知识. 概念 什么是JavaWeb JavaWeb,是用Java技术来解决相关Web互联网领域的技术的总称.Web包括:Web服务 ...
- javaweb和数据库的简易商城系统
这是一个基于Javaweb和数据库的简易商城系统.为大二夏季小学期完成. 目录结构 主要功能截图为: 一.购买用户 1.首页(除此界面其余界面访问需要登录才能进入) 查看商品 添加购物车 查看购物车 ...
随机推荐
- 办公利器-一行代码搞定http服务
平时给内网的同事分享个文件,直接用python启动一个http服务,方便又简洁: python3: python -m http.server [port] 默认端口为8000 python2: py ...
- spring cloud 系列第6篇 —— zuul 服务网关 (F版本)
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.zuul简介 1.1 API 网关 api 网关是整个微服务系统的门面 ...
- linux下svn安装
1.环境centos6.4 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve -d -r /www/sv ...
- nginx之gzip压缩
nginx的gizp压缩 为了使网站节省带宽和加快访问速度,在服务器方面的一个优化的就是使用nginx提供的gzip压缩. 一.使用压缩原理: 1.当用户使用浏览器访问网站时,就是在发送一个http请 ...
- Axure中怎么制作锚点
实现目标 点击导航条不同的菜单,页面跳到菜单相应的位置,实现页面自动滚动. 1. 拖入编辑区3个矩形,并相应命名为菜单1,菜单2 ,菜单3: 2. 再新建3个想要制作的文本框准备进行锚点滚动: 3 ...
- 详解Linux运维工程师必备技能
张戈大神是腾讯的一名运维,张戈博客也是我接触到第一个 Linux 运维师的博客,最近也在接触 Linux,说到工具,在行外可以说是技能,在行内一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几 ...
- Java上机题(封装)(编写student类)
今天帮大一的童鞋写Java上机题 题目虽然很简单,但是刚拿到题目的时候愣了一下,然后就疯狂get set QuQ 其实这是一个特别基本的封装的题目(之前实验室面试大二的时候竟然还有蛮多人不知道封装的概 ...
- WIFI密码破解全攻略
开篇介绍 目前无线网络加密技术日益成熟.以前的wep加密方式日渐淘汰,因为这种加密方式非常容易破解,当然现在还是有不少使用这种加密方式无线网络.现在大部分的无线网络都是使用wpa/wpa2方式来加密的 ...
- 装饰器&递归
装饰器 1.开放封闭原则 在源码不改变的情况下,增加一些额外的功能 对扩展是开放的,对修改是封闭的 1.1 开放原则:增加额外新功能 1.2 封闭原则:不要改变源码 2 装饰器 满足开放封闭原则, ...
- 配置Windows server 用户和组权限实验详解
目录 操作步骤如下: 在Windows Server开始菜单下点击管理工具下的计算机管理 新建用户 用户创建完毕 新建文件夹 配置技术部读取"技术资料"和"常用软件&qu ...