admin管理员组

文章数量:1794759

Oracle基础

Oracle基础

一、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;

本文标签: 基础oracle