Oracle之表操作

2017-10-17  本文已影响0人  产品小正

我们对数据库的操作,大部分是对表的操作。表存放于表空间之中,一个表空间内有多个表,但是一个表只能存在于一个表空间内。

创建表

create table 表名(

列名 类型,

列名 类型

);

create table students(

stuno number(10),          学号

stuname varchar2(8),     姓名

sec char(2),                    性别

age int,                           年龄

departno varchar2(2),    系别编号

classno varchar2(4),      班级编号

regdate date                  建档日期

);

注:oracle本没有int,为了增加兼容性,添加了int类型用于存整数。

类型详解

CHAR(length)

存储固定长度的字符串。参数length指定了长度,如果存储的字符串长度小于length用空格填充,默认长度是1,最长不超过2000字节。

VARCHAR2(length)

存储长度可变的字符串。length指定了该字符串的最大长度,默认长度为1,最长不超过4000字符。

NUMBER(p,s)

既可以存储浮点数,也可以存储整数,其存储方式为四舍五入。p表示一共有多少位有效数字(当s为负数的时候表示小数点左边最多有p-s位有效数字),s表示小数点右边有s位有效数字。如number(5,3)表示最多5位有效数字,其中小数点前面最多有2个有效数字,小数点后面最多有3个有效数字。number(5,-3)表示最多5位有效数字,其中小数点前面最多有5个有效数字,但小数点前面可以有8位(5-(-3)=8),小数点后面为0位。例:12345678最后存储为12346000。

DATE

存储日期和时间,存储纪元、4位年、月、日、时、分、秒。存储时间从公元前4712年1月1日至公元后4712年12月31日。

TIMESTAMP

不但存储日期的年月日,时分秒,以及秒后6位,同时包含时区。

CLOB

存储大的文本,比如存储非结构化的XML文档。

BLOB

存储二进制对象,如图形、视频、声音等。

注:varchar2把空串等同于null处理,而varchar仍按空串处理。在create中,每一个数据名 类型后面要跟一个",",但最后一个不需要添加,也不能添加。


查看用户所有表

select * from dba_tables where owner='用户名';

注:用户名须大写,如SCOTT,SYSTEM。

select * from dba_tables where owner='SCOTT';

查看表结构

desc 表名 或者 describe 表名

查询结果为表的结构分别输出表中列的下面数据

Name:名字,Type:类型,Nullable:可为空Y表示可以,Default:默认值,Comments:注释

desc students;

删除表

drop table 表名 [cascade constraints]

cascade constraints为可选项,当有其他表关联到要删除的表的主键列或唯一键列,那么就需要添加这个,否则会报错。

drop table students;

更改表

(1)增加列(增加一个新列)

alter table 表名 add 列名 属性;

alter table students add addres varchar2(10);

(2)删除列(删除一个列)

alter table 表名 drop [column] 列名

删除单列的时候需要添加column,删除多列不能添加column。

alter table students drop column addres;

alter table students drop (addres1,addres2);

(3)修改列字段(修改某个列的相关属性)

alter table 表名 modify 列名 属性

alter table students modify stuname varchar2(20);

(4)重命名表

alter table 旧表名 rename to 新表名

alter table students rename to student;

注:在个别语句执行之后需要commit一下才能完成上传同步。

DML语言,比如SELECT、INSERT、UPDATE、DELETE等修改表中数据的操作需要commit;

DDL语言,比如CREATE TABLE、DROP TABLE等改变表结构的操作就不需要写commit(因为其内部隐藏了commit);

上一篇 下一篇

猜你喜欢

热点阅读