文章目录
Oracle管理表(创建、修改、删除)
一、简介
- 表是基本存储单位
- 表都是二维结构(行列)
- 每一列数据必须具有相同的数据类型
- 列名唯一
- 每一行数据的唯一性
二、数据类型
- 字符型:char(n)、nchar(n)、varchar(n)、nvarchar(n)
- 数值型:number(p,s)、float(n)
- 日期型:date、timestamp
- 其它类型:blob、clob
注意:
- nvarchar和varchar2都可以表示可变长度字符,其中nvarchar2适合存储中文数据
- number(5,2):有效梳子5位,保留2位小数,如123.45
- date范围在公元前4712年1月1日到公元9999年12月31日
三、创建表
- create table 表名(列名 数据类型, … )
SQL> create table userinfo (id number(6,0), username varchar2(20), userpwd varchar2(20), email varchar2(30), regdate date);
表已创建。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
四、修改表
1、添加字段
- alter table 表名 add 列名 数据类型;
SQL> alter table userinfo add remarks varchar2(500);
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
REMARKS VARCHAR2(500)
2、 更改字段长度
- alter table 表名 modify 列名 数据类型;
SQL> alter table userinfo modify remarks varchar2(400);
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
REMARKS VARCHAR2(400)
3、更改字段类型
- alter table 表名 modify 列名 数据类型;
SQL> alter table userinfo modify userpwd number(6,0);
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD NUMBER(6)
EMAIL VARCHAR2(30)
REGDATE DATE
REMARKS VARCHAR2(400)
4、 删除字段
- alter table 表名 drop column 列名;
SQL> alter table userinfo drop column remarks;
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD NUMBER(6)
EMAIL VARCHAR2(30)
REGDATE DATE
5、修改字段名
- alter table 表名 rename column 旧列名 to 新的列名;
SQL> alter table userinfo rename column email to new_email;
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD NUMBER(6)
NEW_EMAIL VARCHAR2(30)
REGDATE DATE
6、修改表名
- rename 旧表名 to 新表名
SQL> rename userinfo to new_userinfo;
表已重命名。
SQL> desc userinfo
ERROR:
ORA-04043: 对象 userinfo 不存在
SQL> desc new_userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD NUMBER(6)
NEW_EMAIL VARCHAR2(30)
REGDATE DATE
五、删除表
1、删除表中的数据
- truncate table 表名
SQL> truncate table new_userinfo;
表被截断。
SQL> desc new_userinfo;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD NUMBER(6)
NEW_EMAIL VARCHAR2(30)
REGDATE DATE
2、删除表和表中的数据
- drop table 表名
SQL> drop table new_userinfo;
表已删除。
SQL> desc new_userinfo;
ERROR:
ORA-04043: 对象 new_userinfo 不存在