MySQL多表查询
MySQL多表查询
多表查询:
从多张表中查询数据
示例:
1select * from tb_emp,tb_dept where tb_emp.dept_id = tb_dept.id;
内连接:
相当于查询A、B表交集部分的数据
隐式内连接:
1select 字段列表 from 表1,表2 where 条件....;
示例:
1select tb_emp.name,tb_dept.name from tb_emp,tb_dept where tb_emp.dept_id = tb_dept.id;
显式内连接:
1select 字段列表 from 表1 [inner] join 表2 on 连接条件
示例:
1select tb_emp.name,tb_dept.name from tb_emp inner join tb_dept on tb_emp.dept_id=tb_dept.id;
外连接:
左外连接:
查询左表所有数据(包括两张交集部分数据)
1select 字段列表 from 表1 left [outer] join 表2 on 连接条 ...
MySQL数据查询
MySQL数据查询
DQL
全称为Data Query Language(数据查询语言),用来查询数据库表中的记录
关键字:SELECT
语法:
基本查询:
select 字段列表 from 表名列表
查询多个字段:
select 字段,字段2,字段3 from 表名;
1select username, password from tab_emp;
查询所有字段(通配符)
select * from 表名;
1select * from tab_emp;
设置别名:
select 字段1 [as 别名1],字段2 [as 别名2] from 表名
1select name as "姓名", entrydate as "入职时间" from tab_emp;
去除重复记录:
select distinct 字段列表 from 表名;
1select distinct job from tab_emp;
条件查询:
在基本查询的后面添加
where 条件列表
比较运算 ...
MySQL数据库操作
数据库操作
创建数据库:
1create database [if not exists] 数据库名;
使用数据库:
1use 数据库名;
查询所有数据库:
1show databases;
查询当前数据库:
1select database();
删除数据库:
1drop database [if not exists] 数据库名
上面的创建和删除中的if not exists是可选参数,当需要创建或者删除的数据库不存在的时候用这个可以不出现报错
数据表操作
约束:
概念:
作用于表中字段上的规则,用于限制存储在表中的数据
目的:
保证数据库中数据的正确性,有效性和完整性
常用约束:
约束
描述
非空约束
限制该字段值不能为null
not null
唯一约束
保证字段的所有数据都是唯一的不重复的
unique
主键约束
主键是一行数据的唯一标识,要求非空且唯一
primary key
默认约束
保存数据时,如果未指定该字段值,则采用默认值
default
外键约束
让两张表的数据建立 ...
方法引用
方法引用
将已经有的方法拿过来用,当作函数式接口中抽象方法的方法体
引用处必须是函数式接口;
被引用的方法必须已经存在
被引用方法的形参和返回值,需要跟抽象方法保持一致
被引用方法的功能要满足当前需求
:: :方法引用符;
方法引用的分类
引用静态方法
格式:
类名::静态方法
范例:Integer::parseInst
123456789101112import java.util.ArrayList;import java.util.Collections;public class MethodCite1 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); Collections.addAll(list, "1", "2", "3", "4", "5" ...
Lambda表达式
lambda表达式
lambda表达式:是一个可传递的代码块,可以在以后执行一次活多次;是一个匿名函数,是对匿名函数的简写形式,可以将lambda表达式理解为是一段可以传递的代码,可以卸除更简洁、更灵活的代码。
lambda表达式的核心:实现的接口中的抽象方法中的形参列表 -> 抽象方法;
Lambda表达式的基本作用
简化函数式接口的匿名内部类的写法
Lambda表达式的使用前提
必须是接口的匿名内部类,接口中只能有一个抽象方法
Lambda表达式的省略写法:
参数类型可以省略不写
如果只有一个参数,参数类型可以省略,同时()也可以省略
入股Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略
lambda表达式的语法
表示方法:实现的接口中的抽象方法中的形参列表 -> 抽象方法;
简单示例:
无返回值,有形式参数的抽象方法:
1234567891011public class Mytest { public static void main(String[] args ...
Stream流
Stream流
Stream流中过滤器的简单实例:
1234567891011public class StreamMain { public static void main(String[] args) { ArrayList<String> arrayList = new ArrayList(); arrayList.add("张无忌"); arrayList.add("赵敏"); arrayList.add("张三丰"); arrayList.add("周芷若"); arrayList.add("张强"); arrayList.stream().filter(name -> name.startsWith("张")).filter(name -> name.length() == 3).forEach(Syst ...