MYSQL学习
1、事务的四大特性(ACID)(面试)目标了解事务的四大特性
讲解数据库的事务必须具备ACID特性,ACID是指 Atomicity(原子性)、Consistensy(一致性)、Isolation(隔离性)和Durability(持久性)的英文缩写。
1、隔离性(Isolation)
多个用户并发的访问数据库时,一个用户的事务不能被其他用户的事务干扰,多个并发的事务之间要相互隔离。
一个事务的成功或者失败对于其他的事务是没有影响。2个事务应该相互独立。
举例:
a 给b转账 –>叫做事务A
c 给d 转账 –>叫做事务B
事务A和事务B之间不会相互影响。
2、持久性(Durability)
指一个事务一旦被提交,它对数据库的改变将是永久性的,哪怕数据库发生异常,重启之后数据亦然存在。
举例:
a=1000、b=1000转账
开启事务
a-100
b+100
提交
结果: a 900 b 1100
即使事务提交以后再发生异常,a和b的数据依然不会变。a就是900 b就是1100。
3、原子性(Atomicity)
原子性是指事务包装的一组sql(一组 ...
Java基础
JAVA基础运算符&和&&Java中&和&&都是逻辑与,需要左右两边同时满足条件才可以得到true的结果。但是,它们之间也有区别:
1、&&也叫短路与,当&&左边的条件不满足时,就不会判定右边的条件。而&不一样,无论‘&’左边的条件是否满足,它都会判定右边的条件。
2、&可用于位运算,当左右两边的条件不是布尔型,而是数字时,它会进行位运算。
2 & 3就是合法的,会进行位运算。
&与&&的异同点。相同点:二者都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则为false。
不同点:在使用&进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用&&进行运算时,当左边为false时,右边的表达式不会进行运算,因此&&被称作短路与。
| 和 |||与||的相同点:二者都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为f ...
SQL多表查询
多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。
前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。比如:员工表和部门表,这两个表依靠“部门编号”进行关联。
1. 一个案例引发的多表连接1.1 案例说明从多个表中获取数据:
123#案例:查询员工的姓名及其部门名称SELECT last_name, department_nameFROM employees, departments;
查询结果:
12345678910111213141516171819202122232425+-----------+----------------------+| last_name | department_name |+-----------+----------------------+| King | Administration || King | Marketing || King | Purchasing ...
灵光一闪
数组遍历删除1234567891011121314151617181920212223242526List<String> list = new ArrayList<>();list.add("1");list.add("2");list.add("3");list.add("1");list.add("2");list.add("2");list.add("2");//删除数组中的2//错误写法for(int i = 0; i < list.size();i++){ if(list.get(i).equals("2")){ list.remove(i); }}Result: [1,3,1,2]//正确 应该用倒序删除for(int i = list.size() -1; i >=0 ;i--){ if(lis ...
Oracle——分页查询出现重复数据问题的分析与解决
Oracle——分页查询出现重复数据问题的分析与解决
问题发生在一次分页查找时 查找一组数据 根据客户ID查找 每页20条 共73条 出现了重复项 ,总数对了但数据不对,分析原因
问题分析可能的问题原因
数据库本身有重复数据。
分页数据有交集
排序字段不唯一
在作分页查询时,其中使用的排序条件数据是根据用户ID(但在此表中不唯一,非主键) 排序。结果查询的结果,很多页的数据都有重复的。在排除其他问题后,考虑到应该是排序的字段值不唯一,造成每次查询时的数据排序不一定都是一样,每次查询的分页顺序结果不一致。 在Oracle分页查询中,我们采用类似示例所示的公认的比较高效的数据库分页查询语句(Effective Oracle by Design中有描述、众多oracle使用者也做过测试)。这里的ROWNUM是一个伪列,它是oracle为查询结果所编的一个号,第一行的RN为1,第二行为2,以此类推。 因为oracle是按块进行读取数据的,如果数据按顺序存储,则可能使读取出来的数据是按顺序的,所以我们就会误解为默认排序。事实上,oracle没有进行任何排序操作,如果sql没 ...
Oracle sql语句使用
ORACLE数据库实践文档
1.登录sql编辑器
12sqlplus / as sysdba(一般使用)conn /as sysdba
2.查询当前实例
1234select name from v$database;select instance_name from v$instance;--查询所有的实例show parameter instance;
3.切换实例
1export ORACLE_SID=ILSDB
4.查询所有表空间
123select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;(带路径)select * from v$tablespace;select tablespace_name from dba_tablespaces;
5.查询某个用户的表空间
12345678910select default_tablespace from dba_users where username='CFS';--查询表空间下有多少用户(tabl ...