Oracle基础

本文详细介绍了Oracle和MySQL的关系型数据库特性,包括端口、默认用户、数据类型差异以及日期转换方法。此外,还探讨了Oracle中varchar与varchar2的区别,并展示了Oracle的增删改查语句示例,包括创建表、插入数据、删除记录、更新数据以及查询操作。文章最后列举了聚合函数的使用和查询语句的排序、去重技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、oracle可视化工具

PL/SQL developer是一款数据库开发工具,也是oracle的可视化工具,只针对于oracle,不能连接其他数据库。

二、mysql与oracle区别

  • Mysql和oracle都是关系型数据库。
  • Mysql的端口号8080,默认用户root
    Oracle的端口号1521,默认用户system
  • 数据类型代表的含义不同。

例如:Char(2)
mysql代表两个字节 Oracle代表两个字符

  • Mysql是一般自动增长,Oracle没有自动增长,一般使用主键为序列号
  • MySQL可以用双引号包括字符串 Oracle只能用单引号包括字符串
  • 数据类型不同:

mysql:int、float、double等数值型,varchar、char字符型,date、datetime、 time、
year、timestamp等日期型。

oracle:number(数值型),varchar2、varchar、char(字符型),date(日期型)等…

  • 日期转换:

mysql中日期转换用dateformat()函数; oracle用to_date()与to_char()两个函数

三、Oracle中varchar和varchar2的区别

  • Varchar2把所有字符都占2字节处理(一般情况),而varchar只有将中文,全角字符占两字节,数字和英文占一字节处理
  • Varchar2把空串等同于null处理,而varchar仍按照空串处理
    Null和空字符串都是没有任何内容,null没有存储空间,而空字符串有存储空间
  • Char是固定长度,varchar2和varchar都是长度可以变化的

例如字符串abc char(20)储存长度为20,而varchar2(20)存储长度为3*

  • 数据类型不同:

mysql:int、float、double等数值型,varchar、char字符型,date、datetime、 time、
year、timestamp等日期型。

oracle:number(数值型),varchar2、varchar、char(字符型),date(日期型)等…

日期转换:

mysql中日期转换用dateformat()函数; oracle用to_date()与to_char()两个函数

四、oracle增删改查语句

新建表(新建表必须有个主键) Cteate table 表名(主键,类型(大小),是否为空)


> Create table t2(
> Id number(2) not null,
> Name varchar2(2) not null
> );

添加数据 Inset into 表面(字段1,字段2.,,)values(值1,值2,,,)

Inset into t2(id,name)values(1'A');

删除表格的内容
Delete from 表面;
delete from 表面 where 条件=条件;

Delete from t2;

Delete from t2 where id=1;

删除表格
Drop table 表名;

Drop table t2;

删除列
alter table 表名 drop column 字段

Alter table t2 drop column sex;

修改字段内容(如果没有where会修改所有表内容)
Updata 表面 set 字段=要修改的值 where 字段=值

Updata t2 set id=2 where id=1;

修改表结构
增加列 alter table 表名add 字段 数据类型

Alter table t2 add sex varchar2(2);

修改字段类型
alter table 表名 modify 字段 数据类型

Alter table t2 modify sex number(2);

查看数据库名(需要数据库权限)

Select instance_name from V$instance;

查看当前用户所有表

Select table_name from user_table;

查看所有用户表名

Select table_name from all_table;

查看表结构(只能在命令窗口执行)

Desc 表名;

复制表格

Create table 表名 as select * from 表名2;
  • 联结

左联结 left join(表1显示全部,表2显示符合关联条件的)
Select from 表1 left join 表2 on 表1.字段=表2.字段 where 条件

右联结 right join(表2显示全部,表1显示符合关联条件的)
Select from 表1 right join 表2 on 表1.字段=表2.字段 where 条件

内联结inner join(表1,表2都显示)
Select from 表1 inner 表2 on 表1.字段=表2.字段 where 条件

  • 聚合函数(都会忽略null数据)

Sum():求总和
Avg():求平均值
Max():求最大值
Min():求最小值
Count():统计行数

  • 升序,降序,去重

升序 order by asc(默认)
降序 order by desc
去重 distinct
Select distinct * from t2;

  • 过滤重复的组,组合,别名

过滤重复的组
having 条件 组合
group by 列名
别名 as

按照empno部门编号,查询平均薪水,并且平均薪水小于1300的不显示,结果按降序排序

Select id empno,avg(age)as avgage from t2

group by empno

having avg(age)>=1300

order by avgage desc;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值