oracle数据库学习总结(一)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

oracle数据库———学习总结

基础:

一、ORACLE中字段的数据类型

1、字符型

1)char 范围最大2000个字节定长

char(10) '张三' 后添空格6个把10个字节补满'张三'

性别char(2) '男'

2)varchar2 范围最大4000个字节变长

varchar2(10) '张三' 在数据库中'张三'

2、数字number 范围10的-38次方到10的38次方

可以表示小数也可以表示整数

number(4) 最大表示4位整数-9999 到9999

number(5,2) 表示5位有效数字2位小数的一个小数-999.99 到999.99

3、日期date 包含年月日和时分秒7个字节

4、图片blob 二进制大对象图像/声音4G

二、如何建表

学生表student

create table student( --学生表

xh number(4), --学号

xm varchar2(10), --姓名

sex char(2), --性别

birthday date, --日期

sal number(7,2) --奖学金

);

三、字段的添加、删除、修改

1、添加字段(学生所在班级classid)

alter table student add (classid number(2));

2、修改字段的长度

alter table student modify (xm varchar2(12)) ;

3、修改字段的类型(不能有记录的)

alter table student modify (xh varchar2(5));

4、删除一个字段

alter table student drop column sal;

5、删除表

drop table student;

6、表的名字修改

rename student to stu;

7、字段如何改名字

--先删除

a)alter table student drop column sal;

--再添加

b)alter table student add (salary number(7,2));

四、插入字段(values是insert语句的一个关键词,后面跟要插入的一组字段值。)

1、所有字段都插入

insert into student values ('A001','张三','男','01-5月-05',10);

2、部分字段插入

insert into student(xh,xm,sex) values ('A003','JOHN','女');

3、插入空值

insert into student(xh,xm,sex,birthday) values ('A004','MARTIN','男',null);

五、删除语句

1、删除delete

delete from student; 删除所有记录,表结构还在,写日志,可以恢复的,速度慢

drop table student; 删除表的结构和数据

delete from student where xh='A001'; 删除一条记录

truncate table student; 删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快

六、查询语句

1、查询select

select * from student;

select xh,xm,sex from student;

select * from student where xh like 'A%1'; %任意多个字符

select * from student where xh like 'A__1'; _1个字符

七、混合函数

1、求最大值

select greatest(100,90,80,101,01,19) from dual;

2、求最小值

select least(100,0,-9,10) from dual;

八、空值转换函数

nvl(comm,0) 字段为空值那么就返回0 否则返回本身

select comm,nvl(comm,0) from emp;

comm 类型和值的类型是一致的

九、复杂的函数

1、decode 选择结构(if ... elseif .... elesif ... else结构)

例、要求:

sal=800 显示低工资

sal=3000 正常工资

sal=5000 高工资

只能做等值比较

解决:select sal,decode(sal,800,'低工资',3000,'正常工资',5000,'高工资','没判断')

from emp;

表示如下的if else 结构

if sal=800 then

'低工资'

else if sal =3000 then

'正常工资'

else if sal = 5000 then

'高工资'

else

'没判断'

end if

sal > 800 sal -800 > 0

十、分组函数

分组函数返回值是多条记录或计算后的结果

group by、sum、avg

1、计算记录的条数count

select count(comm) from emp; 字段上count 会忽略空值

comm不为空值的记录的条数

2、group by 分组统计

--有分组函数的时候

--分组统计的功能

统计每种工作的工资总额是多少??

select job,sum(sal) from emp

group by job; --行之间的数据相加

select sum(sal) from emp; --公司的工资总额

3、显示平均工资>2000的工作???

<1>统计每种工作的平均工资是多少

<2>塞选出平均工资>2000的工作

从分组的结果中筛选having

select job,avg(sal) from emp

group by job

having avg(sal) > 2000;

group by 经常和having搭配来筛选

十一、约束

主键约束--每个表要有主键,唯一的标识一行数据

非空约束

唯一性

外键约束

检查约束

1、建立表的同时使用约束

create table student( --学生表

xh number(4) primary key, --学号主键

xm varchar2(10) not null, --姓名不能为空

sex char(2) check (sex in ('男','女')), --性别

birthday date unique, --日期

sal number(7,2) check (sal between 500 and 1000),--奖学金sal >=500 and sal <=1000

classid number(2) references cla(id)

相关文档
最新文档