欢迎光临散文网 会员登陆 & 注册

数据库常见面试题补充

2023-06-28 13:56 作者:littersho  | 我要投稿

1,常用哪些数据库说一下?

MySQL ,SqlServer,Oracle数据库

2,简单说说增删改查语句

①添加数据

insert into 表名 values('p009','张三',1,'n001','2016-8-30 12:9:8') ;

给特定的列添加数据

insert into Info (code,name) values('p010','李四');

②select * from Info where code='p003'

模糊查询 like "_"1个任意字符和"%" 0个或多个任意字符

排序查询  order by field1 [DESC]降序/[ASC]升序 ,二级排序逗号隔开即可

分页查询  limit m, n

查询一条数据的命令  limit 1= limit 0,1 ;在SqlServer中也有top1

3、修改数据

   update 表名 set name='王永乐' where code='p002'

4,删除一个表,删除表语句

   delete from 表名 where 条件

5,删除一个表格里面的一行记录,只删除表中数据的语句

   delete from 表名 where 条件

6,delete与drop与truncate的区别

相同点:

1、都有删除表的功能;

不同点:

1、delete、truncate仅仅删除表里面的数据;drop会把表的结构也删除掉

2、delete是DML语句,操作完了,还可以回滚;truncate和drop是DDL语句,删除之后立即生效,不能回滚;

3、在执行速度上drop>truncate>delete;

7,操作数据的命令。

【show databases】,该命令可以查看所有的数据库。

如果我们要查看数据库中的表,可以使用命令【show tables】。

如果输入了错误命令,可以使用【\c】结束。

使用 use 命令可以选择数据库 例如 use information_schema

如果要查看表结构,可以使用命令desc  table_name;

如果要查看表状态,可以使用命令show table status from db like 条件


8、查看一个数据库有没有打开使用什么命令

使用命令 # service mysqld status 命令来查看mysql 的启动状态,

如果出现mysqld is stopped 那就说明mysql服务是停止状态

如果出现mysqld is running那就说明mysql服务是启动状态。


9,连表查询有哪几种?

在mysql数据库中,主要有三种连表方式,分别是:

①外连接 outer join

②内连接 inner join

③交叉连接 cross join  

交叉连接相当于求左右两表的笛卡尔积,

比如我有两组数据,a(1, 2) 与 b(4, 5),求它们的笛卡尔积的结果就是:

【(1,4),(1,5),(2,4),(2,5)】



外连接又可以细分为三种:

①左外连接 select * from 表1 left join 表2 on user.id=article.user_id;

②右外连接 无论右表在左表有无匹配,都返回右表的数据,缺失的左表数据为NULL

③完全外连接  mysql并不支持full join,可以通过union all子句,将left join与right join组合在一起,达到类似full join的效果

10,sql语句中内外连接的区别

内连接相对于外链接,就是内连接只要左右表都匹配的数据,也就是交集

内连接(inner join):取出连接表中匹配到的数据,匹配不到的不保留

外连接(outer join):取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL


10,数据库去重 

:原表数据不会被修改,只是查询结果去重。

去重需要使用一个关键字:distinct

select distinct 字段1,字段2 from emp; --注意这样写是两个字段联合起来去重

11,数据库10000条订单中两条相同,怎样用sql语句找出来

select * from ord where id in (select id from people group by id having count (id) > 1) 

12,数据库范式

要想设计—个好的关系,必须使关系满足一定的约束条件,此约束已经形成了规范,分成几个等级,一级比一级要求得严格。

关系数据库有六种范式:

第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

通常所用到的只是前三个范式,

第一范式就是属性不可分割,每个字段都应该是不可再拆分的。比如地址就可以拆分为省份,市,详细地址,这样就能避免经常需要访问地址中的省份

第二范式就是主键约束,要求表中要有主键,表中其他字段都依赖于主键。比如学生表中的姓名就不能作为主键,因为可能同名,不唯一

第三范式就是外键约束,确保数据表中的每一列数据都和主键直接相关,比如学生表,可以将班主任的主键编号作为一个外键和学生表建立相应的关系,而不可以在学生表中添加关于班主任其它信息(比如姓名、年龄等)的字段。可以看做是消除冗余

13,数据库索引

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。避免全表扫描

select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。由于索引是经过某种算法优化过的,因而查找次数要少的多。

简而言之,数据库索引是排好序的数据结构。

索引的一个主要目的就是加快检索表中数据

可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。

14,数据库索引优化 

数据库索引优化可以通过创建合适的索引、维护好索引、避免全表扫描、优化聚簇索引和压缩索引等方式来提高查询效率和性能。需要根据具体的数据库和应用场景选择合适的优化方案。


数据库常见面试题补充的评论 (共 条)

分享到微博请遵守国家法律