一、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不會被統計在內。
后續繼續更新……