面试:数据库

数据库、Mysql、Oracle
摘要由CSDN通过智能技术生成

1.MySQL 和Oracle 的区别?
1.1 Oracle 是大型数据库而Mysql 是中小型数据库,Oracle 市场占有率达40%,Mysql只有20%左右,同时Mysql 是开源的而Oracle 价格非常高。
1.2 Oracle 支持大并发,大访问量,是OLTP 最好的工具。
1.3 Oracle和Mysql 操作上的一些区别
①主键Mysql 一般使用自动增长类型,在创建表时只要指定表的主键为autoincrement,插入记录时,不需要再指定该记录的主键值,Mysql 将自动增长;Oracle 没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM 框架是只要是native 主键生成策略即可。
②单引号的处理MYSQL 里可以用双引号包起字符串,ORACLE 里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
1.4 MySQL的分页关键词limit,Oracle 的分页关键词是rownum

2.Sql 之连接查询

外连接:

1.1 左连接(左外连接)以左表为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为NULL;
1.2 右连接(右外连接)以右表为基准进行查询,右表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为NULL;
1.3 全连接就是先以左表进行左外连接,然后以右表进行右外连接。
内连接:
显示表之间有连接匹配的所有行。

3.Sql 之聚合函数:
聚合函数:

SQL 中提供的聚合函数可以用来统计、求和、求最值等等。
分类:
–COUNT:统计行数量
–SUM:获取单个列的合计值
–AVG:计算某个列的平均值
–MAX:计算列的最大值
–MIN:计算列的最小值
4.Sql 之SQL 注入
举例:
select admin from user where username='admin' or 'a'='a' and passwd=''or 'a'='a'
防止SQL 注入,使用预编译语句是预防SQL 注入的最佳方式,如
select admin from user where username=?And password=?
使用预编译的SQL 语句语义不会发生改变,在SQL 语句中,变量用问号?表示。像上面例子中,username 变量传递的'admin' or 'a'='a' 参数,也只会当作username字符串来解释查询,从根本上杜绝了SQL 注入攻击的发生。
注意:使用mybaits 时mapper 中#方式能够很大程度防止sql 注入,$方式无法防止sql 注入.
5.SQL Select 语句完整的执行顺序:
from--->where--->group by--->having--->计算所有的表达式--->order by-- ->select 输出
6. 存储引擎
对于MySQL 5.5 及更高版本,默认的存储引擎是InnoDB。在5.5 版本之前,MySQL的默认存储引擎是MyISAM。
1、InnoDB 存储引擎
特点:行锁设计、支持外键、支持非锁定读使用next-key-locking 的策略避免幻读现象提供插入缓冲、二次写、自适应哈希索引、预读采用聚集的方式存储表中数据
2、MyISAM 存储引擎
不支持事务、表锁设计,支持全文搜索缓冲池只缓存索引文件,不缓存数据文件MyISAM 存储引擎表由MYD(存放数据文件)和MYI(存放索引文件)组成
3、NDB 存储引擎
数据全部放在内存中,因此主键查找速度极快连接操作(JOIN)是在MySQL 数据层完成而不是在存储引擎层,意味着复杂的连接操作需要巨大的网络开销,因此查询速度很慢
4、Memory 存储引擎
表中的数据存放在内存,数据库重启或崩溃表中的数据都会消失适合存储临时数据的临时表,以及数据仓库的纬度表默认哈希索引只支持表锁,并发性能差,不支持TEXT 和BLOB 列类型存储变长字段时按照定长字段方式,浪费内存(eBay 工程师给出了patch 解决方案)
5、Archive 存储引擎
只支持INSERT 和SELECT 操作,5.1 版本之后支持索引适合存储归档数据,如ri’zhi
6、Federated 存储引擎
不存放数据,只是指向一台远程MySQL 数据库服务器上的表
7、Maria 存储引擎
支持缓存数据和索引文件行锁设计,提供MVCC 功能支持事务和非事务安全的选项
7.索引
1.什么是索引?
索引是MySQL 数据库中的重要对象之一,用于快速找出某个列中有某一特定值的行。
2.为什么要使用索引
索引是MySQL 中一种十分重要的数据库对象。它是数据库性能调优技术的基础,常用于实现数据的快速检索。索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实质上是一张描述索引列的列值与原表中记录行之间一一对应关系的有序表。
3.索引的分类
从数据结构角度
1、B+树索引(O(log(n))):关于B+树索引,可以参考MySQL 索

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值