一,表名和列名的命名规则
·必须是以字母开头
·长度不能超过30个字符
·不能使用oracle的关键字
·只能使用如下字符:a-z , A-Z , 0-9 , $,_ ,# 等
二,数据类型
字符型:
char : 定长 最大2000 字符
varchar2 : 变长 最大4000字符
clob : 字符型大数据,最大为4GB
数值型:
number: 范围 -10的38次方----10的38次方
可以表示整数,也可以表示小数。
number(4,2): 表示 -99.99 ~ 99.99
number(3) : 表示 -999~999
日期数据:
date : 包括年月日和时分秒
timestamp: 时间戳
在oracle中,日期默认的格式是 ' 日-月-年' ,如:'11-2月-1991' 表示1991年2月11 ,而且中间的那个月也不能少
可以设置日期的格式:
alter session set nls_date_format = 'yyyy_MM_dd' ;
二进制数据:
blob : 存放图片,视频 等 ---- 4G
三,建表
。。。。。
四,修改表的字段
·增加一个字段
alter table student add(classid number(3)) ;
·修改一个字段的长度
alter table student modify(classid number(5));
·修改字段的类型
alter table student modify(classid char(5));
·重命名字段
alter table student rename column classid to cid;
·删除字段
alter table student drop column classid ;
·重命名表名 (只有创建表的那个用户才能重命名)
rename student to stu ;
·删除表
|- drop table student ;
删除表结构,不能恢复
|- delete from student ;
删除表中所用的数据,会有日志,能够恢复
|- truncate table student
不会有日志,不能恢复,但是效率较delete高
五,更新数据
·更新多个字段的信息
SQL>update tablename set 字段1=' ..' , 字段2 =' ...' .... where .. 条件
·更新多个未知的数据
?更新SCOTT用户的job,deptno,sal 和 smith用户的一样
因为不知道smith的工作,部门和薪水,所以要先查出来,然后在更新,所以是个未知的更新
SQL> update emp set (ename,job,deptno) = (select ename,job,deptno from emp where ename = 'SMITH') where ename='SCOTT';