1.认识表
今天学习关于操作表的内容:
- 认识表,知道表的一些概念;
- 数据类型,也就是表中能存放哪些类型的数据;
- 管理表,也就是对表的创建修改和删除的操作。
认识表,我们的表都会存放在oracle数据库的表空间里。
- 表是基本的存储单位;
- oracle数据库中表都是二维结构;
- 由行和列组成;行可以称之为记录,列可以成为域或者字段;
每一张表有一些约定:
- 每一列数据必须具有相同的数据类型;
- 列名唯一;
- 每一行数据的唯一性。
2.oracle表中的数据类型
字符型数值型日期型其他类型。
字符型:
- CHAR(n)、NCHAR(n),这两种都是固定长度的类型,如果10个字符你只填入2个,系统会填入8个空格进去。两者的区别,NCHAR是按照unicode格式进行存放数据的,CHAR类型n的最大值是2000,NCHAR类型n的最大值是1000,一般我们存储汉字用NCHAR类型是比较多的。
- VARCHAR2(n)、NVARCHAR2(n),可变长度的类型。n代表最大长度。NVARCHAR其中n最大长度是2000,也是按照unicode格式存放数据,VARCHAR最大长度是4000。
数值型:
- NUMBER(p,s) p代表有效数字,s代表小数点后的位数,s为正数表示从小数点到最低有效数字的位数,s为负数表示从最大有效数字到小数点的位数。NUMBER(5,2)表示有效数字5位,保留2位小数,比如153.23;
- FLOAT(n)主要用于存储二进制数据,可以表示二进制的位数为1~126位,如果要将二进制数转换为十进制数要乘以0.30103,因此Oracle中一般使用NUMBER类型。
日期型:
- DATE类型:表示范围:公元前4712年1月1日到公元9999年12年31日,可以直接精确到秒。
- TIMESTAMP类型:更精确的日期类型TIMESTAMP(时间戳类型),能够精确到小数秒,但一般情况下我们使用DATE类型。
其它类型:大对象的数据
- BLOB:能够存放4G的数据,存放的是以二进制形式存放的数据。
- CLOB:能够存放4G的数据,存放的是以字符串的形式存放的。
3.管理表
这就需要我们了解如何创建表,修改表和删除表。
创建表我们分两部分为大家讲解,一部分是创建表的基本语法,然后第二部分就是实际的例子,我们会用这个语法来创建一个基本的用户信息表。
基本语法:REATE TABLE table_name (column_name datatype,...);
这里我们需要注意,在同一个用户下我们的表名要是唯一的,就是指的我们当前登陆的用户。
创建用户信息表,需要哪些字段?编号 用户名 密码 邮箱 注册时间,字段的类型。
CREATE TABLE userinfo(
id number(6,0),
username varchar2(20),
userpwd varchar2(20),
email varchar2(30),
regdate date
);
如果要查看表结构信息,可以desc userinfo直接查看的。
4.修改表
我们现在修改表是修改表的结构,并不是修改表的数据。我们会学习如何添加字段,如何更改字段的数据类型,删除字段,如何修改字段名,修改表名。
添加字段 add
alter table 表名 add 列名 数据类型;
例子:添加一个备注字段:ALTER TABLE userinfo ADD remarks varchar2(500);
修改字段类型 modify,可以更换数据类型,或者更改长度,在修改时这个表中最好是没有数据的情况下, 如果存放了很多就不能修改了。
alter table 表名 modify 列名 数据类型;
例子:ALTER TABLE userinfo MODIFY remarks varchar2(400);
例子:ALTER TABLE userinfo MODIFY userpwd number(6,0);
删除字段 drop
alter table 表名 drop column 列名;
例子:ALTER TABLE userinfo DROP COLUMN remarks;
更改字段的名字:rename
alter table 表名 rename column 列名 to 新的列名;
例子:ALTER TABLE userinfo RENAME COLUMN email to new_email;
更改表的名字:
rename 表名 to 新的表名;
rename old_table to new_table;
例子:RENAME userinfo to newuserinfo;
5.删除表
删除表:
删除表的内容,保留表结构,删除表中全部数据,但是不删除表,对表进行截断。
truncate table table_name;
例子:TRUNCATE TABLE newuserinfo;
删除表结构和表的内容
drop table table_name;
例子:DROP TABLE newuserinfo;