数据类型
字符型:
CHAR(n):n最大值为2000,固定长度,自动补空格
NCHAR(n):n最大值为1000,,n是长度
VARCHAR2(n):可变长度的,相对于CHAR(n)比较节省空间,n最大值为4000
NVARCHAR2(n):n最大值为2000
数值型:
NUMBER(p,s): p为有效数字,s为小数点后的位数。如果s为正,表示小数点照最低有效数字的位数,如果是为负,表示最大有效数字到小数点的位置
例子:NUMBER(5,2),有效数字为5,保留2为小数,123.45
FLOAT(n):主要用于存储二进制数据类型,表示二进制的位数是1-126位,如要将二进制数转换为十进制数,就要将这个数乘以0.30103才能得到
日期型:
DATA:范围是公元前4712年1月1日到公元9999年12月31日
TIMESTAMP(时间戳):能够精确到小数秒
其他类型:
BLOB:存放4G的数据,以二进制形式存储数据
CLOB:存放4GB的数据,以字符串形式存储数据
创建表
语法
CREATE TABLE table_name(
column_name datatype,
.....
)
实例
创建一个用户信息表
请输入用户名: system
输入口令:
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create table userinfo()
2
SQL> create table userinfo(
2 id number(6,0) ,
3 name varchar2(20) ,
4 pwd varchar2(30) ,
5 regdate date ) ;
表已创建。
SQL>
添加字段
如果表已经存在,还要向里边添加字段,向表里边添加内容使用ADD关键字, 字段就是属性即列。
语法
ALTER TABLE table_name ADD column_name datatype ;
实例
查看 userinfo 添加之前的字段 添加一个information字段
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PWD VARCHAR2(30)
REGDATE DATE
执行后查看字段
SQL> alter table userinfo add informations varchar2(30) ;
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PWD VARCHAR2(30)
REGDATE DATE
INFORMATIONS VARCHAR2(30)
SQL>
更改字段数据类型
语法
ALTER TABLE table_name MODIFY column_name datatype ;
实例
将userinfo 表中的informations 字段长度修改。
SQL> ALTER table userinfo MODIFY informations varchar2(400) ;
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PWD VARCHAR2(30)
REGDATE DATE
INFORMATIONS VARCHAR2(400)
SQL>
删除字段
语法
ALTER TABLE table_name DROP COLUMN column_name ;
实例
删除 information 字段
SQL> ALTER TABLE userinfo DROP COLUMN informations ;
表已更改。
SQL> desc userinfo;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PWD VARCHAR2(30)
REGDATE DATE
SQL>
修改字段名
语法
ALTER TABLE table_name RENAME COLUMN column_name TO new_columen_name ;
实例
修改 pwd 字段 改为 password 字段
SQL> ALTER TABLE userinfo RENAME COLUMN pwd TO password ;
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PASSWORD VARCHAR2(30)
REGDATE DATE
SQL>
修改表名
语法
RENAME table_name TO new_table_name ;
实例
把userinfo表名 改为 uinfo ;
SQL> RENAME userinfo TO uinfo ;
表已重命名。
SQL> desc uinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
NAME VARCHAR2(20)
PASSWORD VARCHAR2(30)
REGDATE DATE
SQL>
删除表
truncate table table_name
删除表中的全部数据(不能恢复),表被截断但是不将表删除,比delete 速度快。,不能删除外键约束的表。
drop table table_name;
删除表、表结构和数据,释放表空间。