Oracle系列:基础知识

Oracle基础知识

数据库:存储数据的仓库;

常见的数据库类型有关系型数据库和非关系型数据库

Oracle是关系型数据库,端口号为1521;

数据库标准语言:

数据库定义语言:DDL

  • create table 创建表、alter table 修改列、drop table 删除列;

数据库操作语言:DML

  • insert 添加、update 修改、delete 删除;

事务控制语言:TCL

  • commit 提交、rollback 回滚(撤销);

数据库查询语言:DQL

  • select 查询;

数据库控制语言:DCL

  • grant 授权、revoke 回收权限;

Oracle中常用的几种数据类型

char(n):定长字符串,默认长度为1,长度不可变,指定多长就占几个字节;

varchar:字符串类型,长度不可变,没有值得时候是“”

varchar2(n):可变长字符串,在你指定的范围内可变长度(如:varchar(10),存入的长度为5,它的长度就是5,最大不能超过指定的长度)

没有值得时候是一个null(和varchar的区别);

number(m,n):数字型数据类型,m表示有效位数,n表示保留小数点后几位;

date:日期类型;

clob:用于存储定长字节的大数据对象,大字符备注区别;

blob:一般用于存储图片,媒体资料等;

简单命令:

show user:查看当前用户;

desc 表名:查看表结构;

drop table 表名 purge:删除表;(Oracle中删除表不是真正的删除,而是占用空间移动到别的地方,因为为了不占空间,真正删除需要purge)

delete from 表名:删除表中所有值,若加上where 列明=value则表示删除某列中的值

CRUD语句:

//添加
INSERT INTO 表名(字段1,字段2....) VALUES();
//查询
SELECT 字段1,字段2... FROM 表名;
//删除
DELETE FROM 表名 WHERE 字段名=存在的字段内容;
//修改
UPDATE 表名 SET 字段名=修改的字段内容 WHERE 字段名=存在的字段内容;

五大约束

not null:不为空约束;

unique:唯一约束;

primary key:主键约束(自带不为空约束、唯一约束和序列);

foreign key:外键约束;

check:检查约束;

Oracle常用函数

dual:伪表,主要用来完成功能性查询sql;

字符函数--返回字符值:

CHR(n):将n转化成ASCLL表对应的字符(n是整数类型);

select chr(54740) 别名1,chr(65) 别名2 from dual; 

CONCAT(s1,s2):拼接s1,s2两个字符串;

select concat('010-','88888888')||'23'  连接 from dual;

INITCAP(s):返回字符串单词首字母大写,其余字母小写;

select initcap('smith hEllo') upp from dual;

LOWER(s):将字符串的每个字符都改为小写;

select lower('AaBbCcDd') AaBbCcDd from dual;

UPPER(s):将字符串的每个字符都改为大写;

select upper('AaBbCcDd') upper from dual;

LPAD(s1,X,[s2]):在s1的左边插入X个s2;

select lpad('gao',5,'*')from dual

RPAD(s1,X,[s2]):在s1的右边插入X个s2;

select rpad('aaa',5,'*') from dual;

REPLACE(s1,s2,s3):将s1里面的子串s2替换成s3,如果没写s3则表示删除s2;

select replace('he lohe you','he','i') from dual;

TRIM(s1):功能1.去除首位的空格,功能2.用来删除字符串两边的指定字符(trim([s2] from s1) s2必须为单字符)

LTRIM(s):去除左边字符串的空格;

RTRIM(s):去除右边字符串的空格;

SUBSTR(s,a,b):截取字符串,从第a个开始截取b个字符,(这里字符串的下标是从1开始的);

select substr('13088888888',3,8) 截取字符串 from dual;

字符函数--返回数字:

ASCII(s):给定一个字符返回一个ASCll表的值;

select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;

INSTR(s1, s2,a,b):返回给定中的字符串s1中的子串s2从a位开始查第b此出现的下标位置;

select instr('oracle traning','ra',1,2) instring from dual;

LENGTH (s):返回字符串的长度;

select length('asdfg') 长度 from dual;

数学函数:

ABS(x) :取绝对值;

 select abs(-100) from dual;

CEIL(x) :向上取整;

--值为11;
select ceil(10.3) from dual

MOD(x,y):取余数;

ROUND(x[,y]) :四舍五入函数,y缺省值为0,x保留整数;y>0,x保留小数点右边y位,y<0,x保留小数点左边 |y| 位;

日期时间函数:

sysdate:获取当前系统时间(类型为:date);

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

SYSTIMESTAMP:获取当前系统时间(类型为:timetamp)

Select systimestamp from dual;

TRUNC(d,format) :截断日期时间数据;

 select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh from dual;

TO_CHAR(d,format):将日期类型转换成字符串类型;

TO_DATE(s,format):将字符串类型转换成date类型;

Select to_date(‘20130101’,’yyyymmdd’) from dual;

TO_NUMBER(s):转换为数字类型;

select to_number('1999') year from dual;

分组统计函数:

AVG():取平均值

select avg(degrees) as 平均值 from dual;

COUNT(1):得到查询中行的数目,参数也可以是*,但是1的效率高;

Select count(1) from emp;

其他函数

升序:order by......asc;

降序:order by......desc;

分组:group by 字段名;(在使用它的时候查的应该是被分组字段或者是分组函数);

decode(查询字段,匹配字段,返回结果......,default):类似java中的switch()...case

nvl2(value1,value2,value3):如果value1为空输出value3,不为空则输出value2;(java中的三目运算符)

nvl(value1,value2):如果value1为空输出value2,不为空则输出value1;

nullif(value1,value2):如果value1等于value2则返回null,否则返回value1(一般用来判断value1字段是否为空)

distinct:去重

select distinct name from 表名

between...and...:表示在两者之间;

select * from 表名 where age between 18 and 20

in():匹配括号里面中的任意一个;

select name from 表名 where age in(18,,20,22);

not in():不匹配括号里面的任意一个;

union:将两个查询语句合并为一条语句执行,合并重复内容;

select * from 表名 where age>= 18 union select * from 表名 where age<=25

union all:和union一样,只是结果保留重复内容;

select * from 表名 where age>= 18 union all select * from 表名 where age<=25

以上两个要保证两个查询语句、查询字段、查询个数必须相同;


托生此世,万般好处,也是一枕黄粱。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值