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