小白的进阶之路13

昨天说到了级联保存,那么什么是级联保存。

我们都知道,双向保存就是customer和linkman都要保存,那么单项保存呢?单向保存就是只保存一方,而不需要保存另一方,但是这样会出异常,这是就需要级联保存

只需要保存customer,会自动的将linkman保存到数据库中。

级联保存室友方向性的,保存客户级联联系人,保存联系人级联客户。

说道数据库,不得不承认,数据库是我的弱项,我今天想好好地补一下,然后再继续hibernate。

首先要知道:SQL是结构化查询语言:structure query language

那么SQL的作用是啥:用客户端使用SQL来操作服务器。

mysql,和 oracle都有方言。比如在mysql 中limit 在oracle中看不懂。

在mysql中,不区分大小写。

SQL的语言分类:

DDL:对数据库或表的结构操作。数据定义语言:data definition language

DML:对表的记录进行更新,比如增加,修改,和删除 。数据模型语言:Data Manipulation Language

①:update +表名+set+修改内容         where +条件

②:alter+表名+add/modify/drop+字段名

DQL:对表的记录查询。数据查询语言:data query language

在控制台中,第一条查询语句        显示数据库:show database;(注意分号)

查询数据库:use +数据库名;

显示表名:show tables;

查看表结构:desc +表名;

删除表:drop+表名;

创建数据库:create  database +数据库名;

删除数据库:drop database +数据库名;

基本数据类型:

int:

double:

decimal:

char:固定长度255;不会有一个字节来存储数据长度,多同于存储身份证号,卡号,各种固定长度的号,时间的格式,或UUID(32位)

varchar:变长:会单独留出一个字节来记录所存数据的长度

date:

time:

DDL

创建表:

修改表:

alter table +表名称(

add (增加项)

);

alter table +表名称

modify +列明+列新类型

alter table+表名称

drop+列名

修改表名

alter table 原名称 rename to 新名称;

数据库中所有字符串类型,都要使用单引号,甚至是日期类型,也要使用单引号。

DML

添加记录。

部分列名,其他为null;

没有列名,全部设置。

修改记录

全male属性。

有条件修改

删除记录

delete from +表名

DQL:select +字段名  from+表名  where +条件

查不同姓名的记录

查看整张表:select* fromstudent;

列运算:select salary*1.5 from employee;

起别名:select sno,sname name from  student;

条件查询:select ()from () where ()

select  *  from  employ  where  salary is   not   null;

select * from employ where job in (“经理”、“分析师”);

模糊查询:关键字 like   ‘_‘   下划线代表着一个字多多个字。

select * from employ where name like “张_”;

排序:关键字 order by;ASC或默认   表示升序   DESC 表示降序

select * from employ order by salary;

聚合函数:count

select  count (salary)from  employ;

表示查询salary不为null;

select max(salary) from employ;

select min(salary) from employ;

select sum(salary) from employ;

select avg(salary) from employ;

分组查询:关键字 group by

每个部门工资大于15000的人数

每个部门工资大于15000的人数大于等于2   分组前条件(where sal>15000):工资大于15000,分组后条件(having count (*)>=2) 人数大于等于2;

分页查询:mysql方言是  limit 为关键字:

select * from employ limit 8,5;(显示从下标为8,即第九行开始之后的5条记录)

一页的记录是10行,查询第三页;(当前页数-1)*一页记录数

select * from employ limit 20,10;

not in

为空 is null,不为空 is    not   null ;

一般   “每个”、 这种词语,就是分组,用group by;   “数量”’  这种词语就是 count(*);

创建主键。主键的特性:非空,唯一,可被引用。

关系模型:一对一,一对多,多对多。

主表和从表的关系,一是主表,多是从表。

双向关联:一方中引用了多方,多方中引用了一方。

public class employ{

  private department dep;

}

public class department{

private List<employ> ls ;

}

外键是必须引用主键,外键可以为空,可以重复,一张表中可以有多个外建。

多方中包含一方的主键。一对多,关系模型。

emp表中的外键名可以自己取,不与deptno相同。

一对一关系模型。

外键必须引用主键,但是引用哪个主键??在一对一中,不能引用重复的外键,所以,使用在自己的主键当做外键。

多对多的表中,需要两个外键,并且需要建立一个关联表。

create table student(

sid int,

sname  varchar(20),

);

insert into values(1,“刘德华”);

insert into values(1,“马德华”);

insert into values(1,“李德华”);

create table teacher(

tid  int,

tname  varchar(20),

);

insert into values(1,“张老师”);

insert into values(1,“韩老师”);

create table stu_tea(

stu  int,

tid int

);

