mysql唯⼀键忽略空串_数据库简答题⽂章⽬录
1、简单说⼀说drop、delete与truncate的区别
2、什么是主键?什么是外键?并说出它们的作⽤
3、说出char和varchar的区别,及它们的适⽤场景
4、说出不⼩于3种mysql数据库⽀持的约束,并说明它们的使⽤场景
5、说出5种SQL中常⽤的聚合函数,并说明它们的作⽤
6、说出SQL中内连接、左连接、右连接的区别
7、谈谈数据库连接池的作⽤
8、数据库有100条数据,怎么查询第50,51条
9、什么是数据库事务
10、数据库事务的四⼤特性
11、事务并发访问会产⽣的问题(隔离性引发的问题)
12、MySQL是怎么管理事务的
13、谈谈对事务的保存点理解
14、数据库去重
15、group by 的注意事项
16、什么是索引?
17、索引的分类
18、索引的优缺点
19、什么情况应该使⽤索引?什么情况下⼜不应该使⽤?
20、主键(primary key)和唯⼀索引(unique index)区别
21、什么是视图?
22、表和视图的关系
23、mysql查询条件⾥如何拼接字符串
24、列举⼏种表连接⽅式, 有什么区别?
25、having是什么
26、在数据库中查询语句速度很慢,如何优化?
27、union和union all有什么不同?
28、在数据库中你怎么把时间进⾏格式化
29、count(*)和count(1)的效率哪个更⾼?
30、超键、候选键、主键、外键分别是什么?
31、数据库图形化⼯具的好处
32、数据库主键,不设置主键会怎么样
1、简单说⼀说drop、delete与truncate的区别
drop ⽤于删除结构:数据库、表
delete 删除数据,可以回滚
truncate 删除结构重建构建,不可以回滚
基于mysql
delete不重置⾃动增长列的计数值
truncate重置⾃动增长列的计数值
2、什么是主键?什么是外键?并说出它们的作⽤
主键:唯⼀标识⼀条记录的字段或字段的组合称为主键。
主键不能重复,也不允许为空
外键:⽤来维护两个表之间数据的⼀致性,。
外键可以有重复的, 也允许有空值
作⽤:
主键:⽤来保证数据完整性,保证记录的唯⼀性
外键:通过设置外键和其他表建⽴关联关系(⼀对⼀,⼀对多,多对多)
3、说出char和varchar的区别,及它们的适⽤场景
char是⼀种固定长度的字符串类型,
varchar是⼀种可变长度的字符串类型;
适⽤场景:
char⼀般⽤来存储长度固定字段,如:⼿机号,⾝份证号等
varchar⼀般⽤来存储不固定长度的字段:如:⽤户名,昵称等
4、说出不⼩于3种mysql数据库⽀持的约束,并说明它们的使⽤场景
主键约束:在主键上使⽤
外键约束:建⽴俩个表之间的关系时使⽤
唯⼀约束:保证数据表中某个字段数据的唯⼀性时使⽤
⾮空约束:需要保证数据库字段值不为空时使⽤
⾃动增长列:数据值⾃增时使⽤,字段类型必须是整数,且必须使⽤主键修饰。
5、说出5种SQL中常⽤的聚合函数,并说明它们的作⽤
avg():返回指定组中的平均值,空值被忽略;
count():返回指定组中的项⽬个数
max():返回指定数据中的最⼤值;
mysql删除重复的数据保留一条min():返回指定数据中的最⼩值;
sum():返回指定数据的和,只能⽤于数字列,空值忽略;
6、说出SQL中内连接、左连接、右连接的区别
内连接:是从结果表中删除与其他被连接表中没有匹配⾏的所有⾏
左连接(左外连接):以左表作为基准进⾏查询,左表数据都显⽰,连接条件成⽴右表数据显⽰,条件不成⽴显⽰null
右连接(右外连接):以右表作为基准进⾏查询,右表数据都显⽰,连接条件成⽴左表数据显⽰,条件不成⽴显⽰null
7、谈谈数据库连接池的作⽤
作⽤:
1.资源重⽤,避免了数据库连接频繁建⽴、关闭的开销
2.更快的系统响应速度,直接从连接池中获取连接,响应速度加快
3.控制资源的使⽤,连接池能⾃动维护池中的连接数量,提⾼资源的利⽤率。
常⽤的数据库连接池:DBCP、C3P0、Druid
8、数据库有100条数据,怎么查询第50,51条
select * from table_name limit 49, 2
原因:MySQL的limit⽤法:
select * from table limit m,n
其中m是指记录开始的index,从0开始,表⽰第⼀条记录;n是指从第m+1条开始,取n条。
9、什么是数据库事务
事务:业务中的⼀组操作,要么全部成功,要么全部失败,不可分割的⼯作单位。
10、数据库事务的四⼤特性
数据库事务的四⼤特性为:ACID,分别是原⼦性、⼀致性、隔离性和持久性
原⼦性:不可分割的⼯作单位,操作要么全部成功,要么全部失败;
⼀致性:⼀个事务执⾏前后,表中数据必须保持⼀致。⽐如:如果从A账户转账到B账户,不可能因为A账户扣了钱,⽽B账户没有加钱;
隔离性:事务的隔离性是指在并发环境中,并发的事务是互相隔离的,⼀个事务的执⾏不能被其它事务⼲扰;
持久性:事务⼀旦提交后,数据库中的数据必须被永久的保存下来。
11、事务并发访问会产⽣的问题(隔离性引发的问题)
脏读:⼀个事务读取到了另⼀个事务中尚未提交的数据
不可重复读:⼀个事务读取到了另⼀个事务中已经提交的数据,通常为update时引发的问题
幻读:⼀个事务读取到了另⼀个事务中已经提交的数据,通常为insert或delete时引发的问题
12、MySQL是怎么管理事务的
操作开始前开启事务,操作成功完成提交事务,操作失败回滚事务。
开启事务:start transaction
提交事务:commit
回滚事务:rollback
13、谈谈对事务的保存点理解
在事务的处理过程中,业务操作执⾏了⼀部分,可以记录⼀个保持点,程序继续执⾏,如果程序出现异常,可以回滚所有,也可以回滚到保持点,从⽽保证已经执⾏的部分操作可以进⾏事务的提交。
事务的保存点,类似单击游戏的存档和读档:
1、如果没有游戏的存档功能,每次玩单机游戏都会从第⼀关重新开始。
2、如果使⽤了游戏的存档功能,下次在玩游戏时,就会从存档处开始。
14、数据库去重
distinct 对查询结果去重。
借助group by 进⾏分组,也可以出现去重效果。
15、group by 的注意事项
1.除了聚合字段,select⼦句中出现的所有字段都必须在group by中出现
2group by后⾯可以写having,.having对分组结果进⾏过滤。
16、什么是索引?
索引是数据库管理系统中⼀个排序的数据结构,以协助快速查询、更新数据库表中数据。
索引的实现通常使⽤B树及其变种B+树。
索引相当于字典的⽬录,作⽤在于提升查询效率。
17、索引的分类
据数据库的功能,可以在数据库设计器中创建三种索引:唯⼀索引、主键索引和聚集索引。
唯⼀索引:不允许其中任何两⾏具有相同索引值的索引。
主键索引:在数据库关系图中为表定义主键将⾃动创建主键索引,主键索引是唯⼀索引的特定类型。该索引要求主键中的每个值都唯⼀。当在查询中使⽤主键索引时,它还允许对数据的快速访问。
聚集索引:聚集索引通常提供更快的数据访问速度。
18、索引的优缺点
索引的优点:
通过创建唯⼀性索引,可以保证数据库表中每⼀⾏数据的唯⼀性;
可以⼤⼤加快数据的检索速度,这也是创建索引的最主要的原因;
索引的缺点:
创建索引和维护索引要耗费时间,这种时间随着数据量的增加⽽增加;
索引需要占物理空间,除了数据表占数据空间之外,每⼀个索引还要占⼀定的物理空间,如果要建⽴聚簇索引,那么需要的空间就会更⼤;
当对表中的数据进⾏增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度
参考:blog.csdn/u013310119/article/details/52527632
19、什么情况应该使⽤索引?什么情况下⼜不应该使⽤?
适⽤场景:
加快条件的判断速度;
在作为主键的列上,强制该列唯⼀
在经常⽤在连接的列上,这些列主要是⼀些外键,可以加快连接的速度;
在经常需要排序的列上创 建索引,因为索引已经排序
不适⽤场景:
查询少的列
数据内容少的列
text, image和bit数据类型的列不应该增加索引
修改多于查询的列不能加索引
20、主键(primary key)和唯⼀索引(unique index)区别
1, 主键⼀定是唯⼀性索引,唯⼀性索引并不⼀定就是主键。
2, ⼀个表中可以有多个唯⼀性索引,但只能有⼀个主键。
3, 主键列不允许空值,⽽唯⼀性索引列允许空值。
注意:唯⼀索引也称为唯⼀约束
21、什么是视图?
视图是⼀个虚拟表,其内容由查询定义。
从⽤户⾓度来看,⼀个视图是从⼀个特定的⾓度来查看数据库中的数据。
从数据库系统内部来看,⼀个视图是由SELECT语句组成的查询定义的虚拟表。创建视图时候,可以是⼀个数据表的⼀部分,也可以是多个基表的联合,
从数据库系统外部来看,视图就如同⼀张表⼀样,对表能够进⾏的⼀般操作都可以应⽤于视图,例:查询,插⼊,修改,删除操作等。
22、表和视图的关系
⽤来创建视图的表叫做基表 base table
视图(view)是在基表之上建⽴的,它的结构(即所定义的列)和内容(即所有数据⾏)都来⾃基表,它依据基表存在⽽存在。⼀个视图可以对应⼀个基表,也可以对应多个基表。
区别:
1、视图是已经编译好的sql语句;⽽表不是。
2、视图没有实际的物理记录;⽽表有。
3、视图是窗⼝;表是内容
4、表占⽤物理空间⽽视图不占⽤物理空间
5、视图的建⽴和删除只影响视图本⾝,不影响对应的基本表。
23、mysql查询条件⾥如何拼接字符串
1.合并字段concat
select concat(user_name, password ) from tb_user;
下述只有mysql才有:
2.使⽤指定连接符合并字段 concat_ws
#是连接符:select concat_ws("#" , user_name , password ,id ) from tb_user;
3.合并结果group_concat,将所有结果显⽰在⼀个单元格中
:select group_concat(user_name , password ) from tb_user;
24、列举⼏种表连接⽅式, 有什么区别?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论