小白的进阶之路13
Posted hanmengdi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白的进阶之路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
);
连接查询:
内外连接
最后一行是去笛卡尔积
外链接:
左外,右外连接。
以上是关于小白的进阶之路13的主要内容,如果未能解决你的问题,请参考以下文章