一、oracle基本常用的数据类型
varchar(长度) 字符串
char(长度) 字符
number(x,y) x表示总位数 y表示保留小数点后几位数 eg面试题:number(5,3)最大的数是99.999
decimal() 数字
long int integer 整数
date 日期
timestamp 日期
clob blob 特殊文本 二进制
二、DLL操作
create
创建表的前提是:1、具备创建表的条件 2、有可用的存储空间
创建表的语法是:
create table 表名 (column1 数据类型,column2 数据类型……);
drop table 表名;
表中的所有数据都将删除、此前未完成的事务都将被提交、所有相关的索引被删除、DLL语句,一经执行,不可撤销。
alter
对表添加字段
alter table 表名 add (column1 数据类型,column2 数据类型……);
对表删除字段
alter table 表名 drop (column1,column2……);
对表现有字段进行修改
alter table 表名 modify (column1 数据类型,column2 数据类型……);
truncate table 表名;
清空表中所有记录、释放表空间、DLL语句,一经执行,不可撤销。
三、DML操作
select
select */column1,column2…… from 表名 where ……;
delete from 表名 where 条件……
update 表名 set column = ‘字段’where 条件……
insert into 表名 (column1,column2……)values (值1,值2……);
四、事务控制语言
commit rollback savepoint
五、数据控制语言
grant revoke
算术运算 + - * /
连接运算 || 与concat类似
两者区别:||可以连接多个字符串 concat只能连接两个字符串。
别名 AS 关键字
空值 --无效值
去重 distinct
排序 order by --永远存在sql语句的结尾。
分组 group by
--当语句中出现group by分组语句时,select对应的列要么是group by分组列,要么是聚合函数列。
--对分组过后的数据进行二次过滤可以使用hiving关键字。
--where 后面不能跟聚合函数列
六、函数
字符函数
数值函数
日期函数
转换函数
通用函数
decode用法:
第一种用法:替换分组
decode(column,'列中可能出现的值','肯定打印出的值','否定打印出的值')
eg:select tname,decode(tname,'小花','本科','中专') from s7 order by tname ;--解释decode函数中的意思:
tname列中出现‘小花’就打印本科,不是小花就打印中专
第二种用法:动态排序
--要求 销售部拍第一位
select * from dept
order by decode(d_name,'产险系统开发部',1,'销售部',2,3);--解释d_name这一列如果是产险系统开发部就显示1,销售部就显示2,其他就显示3.
第三种用法 :行转列
select s_years ,
max(decode(s_months , '1季度',s_money)) as 一季度 ,
min(decode(s_months , '2季度',s_money)) as 二季度,
sum(decode(s_months , '3季度',s_money)) as 三季度,
avg(decode(s_months , '4季度',s_money)) as 四季度
from sales group by s_years ;
聚合函数
min(column)求列的最小值
max(column)求列的最大值
sum(column)求和
avg(column)求平均--计算时空值会被除外
count(column)统计有效数据的数量,空值null不会被统计在内。
后续继续更新……