文章目录
- 1.mysql和oracle的端口号?
- 2.oracle和mysql中的聚合函数和空值函数有哪些?
- 3.oracle和mysql中各自的分页查询怎么写?
- 4.oracle和mysql中怎么做行列转换?
- 5.复制表:包含结构和数据以及只包含结构不包含数据分别怎么实现?
- 6.将一个表中的数据插入到另外一张表结构相同的表中怎么实现?
- 7.oracle中的rowid和rownum分别是什么?
- 8.数据库约束有哪些?
- 9.truncate和delete以及drop的区别?(面)
- 一)--TRUNCATE
- 二)--DELETE
- 一)--DROP
- 10.DML和DDL的区别?
- 11.WHERE过滤句子和having过滤子句的区别?
- 一)WHERE过滤子句:
- 二)HAVING过滤子句:
- 12.删除表中重复数据保留一条怎么实现?
- 13.union和unionall的区别?
- 14.创建用户并授权?
1.mysql和oracle的端口号?
mysql:3306
oracle:1521(一个我爱你)
2.oracle和mysql中的聚合函数和空值函数有哪些?
聚合函数:是对查询结果集进行进一步处理的函数(求和,求平均,计数,最大值,最小值)
sum(),avg(),count(字段名)/count(*),max(),min()
空值函数:判断某个字段是否为null,如果为空可以将其替换成其他值
mysql:ifnull(字段,值1):当字段为null时,取值1的值,否则取字段的值
select ifnull(sal,0);
oracle:nvl(字段,值1)
nvl2(字段,值1,值2):当字段的值为null的取值2,不为null取值1
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class itemController {
@RequestMapping("/test")
public String test (String itemId){
return “test”;
}
}
3.oracle和mysql中各自的分页查询怎么写?
50条共500条,要第三条到第50
limit(99,50)
(起死条,查多少条)
mysql:limit 10,1
oracle:rownum:伪列:对查询结果集生成一个编号,作为过滤条件时不能大于几
1.排序
select * from emp order by sal desc;
2.取最大范围数据
select rownum rn,name,sal from(
select * from emp order by sal desc)
where rownum <=10;
3.取开始的范围
select * from (
select rownum rn,name,sal from(
select * from emp order by sal desc)
where rownum <=10)
where rn>=3;
4.oracle和mysql中怎么做行列转换?
1.case when then end;/通用/
2.结合聚合函数中的sum或者count
3.若需要分组使用group by
1.if(条件,值1,值2);/mysql特有
2.结合聚合函数中的sum或者count
3.若需要分组使用group by
5.复制表:包含结构和数据以及只包含结构不包含数据分别怎么实现?
带数据复制
create table 新表名 as select * from 原始表名 where 1=1;
不带数据复制
create table 新表名 as select * from 原始表名 where 1=2;
6.将一个表中的数据插入到另外一张表结构相同的表中怎么实现?
批量插入
insert into 目标表 select * from 原始表名;
7.oracle中的rowid和rownum分别是什么?
rownum:伪列:对查询结果集生成一个编号,作为过滤条件时不能大于几
rowid :伪id:是每一条添加到数据库表中的数据的物理地址
8.数据库约束有哪些?
约束(CONSTRAINT):限制条件,均用于创建表时对字段进行添加限制条件.
约束类型:
非空约束(NOT NULL):简称NN 1)确保字段值不为空;
唯一性约束(UNIQUE):简称UK 2)保证指定的字段不允许有重复的值(NULL除外);
主键约束(PRIMARY KEY):简称:PK 3)约定的字段非空且唯一,并且一个表中只能有一个主键或者联合主键;
外键约束(FOREIGN KEY):简称:FK 4)一张表保存的是另一张表的主键字段的值, 两个方面的数据约束:
检查约束(CHECK):简称:CK 5)用来强制在字段上的每个值都满足check 中定义的条件;
9.truncate和delete以及drop的区别?(面)
一)–TRUNCATE
truncate语句属于DDL语句,删除表中数据保留表结构,立即生效,不可以回滚,大数据量删除记录时效率高.
二)–DELETE
delete语句属于DML语句,删除表中数据保留表结构,逐行删除记录,大数据量删除效率低,可执行条件删除,若不指定条件是全表删除.
一)–DROP
drop语句是DDL语句,是删除数据库中表的操作语句.
10.DML和DDL的区别?
1.DML操作是可以手动控制事务的开启、提交和回滚的。
2.DDL操作是隐性提交的,不能rollback!
11.WHERE过滤句子和having过滤子句的区别?
一)WHERE过滤子句:
是查询过程中对表中数据的过滤条件, 不允许使用聚合函数作为过滤条件,原因在于时机不对,聚合函数是对表中数据查询后的结果集进行统计处理的,两者的执行时机不一致.
二)HAVING过滤子句:
是对查询结果集进行过滤的,可以在该子句后使用聚合函数,因为时机相同,聚合函数是处理结果集的,HAVING子句又是过滤结果集的,可以在一起使用,另外HAVING不能单独使用,只能跟在GROUP BY分组子句后面使用.
12.删除表中重复数据保留一条怎么实现?
1.找到每一组的最小id数据
2.解决mysql中不能变查边删的问题(用查询语句再次查询起个别名)
3.使用delete嵌套刚才的查询进行删除并保留刚才查询到的数据
13.union和unionall的区别?
并集:对多个查询结果集的数据进行合并
union:结果集合并时会去重
select * from u where id=4
union
select * from u where id=8
union
select * from u where id=8;
union all:结果集合并时不会去重
select * from u where id=4
union all
select * from u where id=8
union all
select * from u where id=8;
14.创建用户并授权?
create user 新的用户名 identified by 密码;
grant 权限名字(select,update…) on 库名.表名(*所有表) to 用户名;
flush privileges; 授权后刷新权限表
revoke 权限名字(select,update…) on 库名.表名(*所有表) from 用户名;
注:all是所有权限
查看权限:
show grants for 用户名;