基础概念:
一个数据库有多个表空间,一个表空间多个用户,一个用户多张表。
1、创建表空间
create tablespace itcast
datafile 'c:\itcast.dbf'
size 100m
autoextend on
next 10m
2、创建用户
create user itcastuser -- 用户名
identified by itcast -- 密码
default tablespace itcast -- 表空间
3、用户权限
新创建的用户没有任何权限,授权
grant dba to itcastuser
已存在三个重要的角色: connect 角色, resource 角色, dba 角色。
CONNECT 角色: --是授予最终用户的典型权利,最基本的
RESOURCE 角色: --是授予开发人员的
DBA 角色: 拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构,并且系统权限也需要 DBA 授出,且 DBA 用户可以操作全体用户的任意基表,包括删除
4 字符函数
4.1把小写的字符转换成大小的字符
upper('smith')
select upper('aaa')from dual
4.2 把大写字符变成小写字符
lower('SMITH')
select upper('AAA')from dual
4 字符函数
4.1 四舍五入函数: ROUND()
select round(12.34)from dual --12,默认四舍五入取整
select round(12.345,2)from dual --12.35 保留两位小数
4.2 数值截取函数,取余函数
5 日期函数
5.1 在日期加减时有一些规律
日期 – 数字 = 日期
日期 + 数字 = 日期
日期 – 日期 = 数字
5.2 获得两个时间段中的月数: MONTHS_BETWEEN()
查询雇员的进入公司的周数
select ename,round( (sysdate - '入职日期') / 7 ) from emp
查询所有雇员进入公司的月数
select ename,round( MONTHS_BETWEEN(sysdate - '入职日期') ) from emp
6 转换函数
6.1 TO_CHAR:字符串转换函数
不够两位查询自动补齐两位---2000-10-09
select name,to_char(birthday,'yyyy-mm-dd') from person;
fm 将补的0抹去---2000-10-9
select name,to_char(birthday,'fmyyyy-mm-dd') from person;
6.2 TO_DATE:日期转换函数
将字符串数据转为日期 1994/3/3 自动去掉0
select to_date('1994-03-3','yyyy-mm-dd') from dual;
7 空值计算处理 nvl
comm (奖金)有些是空值,空值参与计算,结果是空值
计算查询结果
使用nvl(file,0),对空值做处理
8 判断条件 case when 条件 then ‘’
select t.empno,
t.ename,
case
when t.job = 'CLERK' then '业务员'
when t.job = 'MANAGER' then '经理'
when t.job = 'ANALYST' then '分析员'
eles '其他'
end 职位
from emp;
9 聚合函数
9.1 count()
select count(ename) from emp;
9.2 min()
select min(sal) from emp;
9.3 max()
select max(sal) from emp;
9.4 avg()
select avg(sal) from emp;
9.5 sum()
select sum(sal) from emp;
10 分组统计 group by()
select 后的字段要有分组字段
查询每个部门的人数
select deptno ,count(*)
from emp
group by deptno
11 多表查询
支持 逗号,inner join ,left join ,right join 查询
右连接
员工中没有部门=40的员工