Oracle笔记
插入语句
对指定类型的数据插入,如:日期类型
Insert into emp values(8888,’laowang’,’clert’,’male’,’250.55’,
to_date(‘2015/11/11’,’yyyy-mm-dd’),1000,40,7839);
注意:要加上commit;才能插入成功
通过子查询插入数据
Insert into copy_demo(emp_id,emp_name,emp_position)
通过子查询插入数据
insert into copy_demo(emp_id,emp_name,emp_position)
select dept_id,dept_name,dept_location fromdept where dept_location= '长沙';
创建语句
复制表格(包括表的字段类型和数据一起复制)
可以保证原表不受影响进行测试
create table copy_demo (emp_id,emp_name,emp_position)
as select emp_id,emp_name ,emp_positionfrom emp;
修改语句
合并数据
合并
union ,union all ,intersect , minus
union合并数据(默认去除重复数据)
select emp_id,emp_name,emp_position fromemp
where emp_salary > 2000
union
select emp_id,emp_name,emp_position fromcopy_demo;
union 合并数据(不去除重复数据)
select emp_id,emp_name,emp_position fromemp
where emp_salary > 2000
union all
select emp_id,emp_name,emp_position fromcopy_demo;
intersect 取交集
minus 取差集
函数
max,min,avg,sum,count,
lower --将字符串转换成小写
select lower(‘AABBCC’) from dual
upper --将字符串转换成大写
select upper(emp_name) from emp;
initcap --首字母大写,其余小写
select initcap(emp_name) from emp;
concat --连接 通常使用 “||” 代替
select ‘姓名:’ || emp_name from dual;
length --查询字符串长度
length(‘asdf’);
substr -- 截取字符串
select emp_name,substr(emp_name,1,3) fromemp;
replace --替换
select ‘aabbcc’,replace(‘aabbcc’,’b’,’d’)from dual;
round(n,m)
取四舍五入,如果去掉m,四舍五入到整数,不去则四舍五入到m位
Select (round(‘250.55’)+round(100))*13 fromdual;
trunc()
截取数字(整数)或者日期
mod()
取余数
floor()
返回大于或是等于较小的整数
ceil()
返回大于或是等于较大的整数
abs(n)
返回数字绝对值
acos(n)
反余弦值
asin(n)
反正弦值
Log(m,n)
以m为底n对数
Pow(m,n)
返回m的n次幂
Last_day(d)
返回指定日期所在月份的最后一天
找出每个月倒数第三天入职的员工
select emp_name,emp_hiredate from emp wherelast_day(emp_hiredate)- 2 = emp_hiredate;
Add_months(d,n)
查找已经入职8个月以上的员工
Select * from emp where sysdate >add_months(emp_hiredate,8);
满了2年服务年限的员工信息
Select * from emp where sysdate >add_months(emp_hiredate,12*2);
显示每个员工加入公司的天数
select emp_name,trunc(sysdate -emp_hiredate) "入职天数" from emp;