Java面试题-数据库概念

目录

数据库:

     你熟悉的数据库有哪些?

     数据库中,我们对主键有哪些要求?

事务:

     什么是事务?

数据库内联与外联的区别?

分别说说DDL、DML、DCL、DQL分别指的是什么?


Java架构师面试最强总结100(2021)https://libusi.blog.csdn.net/article/details/104268324

数据库:

     你熟悉的数据库有哪些?

l  Oracle:甲骨文;

l  MySQL:甲骨文;

l DM:达梦数据库

l  SQL Server:微软;

l  DB2:IBM;

l  Sybase:赛尔斯;

     数据库中,我们对主键有哪些要求?

    非空、唯一、可引用!

事务:

     什么是事务?

答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。

    原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

    一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。

    隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。

    持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

数据库内联与外联的区别?

内部联接(inner join)一个联接,返回两表的公共列都匹配的行

外部联接(outer join) 一个联接,该联接还包括那些和联接表中记录不相关的记录。您可以创建一个外部联接的三种变形来指定所包括的不匹配行:

左外部联接、右外部联接和完全外部联接。

u 左外部联接(left outer join)   左边的表是主表,列所有;右表无取null

u 右外部联接(right outer join)  右边的表是主表,列所有;左边表只列匹配的行,没有值置null

u 完全外部联接 列所有,没有值置null

分别说说DDL、DML、DCL、DQL分别指的是什么?

l  DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

    创建数据库:CREATE DATABASE [IF NOT EXISTS] mydb1;

   删除数据库:DROP DATABASE [IF EXISTS] mydb1;

   修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8;

l  DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

   插入数据:INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2)

   修改数据:UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]

   删除数据:DELETE FROM 表名 [WHERE 条件]

l  DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

   创建用户:CREATE USER 用户名@地址 IDENTIFIED BY '密码';

   授权用户:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名;

   撤销授权:REVOKE权限1, … , 权限n ON 数据库.* FORM 用户名;

   查看权限:SHOW GRANTS FOR 用户名

   删除用户:DROP USER 用户名

   修改密码:USE mysql;

            UPDATE USER SET PASSWORD=PASSWORD(‘密码’) WHERE User=’用户名’ and Host=’IP’;

            FLUSH PRIVILEGES;

l  DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

        SELECT selection_list /*要查询的列名称*/

   FROM table_list /*要查询的表名称*/

   WHERE condition /*行条件*/

   GROUP BY grouping_columns /*对结果分组*/

   HAVING condition /*分组后的行条件*/

   ORDER BY sorting_columns /*对结果分组*/

   LIMIT offset_start, row_count /*结果限定*/

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕白Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值