暑期实习--数据库


数据库知识

SQL语句分为哪几种?

SQL语句主要可以划分为以下几类: 
DDL(Data Definition Language):数据定义语言,定义对数据库对象(库、表、列、索引)的操作。 
包括:CREATE、DROP、ALTER、RENAME、 TRUNCATE等 
DML(Data Manipulation Language): 数据操作语言,定义对数据库记录的操作。 
包括:INSERT、DELETE、UPDATE、SELECT等 
DCL(Data Control Language): 数据控制语言,定义对数据库、表、字段、用户的访问权限和安全级别。 
包括:GRANT、REVOKE等 
Transaction Control:事务控制 
包括:COMMIT、ROLLBACK、SAVEPOINT等

Delete、truncaate、drop都是删除语句,它们有什么分别?

delete 属于DML语句,删除数据,保留表结构,需要commit,可以回滚,如果数据量大,很慢。 
truncate 属于DDL语句,删除所有数据,保留表结构,自动commit,不可以回滚,一次全部删除所有数据,速度相对较快。 
Drop属于 DDL语句,删除数据和表结构,不需要commit,删除速度最快。

drop、deletetruncate分别在什么场景之下使用?

  • 不再需要一张表的时候,用drop
  • 想删除部分数据行时候,用delete,并且带上where子句
  • 保留表而删除所有数据的时候用truncate

Where和having都是条件筛选关键字,它们有什么分别

WHERE是在数据分组前进行条件过滤, HAVING子句是在数据分组后进行条件过滤,WHERE子句中不能使用聚合函数,HAVING子句可以使用聚合函数。


数据库事务

事务是最小的逻辑工作单元。

事务特性(ACID)

原子性:一个事务里面的操作要么不做,要么都做;

一致性:事务启动之前和启动之后要保持平衡状态

例如完整性约束a+b=10,一个事务改变了a,那么b也应随之改变。

隔离性:在一个会话里面读取不到另一个会话里未提交的数据.

永久性:事务一经提交永不回退。



什么是存储过程?有哪些优缺点?

存储过程是一些预编译的SQL语句。

更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

  • 存储过程是一个预编译的代码块,执行效率比较高
  • 一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率
  • 可以一定程度上确保数据安全

如果你对存储过程不熟悉,建议阅读:存储过程详解-博客园

数据库的乐观锁和悲观锁是什么?

数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。

乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。

  • 悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作
  • 乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。

如果你对两种锁还不太熟悉,建议阅读:深入理解乐观锁与悲观锁


数据库隔离级别有哪些,各自的含义是什么,MYSQL 默认的隔离级别是是什么。

·未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据

·提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)

·可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读

·串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果你想成为一名JAVA暑假实习生,以下是一些你需要具备的能力: 1. 基本的编程技能:这是最基本的能力,需要熟练掌握JAVA编程语言及相关工具的使用,包括集成开发环境(IDE)、调试工具、版本控制工具等。 2. 熟悉面向对象编程思想:JAVA是一种面向对象编程语言,因此需要掌握面向对象编程的基本概念和原则,如封装、继承、多态等。 3. 数据结构和算法:数据结构和算法是计算机科学的核心知识,也是JAVA开发中不可或缺的一部分。需要掌握基本的数据结构,如数组、链表、栈、队列等,以及基本的算法,如排序、查找、递归等。 4. 数据库技术:JAVA常常与数据库一起使用,因此需要掌握基本的数据库知识,如SQL语言、关系型数据库设计等。 5. 熟悉WEB开发技术:JAVA的WEB开发框架非常丰富,如Spring、Struts、Hibernate等,需要掌握其中的一些框架,以及基本的HTML、CSS、JavaScript等前端技术。 6. 团队合作能力:在实习过程中,你需要与其他开发人员、项目经理等进行良好的合作,因此需要具备一定的团队合作能力。 7. 学习能力和解决问题能力:在实习过程中,你可能会遇到一些挑战和问题,需要具备良好的学习能力和解决问题的能力,能够快速学习新技术和解决问题。 以上是JAVA暑假实习生需要具备的一些能力,当然还有其他的技能和要求,不同公司和岗位的具体要求也可能会有所不同,希望能对你有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值