创建表空间
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 表名;
判断表中工资 大于3000,大于1500且小于3000,其它低收入
select enmae,sal,
case
when sal>3000 then "高收入"
when sal>1500 then "中收入"
else "低收入"
end
from 表名;
多行函数【聚合函数】:作用于多行,返回一个值 count(1)查询总数量
max(sal)最大 min() 最小 sum()求和 avg()平均值
select count(1) from 表名;
分组查询
分组查询出各个部门的平均工资 部门 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;
查询出平均工资高于2000的的部门信息
select deptno,avg(sal) as avgSal from
emp group by deptno having avg(sal)>2000;
查询出每个部门工资高于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 触发器名