连接查询:

内外连接

最后一行是去笛卡尔积

外链接:

左外,右外连接。

原文地址:https://www.cnblogs.com/hanmengdi/p/9452784.html

时间: 2024-07-30 00:17:19

小白的进阶之路13的相关文章

零基础Python学习路线,小白的进阶之路!

近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学习路线图.对于一个零基础的想学习python的朋友来说,学习方法很重要, 学习方法不对努力白费 一定要有一个正确的学习线路与方法零基础Python学习路线,小白的进阶之路!零基础Python学习路线,小白的进阶之路!必学知识:[Linux基础][Python基础语法][Python字符串][文件操作

小白的进阶之路1

在登陆的页面中,需要一个表单,<form action="\goods\loginServlet"  method="post" > 为什么要有这个servlet? 答:需要将这个用户填好的表单交给其他的东西,比如服务器,或者servlet来继续处理或响应. 用户名:<input  type="text" name="username ">. 密   码:<input type="pas

小白的进阶之路2

今天遇到的第一个问题就是我写的jsp代码在 引进css样式的时候,出现了问题,我引不进去. 试了好多次,起先的代码是<link  rel="stylesheet"  type="text/css" src="<c:url value='/css/register.jsp'\>">. 后来将register.css移到和jsp的同一路径下,代码改成<link rel="stylesheet" typ

小白的进阶之路7

注解: 昨天学了配置文件,感觉还不错,确实之前new的方式好了很多,今天继续学习注解. OK,开始进的入门案例 第一步,配置扫描注解, 注意:其中base-package  后面的参数是应new的对象所在包. 第二步,在需要注解的实体类加上注解. 第三步 就是和之前一样.... 根据刚才的小例子,我测试了一下,发现了有错误,but-我语法没错啊... 在我各种调试之后发现,缺个jar包,只有配置文件的六个jar包是不够的,  jar包害死人啊!还有需要一个aop的jar包. @component

小白的进阶之路9

---恢复内容开始--- 今天开始学习spring的事物管理 先写一个转账的例子: 动手之前,先把逻辑搞清楚: 持久层: AccountDao(){ ------>接口 public void in(String in,double money): public void out(String out,double  money): } AccountDaoImpl{------->实现类,配置文件需要注入 private serviceDao sd;------->配置文件注入时,采用

小白的进阶之路12

---恢复内容开始--- 昨天上午弄了一个简单的页面,就是关于客户管理系统,想着实现保存功能,可是问题卡在页面跳转上,从输入信息页面就是跳不到saveservlet,将用户属兔的信息用表单传给servlet,然后servlet读取后,用map封装到一个customer对象中,算了不多说,看代码. 然后今天我一生气,直接省略了页面传值这一步骤, 下面是service层. 最后是dao层 打开Tomcat,输入框输入 刷新数据库,得到了想要的结果. 如果其中出异常呢???打印结果将会发生变化,因为这

小白的进阶之路14

---恢复内容开始--- servlet 是Javaweb的三大组件之一. 三大组件:servlet,filter,lisoner 客户端通过服务器想浏览器发出请求. 我们所写的AServlet.BServlet,都是由我们实现servlet接口的实现类. servlet是单例的,一个类一个servlet,他们的功能是不同的.但他是线程不安全的,而且效率是高的.有可能出现一个servlet处理同时处理多个请求,所以最好不要在servlet中随便创建成员变量,有可能出现一个线程是读操作,另一个线程

小白的进阶之路16

cookie:是服务器产生保存到浏览器,是http协议制定的,下一次浏览器在请求服务器时,浏览器将上一次访问产生的cookie在还给服务器. cookie是一个键值对,服务器保存cookie的响应头. cookie不能跨浏览器. cookie的属性:name:value,还有一个是生命周期,即maxage:<0; 表示cookie只在浏览器的内存中存在,浏览器进程结束,cookie则死亡. =0;访问浏览器时则死亡. >0:可以自己设置时间. 跨域cookie:比如在百度登录账号后,在百度云中

GO语言的进阶之路-面向对象编程

GO语言的进阶之路-面向对象编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 当你看完这篇文章之时,我可以说你的Golang算是入门了,何为入门?就是你去看Docker 源码能看懂60%的语法结构,因为涉及一些unix的代码可能没有Linux运维基础的同学在学习的时候会很吃力,看起来也会带来一定的难度,如果有时间的话我会给大家解析Docker部门精辟的源码.好了,回归正题吧,我们今天要学习的内容是什么呢?即面向对象编程.当然,不要用屌丝的心态来说:"那要是没对象的还咋编程呢