oracle学习札记2-表的基本操作

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 可以表示整数,也可以表示小数。

2number52)表示一个小数,有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点的状态。