表管理
表名和列名的命名规则
- 必须以字母开头
- 长度不能超过30个字符
- 不可以使用oracle的保留字
- 总之和其他语言的命名规则没什么不同,只是不能数字开头
数字类型
- 字符类
char() 长度固定,最多2000个字符
varchar()是比较常用的 ,可变长,最多容纳4000个字符
clob 字符型大对象,最多容纳4g
对比:
char查询速度极快,但是浪费空间
varchar 节省空间,自动变长 - 数字型
number范围-10的38次方,可以表示整数,也可以表示小数
number(5,2)表示一位小数有5位有效数,2位小数
number(5)表示一个5位整数 - 日期类型
date,timestamp - 图片
-blob存放图片或者声音
表相关语句
创建表
create table student(
id number(4),
name varchar2(20),
sex char(2),
birthday date,
sal number(7,2)--有效数字7位,2位小数
)
修改表
alter table student add(grade number(2));--alter修改表,add增加
alter table student modify(name varchar2(30));--修改字段长度,modify修改,但是不能是有数据的
alter table student modify (name char(30));--修改字段类型或者名字
alter table student drop column sal;--删除字段
rename student to stu;--修改表名字
drop table student;--删除表
表中添加数据
insert into student values('a001','张三','男','01-5 月-05');--oracle数据库中的日期是日-月-年,插入全部字段一定要按照顺序来
insert into student(id,name,sex) values('a004','martin','男');--插入部分字段
表中修改数据
update student set sex='女' where id='a001';--修改一个字段
select * from student where birthday is null;--null不同于其他的
删除数据
delete from student;--删除所有记录但是表结构还在,可以恢复
savepoint a;--创建保存点
rollback to a;--恢复到保存点
drop table student;--删除表结构和数据
delete from student where id='a001';--删除了一条记录
表查询初级
- 查看表结构
desc emp;
- 查询所有列
select * from dept;
-
set timing on/off 打开显示操作时间的开关
-
表复制语句
insert into table2(id,name,loc) select table.id,table.name,table.loc from table;
- 表统计
select count(*) from emp;
去重
select distinct id,job from emp;
nvl函数
nvl(string1,string2);--如果string1为null,就返回string2,不为null就返回string1
显示每个雇员得年工资
select sal*13+nvl(comm,0)*13 "年薪",ename,comm from emp;