Java面试宝典书籍-数据库

数据库 (注:知识都来源于Java面试宝典书籍,此处只为学习)

主要是Javaweb,对数据库并不怎么深入

一、Mysql

1. sql的select语句完整的执行顺序

  • from 子句组装来自不同数据源的数据

  • where 子句基于指定的条件对记录行进行筛选

  • group by 子句将数据划分为多个分组

  • 使用聚集函数进行计算

  • 使用 having 子句筛选分组

  • 计算所有的表达式

  • select 的字段

  • 使用 order by 对结果集进行排序

SQL 语言不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处 理。但在 SQL 语句中,第一个被处理的子句式 FROM,而不是第一出现的 SELECT

因此查询处理的步骤序号:

(1) FROM <left_table>
(2) <join_type> JOIN <right_table>
(3) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(8) SELECT(9) DISTINCT
(9) ORDER BY <order_by_list>
(10) <TOP_specification> <select_list>

// 每个步骤都会产生一个虚拟表,该虚拟表用作下一步骤的输入,只有最后一步生成的表才会给调用者

2. 聚合函数

聚合函数是对一组值进行计算并返回单一的值的函数,它经常与 select 语句中的 group by 子句一同使用

3. SQL之连接查询(左连接和右连接的区别)

4. sql之sql注入

5. Mysql性能优化

  • 当只要一行数据时使用 limit 1

  • 选择正确的数据库引擎

  • 用 not exists 代替 not in

  • 对操作符的优化,尽量不采用不利于索引的操作符

6. sql面试题

http://www.cnblogs.com/qixuejia/p/3637735.html

create table student(
    s_id int primary key not null auto_increment,
    s_name varchar(32),
    s_age int,
    s_sex varchar(8) 
);

https://www.jianshu.com/p/8099df2b7af1  插入数据的六种写法

// 第一种:向原表中某些字段中插入一条记录
insert into student (sname,sage,ssex) value ("zhangsan",18,"男");

// 第二种:向原表的字段中插入多条记录的方法一
insert into student (sname,sage,ssex) values ("lisi",19,"男"),("wangwu",20,"男");

// 第三种:向原表的字段中插入多条记录的方法二   不建议用,不适合主键自增的表(需要自己写行号)
insert into student select 4, "qianliu",21,"男" union all 
select 5, "xiaohong",22,"女";

7. Mysql数据库架构图

8. Mysql架构器中各个模块都是什么

9. Mysql存储引擎有哪些

10. Mysql事物介绍

1) 事物的四大特征

  • 原子性

  • 一致性

  • 隔离性

  • 持久性

2) 隔离级别

11. 如何创建存储过程

12. Mysql触发器怎么写

二、Oracle

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值