栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

我噶意~数据库03(连接查询,JDBC)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我噶意~数据库03(连接查询,JDBC)

一、索引

为了提高查询的效率,索引会单独生成一张表,要合理的使用索引。

单值索引:一个索引只包含一个字段。

唯一索引:一个索引只包含一个字段,但字段的值不能重复,允许有空值

复合索引:一个索引可以包含着多个字段。

使用:1、创建索引。2、使用索引

查询索引格式:show index from 表名

创建索引:create index 索引名 on 表名(字段名);

使用索引:按照索引列去查。还是输入查询语句去查

想要查看SQL语句的执行性能、计划,来看看SQL有没有使用索引去查。关键字是-----explain

位置在使用在SQL语句前面。

例:EXPLAIN
SELECt * FROM emp WHERe ename='任愉悦'
1、创建唯一索引:通常是表刚创建完,就添加唯一索引,---关键字是unique

#创建唯一索引--索引列的值必须唯一
CREATE UNIQUE INDEX 索引名 ON 表名(字段名)
CREATE UNIQUE INDEX bindex ON dept(loc)

2、创建复合索引

#如果您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
CREATE INDEX 索引名 ON 表名 (字段1, 字段2)
CREATE INDEX PIndex ON Persons (LastName, FirstName)

复合索引拥有最左特性:当我们创建一个联合索引(复合索引)的时候,如(k1,k2,k3),相当于创建了(k1)、(k1,k2)和(k1,k2,k3)三个索引,这就是最左匹配原则,也称为最左特性。如果没有查询的时添加k1查询,那么复合索引会失效。

3、删除表里的索引---格式:alter table 表名 drop index 索引名

二、视图

概述:和索引一样,都是对数据库优化的有效方案,缓存SQL语句的执行结果,可以当作表来用

创建视图:语法:create view 视图名 as 查询的SQL语句。

查询视图:select * from 视图名。

特点:1、可以把视图当作表来使用

          2、视图可以被共享,视图屏蔽了真实业务表的复杂性,里面的数据都是SQL查询到的数据

坏处:无法被优化,视图一旦被创建,SQL无法被优化。

三、多表联查

1、笛卡尔积:通过逗号连接表名-----------select * from 表1,表2。后面可以加where判断

表名1.字段名= 表名2.字段名,用这个来连接两个表的关系。

格式:select * from 表名1,表名2,表名3----最多可以一起查三张表。

2、连接查询:1、内连接:inner join --取两张表的交集

                        2、左连接:left join---取左表的所有与右表满足条件的

                        3、右连接:right join ---取右表的所有与左表满足条件的

连接查询的格式:select * from 表1 join 表2 on 描述两张表关系的 where 业务代码

内连接格式:select * from 表1 inner join 表2 on 描述两张表关系的 where 业务代码

左连接格式:select * from 表1 left join 表2 on 描述两张表关系的 where 业务代码

右连接格式:select * from 表1 right join 表2 on 描述两张表关系的 where 业务代码

练习:

#SQL的练习:
#练习1:查询部门编号是1的员工姓名
SELECt NAME FROM emp WHERe id=1001;
#练习2:查询员工姓名叫jack的部门信息
SELECt dept.name FROM emp JOIN dept ON emp.dept_id=dept.id WHERe emp.name='王海涛'
#练习3:查询岗位是总监所在的部门信息
SELECt dept.* FROM emp JOIN dept ON emp.dept_id=dept.id WHERe emp.job='经理'
#练习4:列出java开发部 部门下的所有员工的信息
SELECt emp.* FROM emp JOIN dept ON emp.dept_id=dept.id WHERe dept.name='培优部'
#练习5:查询部门地址在北京和广州的员工信息
SELECt emp.* FROM emp JOIN dept ON emp.dept_id=dept.id WHERe dept.loc='北京' OR dept.loc='上海'
SELECt * FROM emp JOIN dept ON emp.dept_id=dept.id

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275495.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号