文章目录

  • 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 用户名;