oracl数据库

grant dba to solruser : 给solruser授予dba权限

创建表空间:create tablespace solr 创建表空间名称
datafile ‘c:\solr.dbf’ 指定表空间所对应的数据文件
size 100M 表空间的初始大小
autoextend on 自动增长 当表空间存储占满时
next 10M 一次自动增长的大小

创建用户:create user solruser 用户名
identified by solr 密码
default tablespace solr 表空间的名称

oracle的数据类型
varchar varchar2 表示一个字符串
number 表示一个整数,长度是n
number(m,n)m表示长度,小数是n
data:表示日期类型
clob:大对象,表示大文本数据类型,可存4G
blob:大对象,表示二进制数据,可存4G

建表:create table 表名(

);

删除表:DROP TABLE 表名

修改表:
在表中增加列address
alter table person add(address varchar2(10));
把person表的address列的长度修改成20长度
alter table person modify(address varchar2(20));

序列:create sequence 序列名

单行函数:把小写字符串转换成大写字符转
select upper(‘smith’) from dual
把大写字符转换成小写字符
select lower(‘SMITH’)from dual

数值函数:
四舍五入函数:select round(12.534)from dual
select round (12.534 2)from dual

日期函数:
查询员工进入公司的周数
select ename,round((sysdate - hiredate)/7) from emp
获取两个时间段中的月数
select ename,round(months_between(sysdate,hiredate))from emp

转换函数
把字符串的数据转换成日期类型
select to_date(‘1995-06-20’,‘yyyy-mm-dd’)from dual

查出所有员工的中文名
select ename,decode(job,‘clerk’,‘业务员’)from emp

聚合函数
查询出20部门员工工资的总和
select sum(sal) from emp t where t.deptno=20

分组统计

查询每个部门的人数
select deptno,count(ename) from emp group by deptno
按部门分组,查询出部门名称和部门员工数量
select d.deptno,d.dname,count(ename) from emp e ,dept d where e.deptno=d.deptno group by d.deptno
查询出部门人数大于5的
select d.deptno,d.dname,count(ename) from emp e ,dept d where e.deptno=d.deptno group by d.deptno, d.ename having count(ename)>5

多表查询
select * from emp,dept
关联查询
select * from emp,dept where emp.deptno = dept.deptno
多表查询给每张表起别名
select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno

左右连接:
select e.empno,e.ename,d.deptno,d.dname from emp e,dept d where e.deptno(+) = d.deptno;
使用(+)表示左连接或者右连接,当(+)在左边表的关联条件字段上时是左连接,如果在右边关联条件字段上是右连接

eg:查询出所有员工的上级领导
select e.empno,e.ename,m.empno,m.ename from emp e,emp m where e.mgr = m.empno(+)

子查询:一个查询内部包含着另一个查询(sql的任何位置都可以加入子查询)
eg:查询比小明工资高的员工
select * from emp t1 where t1.sal>(select t.sal from emp t where t.empno=‘小明’)
子查询有三类:单列子查询 单行子查询 多行子查询
eg:查询出比小明工资高,同时从事和李四工作一样的员工
select * from emp t1 where t.sal>(select t.sal from emp t where t.empno=‘小明’) and t1.job=(select t2.job from emp t2 where t2.empno=‘李四’)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值