oracle学习札记2-表的基本操作
Oracle表的管理
表名和列名的命名规则:
○1必须以字母开头
○2长度不能超过30个字符
○3不能使用Oracle的保留字
○4只能使用如下字符:A-Z,a-z,0-9,$,#等
Oracle支持的数据类型:
○1char 定长,最大2000字符
例子:char(10) ‘晓辉’ 前四个字符放’晓辉’,后添六个空格补全
○2varchar2(20) 变长,最大4000个字符
例子:varchar2(20) ‘晓辉’ Oracle为其分配4个字符,这样节省空间,但是在查找时,varchar2类型要比char类型慢很多。
○3clob(character large object) 字符型大对象,最大4G。
数字型:
○1number 范围 -1038~1038 可以表示整数,也可以表示小数。
○2number(5,2)表示一个小数,有5位有效数,2位小数,范围-999.99~999.99
○3number(5)表示一个5位整数,范围是:-99999~99999
日期类型:
○1date 包括年月日时分秒
○2timestamp 这是对date数据类型的扩展。
二进制数据类型:
Blob 二进制数据,可以存放图片、声音……4G
其实真实项目中仅仅是在数据库中存放路径而已,不会真的去存储二进制数据,当然,数据库中存放东西是很安全的,所以,如果对数据安全性的要求很高,可以把该二进制数据放入数据库中。
建表:
例子:
Create table student(--表名
Xh number(4),--学号
Xm varchar2(20),---姓名
Sex char(2),--性别
Birthday date,--生日
Sal number(7,2)—奖学金
);
删除表:
Drop table student;
为表添加一个字段:
Alter table student add(classid number(2));
修改字段的长度:
Alter table student modify (xm varchar2(30));
修改字段的类型或是名字:(不能有数据)
Alter table student modify(xm char(30));
删除一个字段:
Alter table student drop column sal;
修改表的名字:
Rename student to stu;
补充:
Desc emp;
该命令会列出emp的表头信息。
SQL> desc myemp;
Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
EMPNO NUMBER(4) Y
ENAME VARCHAR2(10) Y
JOB VARCHAR2(9) Y
MGR NUMBER(4) Y
HIREDATE DATE Y
SAL NUMBER(7,2) Y
COMM NUMBER(7,2) Y
DEPTNO NUMBER(2) Y
SQL>
SQL> insert into myemp values(8888,'morf','clerk',7839,'8-12月-88',4567.56,234.34,10);
以上是表的插入
日期的格式看起来很别扭,我们可以暂时(长期更改要改配置文件)更改:
Alter session set nls_date_format=’yyyy-mm-dd’,接下来就可以用我们熟悉的格式‘1999-12-08’来添加了
插入时可以不用插入全部字段:
Insert into student(xm,xh) values(‘morflame’,’a123’);
也可以插入null值
修改字段:
Update student set sex=’女’,birthday=’1988-12-1’ where sal is null;
删除数据:
Delete from student;删除所有记录,表结构还在,写日志,可以恢复,速度慢。
Drop table student;删除表的结构和数据
Delete from student where xh=’a111’;删除一条记录
Truncate table student;删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
回滚点的设置:
Savepoint aa;
……一系列的语句,可能有破坏性
Rollback to aa;这样就会回滚到aa点的状态。