每天叫醒你的不是闹钟,而是梦想
01
先来了解一下SQL的分类
数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:database,table,column.关键字:create,alter,drop等
数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新.关键字:inserst,delete,updata等
数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录.关键字:select,from,where等.
数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户,关键字:grant等
02
删除表中所有记录使用delete和truntruncate的区别
删除方式
delete 是一条一条删除,不清空auto_increment记录数
truncat 直接将表删除,重新建表,auto_increment将置为0,从新开始
事务方面
delete 删除的数据,如果在一个事务中可以找回
trancate 删除的数据找不回来
02
MySQL,Oracle如何通过字段查询到表
mysql
oracle
03
两个表的交集部分如何查询
隐式内连接:select * from A,B where 条件
显示内连接:select * from A inner join B on 条件
左外连接:select * from A left join B on 条件
右外连接:select * from A right join B on 条件
04
数据库优化方法
1.适当的字段属性
一般来说,数据库中的表越小,执行的查询也就会越快.所以,在创建表的时候,我们可以将表中字段宽度设置得尽可能小,以获得更好的性能.
2.适当的索引
索引基本上是一个数据结构,有助于加快整个数据库检索过程,但是过多的索引反而会造成不好的结果;一般来说,索引应该建立在那些将用于JOIN,WHERE判断和ORDER BY排序的字段上.
3.使用连接(JOIN)来代替子查询
相关子查询基本上取决于父查询或外部查询,这种搜索是逐行完成的,这意味着它会降低整个过程的速度.通常如果WHERE来自于从外部查询的命令,应用子查询运行每一行,由父查询返回,从而减慢整个进程并降低数据库效率的话,更好的调整数据库的方式是INNER JOIN命令.
4.使用NOT NULL
如果查询中包含可为NULL的列,对MySQL来说更难优化,因为可为NULL的列使得索引,索引统计和值比较都更复杂.可为NULL的列会使用更多的存储空间,在MySQL里也需要特殊处理
05
数据库三范式是什么
第一范式:列不可再分
第二范式:行可以唯一区分,主键约束
第三范式:表的非主属性不能依赖与其他表的非主属性外键约束
且三大范式是一级一级依赖的,第二范式建立在第一范式上,第三范式建立在第一第二范式上.
点击蓝字关注我们