oracle
2019-07-04 12:01:00 5 举报
AI智能生成
Oracle是一家全球领先的企业级软件公司,其核心产品是一套强大的关系数据库管理系统(RDBMS),被广泛应用于各种规模的企业和组织中。Oracle数据库以其高性能、高可用性、高安全性和灵活性而闻名,能够处理大量的数据和复杂的业务逻辑。此外,Oracle还提供了一系列附加的软件和服务,包括中间件、云计算服务、人工智能等,帮助企业实现数字化转型和创新。作为一家历史悠久的公司,Oracle一直致力于技术创新和研发投入,不断推出新的产品和服务来满足客户的需求。
作者其他创作
大纲/内容
对表本身操作
增加列 删除列
alter table 表名 add 新列名 结构属性();
alter table 表名 drop column 列名
alter table 表名 modify 列名 修改后的数据类型
新建表 删除表
--删除表aa,连带表中的所有约束;
drop table aa cascade constraints;
增加删除约束
主键
alter table 表名 add primary key(id);
alter table 表名 drop primary key;
外键
alter table 表名 add constraint 约束名称 foreign key(列名)references 表名2(列);
alter table 表名 add foreign key(列名)references 表名2(列);
非空
alter table 表名 modify 列名 not null;
alter table 表名 modify 列名 null;
默认
alter table 表名 modify 列名 default('9999');
alter table 表名 modify 列名 default('');
唯一
alter table 表名 add unique(列名)
alter table 表名 drop unique(列名)
检查
check( 列名 >=0 and xxx )
alter table (表明) add check( 列 in('男','女') )
修改表名和列名
alter table 表名 rename to 新表名
alter table 表名 rename colume 列名 to 新列名
序列(sequence)
删除序列 drop sequence seq;
创建简单序列 create sequence seq;
创建简单序列 create sequence seq;
seq.currval seq.nextval
cache不能小于increment by
函数循环
自定义函数和执行
create or replace function 函数名(参数) return 返回值 as begin return end;
四种方法执行函数
3 exec 函数名称(参数);
4 call 函数名称(参数) ;
4 call 函数名称(参数) ;
select sysdate from dual;
数学函数
向上取整ceil(n)
向下取整floor(n)
四舍五入round(m,n)
求余mod(m,n)
次方power(m,n)
字符串
替换
replace(列名,'李','张')
去掉左右两边的字符
trim('m' from 列名)
大小写转换
lower()
upper()
首字符大写initcap(Ename)
字符串截取
substr(被截取字符串,截取起始位置,截取长度)
查找子串的位置
instr(‘列’,‘查找的串’)
居中居右
rpad(列名,长度,'可选填充字符')
lpad(Ename,5,'+')
字符串长度
length(列名)
时间 - 字符串
获取当前时间
sysdate
字符串->时间
to_date( '2018-1-1','yyyy-mm-dd' )
时间转->字符串
to_char(system,'yyyy-mm-dd')
trunc——时间截取函数
查询当月有多少天
默认截取
trunc(列名)
截取到月
trunc(列名,'mm')
截取到周
trunc(newtime,'d')
截取到年
trunc(newtime,'yy')
截取到小时
trunc(newtime,'hh')
截取到分钟
trunc(newtime,'mi')
日期运算
日期直接 +1 -1
是对天数进行处理
求后一个月份
add_months(sysdate,1)
add_months(newtime,3) 三个月后
下一个星期二
next_day(newtime,'星期二')
所在月的最后一天:
last_day(newtime)
计算两个日期直接的间隔的月
select months_between(to_date('12/1/2015','mm/dd/yyyy'),to_date('1/11/2015','mm/dd/yyyy')) "MONTHS" FROM DUAL;
对表中数据操作
增
insert into 表名 ( 列名1,列名2 ) values( 数值1,数值2 )
insert into 表名 values( 数值1,数值2 )
删
delete 表名 where 条件
改
update 表名 set '改后列'=新值 where 条件
查
min max sum avg count 函数
where 列名 between 2001 and 2999;
and or not
in 值是否在后边的列表中存在
是否是空值
不为空: where 列名 is not null
为空:where 列名 not null
字符串查询 substr
模糊查询 like _ %
统计中的null
nvl nvl2
排序 order by asc(升序默认) 列 desc 列2
第s k
分组
group by
having
分组之后数据合并显示
WMSYS.WM_CONCAT
表的分页
between 输出
rownum
并集合union
列相同,两个表合成一个,剔除重复
nuion all 不剔除重复
decode
DECODE(字段,if1,then1,if2,then2,if3,then3,...,else)
when then
根据工资分三个级别
exists
where exists (select) 判断是否为空
左连接右连接
左连接
select * from 表1 left join 表2 on a.id=b.id
select * from 表1 , 表2 where a.id=b.id(+)
右连接
三个表连接
对库本身操作
修改一些显示设置
时间格式设置
alter session set nls_date_format='yyyy-mm-dd HH24:mi:ss'
新建 删除 用户
赋予权限
grant dba to user;
加锁解锁用户
alter user 同户名 account (un)lock;
加锁:alter user 用户名 account lock;
删除用户
drop user gaoming cascade ;
修改用户密码
alter user 用户名 identify by xxx;
存储过程和函数索引
create or replace
索引
单列索引(B-Tree Index)
create index 索引名称 on 表名(列名);
唯一索引(Unique Index)
create unique index USER_NAME_INDEX on DB_USER(NAME);
0 条评论
下一页