oracle总结

1.创建表空间
create tablespance 表名
datafile ‘’;-- 放在的位置
size --设置大小
autoextend on
next ; --扩展大小


-- 2删除表空间
drop tablespance 表名;
-- 创建序列 increment by增长 start with 从
create sequence s_表名 increment by 增长 start whith 增长的长度
select s_表名.nextval from dual;

-- 3添加一条记录
insert into 表名(列名,列明,列明) values (s_表明,'','')
commit;-- 提交数据


-- 4创建用户
create user 用户名;
identified by 密码;
default tablespance 表空间;
-- 创建表 整数用number 字符型 varcahr();
create tanlespance person(

)


-- 5查询表
select * from 表名;
-- 添加一列 add
alter table 表名 add 列名 列名数据类型;

-- 修改列类型 rename column
alter table 表名 rename column 列名数据类型 to 数据类型;

-- 删除一列 dorp column
alter table 表名 drop column 列名;

-- 添加一条数据 insert into
insert into 表名(列名,列名)values();

-- 修改一条记录 update set
update 表名 set 列名=‘’,列名=‘’where 主键(id)= id的序号

-- 删除表中全部记录
delete from 表名

-- 删除表结构
drop table 表名

-- 字符函数
select upper('bob')from dual;-- 小写转大写
select upper ('BOB')from dual;--大写转小写

-- 数之函数 round 四舍五入 trunc 直接截取
select round(6.666,2)from dual;
select trunc(6.666,1) from dual;

-- 转换函数
-- fm去掉前面的零
select to_char(sysdate,'fm yyyy-mm-dd hh24:mi:ss')from dual;

-- 字符串日期
select to_date('2021-6-29 21:58:52','fm yyyy-mm-dd hh24:mi:ss')from dual;

-- 第二天
一.条件表达式
1.给表中的员工起中文名 等值判断 查名字 when指当时列名 then指修改的名
select 名字列名,
case 名字列名
when ‘’then ‘’
else ‘’
end
from 表名;

2.判断表中工资 大于3000,大于1500且小于3000,其它低收入
select enmae,sal,
case
when sal>3000 then '高收入'
when sal>1500 then '中收入'
else '低收入'
end
from 表名;

3.多行函数【聚合函数】:作用于多行,返回一个值 count(1)查询总数量
max(sal)最大 min() 最小 sum()求和 avg()平均值
select count(1) from 表名;

4.分组查询
分组查询出各个部门的平均工资 部门 deptno 工资 sal
select deptno, avg(sal) from 表名 group by deptno;

查询工资高于平均工资的名字
select a.avgSal,d.dname
from
(select deptno, avg(sal) avgSal from 表名 group by deptno) a,
dept d where a,deptno = d.deptno;

5.查询出平均工资高于2000的的部门信息
select deptno,avg(sal) as avgSal from
emp group by deptno having avg(sal)>2000;

6.查询出每个部门工资高于800的员工平均工资
select deptno,avg(sal) from emp where avg(sal)>800 group by deptno;


视图 view
--视图可以修改吗?
查询表的字段被修改了 可以设置视图为只读

索引 index
索引的使用原则: 
在大表上建立索引才有意义 
在where子句后面或者是连接条件上的字段建立索引 
表中数据修改频率高时不建议建立索引

什么是pl/sql
declare
//说明部分
begin
语句序列
end;

常量和变量意义

引用变量
表名%type
记录变量
表名%rowtype

游标 cursor
步骤:
1.打开游标
2.取一行游标的值
3.关闭游标
4.游标的结束方式

存储过程

create or replace procedure helloworld is begin
dbms_output.put_line('helloworld'); end helloworld;

存储过程(Stored Procedure)是在大型数据库系统中,
一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,
用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)
来执行它。存储过程是数据库中的一个重要对象,
任何一个设计良好的数据库应用程序都应该用到存储过程。

触发器
触发器可用于 
数据确认 
实施复杂的安全性检查 
做审计,跟踪表上所做的数据操作等 
数据的备份和同步

CREATE [or REPLACE]
TRIGGER 触发器名
{BEFORE | AFTER} {DELETE | INSERT | UPDATE [OF 列名]}
ON 表名 [FOR EACH ROW [WHEN(条件) ] ] begin PLSQL 块 End 触发器名

 

上一篇:mysql 常用的sql语句随笔


下一篇:开窗函数与递归查询