1. 在数据库中你怎么把时间进行格式化
select DATE_FORMAT( updated_at, '%y-%M-%D' ) from tb_sku;
2.什么是视图?表和视图的关系
1. 视图 : 就是一种虚拟的表 ,是一个逻辑表 ,本身不包含数据,作为一个select语句存在数据字典中的
2. 通过视图 ,可以展示基表的部分数据; 视图数据来自定义视图的查询中使用的表 ,使用视图动态生成
3. 基表: 用来创建视图的表叫做基表 base table
4. 表中保存的是数据 而视图中保存的是一个或者多个条件组合而成的结果集
5. 表是物理存在的 视图是虚拟的内存表
3. truncate , drop, delete区别
drop 删除表结构
delete 删除表数据 逐行删除数据,每步删除都是有日志记录的,可以回滚数据;实质是逐行删除表中的数据;
truncate 删除表数据 会清空表中所有的数据,速度快,不可回滚;实质是删除整张表包括数据再重新创建表;
4.什么是事务
一般指要做的或所做的事情 事务是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
5.列举几种常用的聚合函数?
sum()
avg()
max()
min()
count()
6. count(*)和count(1)的效率哪个更高?
count(1) 因为使用count(*)的时候会对所有的列进行扫描
7. 使用distinct和分组group by 哪个效率跟高?(实现去重效果)
distinct是将所有查询的字段进行对比去重,所有字段都完全相同才会去重 distinct 必须放在查询字段开头进行查询
group by 根据字段进行去重,字段相同就会去重 至于那个效率更高 这个我没有研究过
8. 你做过那些Mysql数据库优化
1、选取最适用的字段属性
2、使用连接(JOIN)来代替子查询(Sub-Queries)
3、使用联合(UNION)来代替手动创建的临时表
4 、使用索引
9. 数据库主键,不设置主键会怎么样
主键用于表示数据(记录)的唯一性, 不设置主键会导致数据表中可能存在完全相同的数据, 因此在对数据进行操作时, 数据库无法区分这些相同的数据, 因而会产生不想要的操作结果 另外, 主键还有助于提高数据的检索速度
10. mysql查询条件里如何拼接字符串
select concat(user_name , password ) from tb_user;
select concat_ws("#" , user_name , password ,id ) from tb_user;
select group_concat(user_name , password ) from tb_user;
11. 讲一下左右连接?
左连接是以左表为基表 右表为从表 基表全部展示 从表展示对应条件匹配的数据 右连接与之相反
12. 数据库去重如何做?
我们一般是使用group by 或者distinct 进行数据库的去重操作 group by 的话 我们可以把重复的数据分到一个组 distinct可以去除掉重复的记录
13. 什么样的字段适合建索引
这个字段查询频繁 增删次数少
14. 列举几种表连接方式, 有什么区别?
交叉连接 没有where条件的交叉连接将产生连接表所涉及的笛卡尔积 左右外连接 左连接以左表为基表 右表为从表 基表全部展示 从表数据对应匹配条件进行展示 内连接 是比较运算符比较要连接的列的值的连接 不匹配的行不会被显示
15. group by是什么
SQL进行分组
16. group by 使用时的注意事项?
在使用group by的时候 group by后面不能存在where语句 可以使用having关键字进行条件分组
17. having是什么
having关键字通常是与group by关键字联合使用 用于过滤group by 语句返回的结果集 having关键字弥补了where关键字不能与聚合函数联合使用的不足
18.在数据库中查询语句速度很慢,如何优化?
1 .不使用SELECT * 查询 尽量返回少量数据
2. 对查询字段建立索引
3 .减少表之间的关联
19. union和union all有什么不同?
他们都是对两个SELECT语句合拼一起显示出来 但是union会自动压缩多个结果集中重复的结果 unionAll 会展示所有的结果
20. 行转列、列换行怎么转
可以使用 PIVOT,UNPIVOT比较快速实现行转列,列转行,而且可扩展性强