oracle学习005 列类型和建表

建表时字段的选择:

Varchar2(n) 变长类型,最长4000个字符
Char(n) 定长,最长2000个字符

变长与定长的区别:

Varchar2(n) ,char(n) 为例, 2者最多能存n个字符, 不同在于,char(n)
,如果实际只存1个字符,仍占据n个字符的空间 Varchar(n) ,如果实际存在1字符,占据1+[1-2]字符 Char性能高一些,
开发优化实例:在一些大的网站上, 用户名一般允许6-16字符 Char(16)

??如果用户表还有个人简介字段,少的10来字,多的1000字,
用char太浪费了,怎么办?

答:竖直分表,把表的不常用及低效率字段,拆出来,放到另一张表.

Number类型 ,可以存整数和浮点数
Number(m,n) m:是总位数(精度),是小数点后面的位数(标度)
Number(5,2) , 999.99

Date 日期类型 :年月日
(精确到秒,存储时间戳)
时间戳是指1970/01/01/00:00:00到当前瞬间的秒数

建表语法:

建表就是一个声明列的过程

典型语法:

Create table 表名 ( 列名称 列类型, 列名称 列类型, … );

查看表结构:

Desc 表名

修改表:

删除列: alter table 表名 drop column 列名
例: alter table employee drop intro;

增加列: alter table 表名 add (列名 列类型)

改列: alter table 表名 modify (列名 新列类型)

-注意:在mysql中是有: 改列同时改名 alter table 表名 change 原列名 新列名 列类型)

修改字段的名:alter table 表名 rename column (原列名) to (新列名)

改表名: alter table 表名 rename to 新表名

快速复制一张表:
Create table 表名 as select */字段 from 另一张表

??我只是想复制表结构,不想要数据??
可以在where后加一个恒为假的条件

例:create table empcopy2 as select * from employer where 2<1;

删除表: drop table 表名

清空表: truncate table 表名

–添加时如果有数据不能设置not null.
–删除不可在sys下使用。
–这些都是在数据库层面上,针对表和表结构操作,属于ddl

猜你喜欢

转载自blog.csdn.net/eebaicai/article/details/81486856