我这里用的是oracle 10g,PL/SQL来做的。
17.1 创建表 145
17.2 更新表 150
17.3 删除表 153
17.4 重命名表 153
17.5 小结 154
17.1 创建表
17.1.1 表创建:所有列放在小括号里面,各列之间用英文逗号隔开,最后一列后面没有逗号,小括号后面以英文分号结束。
create table vendors(
vend_id char(10) not null ,
vend_name char(50) not null ,
vend_address char(50) null ,
vend_city char(50) null ,
vend_state char(5) null ,
vend_zip char(10) null ,
vend_country char(50) null
);
17.1.2 使用null值 :
a,注意null值表示没有值或者缺值。空字符串('')是一个有效的值,它不是无值。
b,表里面的每一列要么是null列,要是是非null列,这是在创建表的时候,表的定义规定的。默认的是null.
c,只用指定不允许为null的列才可用于主键。主键是一列(或一组列),其值能够唯一标识表中的每一列。
17.1.3 制定默认值:default
默认值常用于日期或者时间戳列,通常是把系统日期用作默认日期。
获得系统日期
MySQL用户:select sysdate();
Oracle用户: select sysdate from dual;
17.2 更新表 :使用alter table时需要考虑的内容。
假如现有表student,
create table student(
snum number not null,
sname varchar2(100),
age number
);
对现有表新增一列或者多列:
alter table student add sex char(1);
alter table student add (address varchar2(100), email varchar2(50));
对现有表新增加主键:alter table 表名 add constraint 约束名 primary key(列名);
alter table student add constraint pk_student primary key(snum);
对现有表删除其中的某一列:alter table 表名 drop column 列名; alter table student drop column age;
复杂的表结构更改一般需要手动删除过程,它涉及以下步骤:
1、复制旧表到一个新表,create table new_table as select * from old_tables;
2、检验包含所需数据的新表
3、重命名旧表(如果确定,可以删除它)
4、用旧表原来的名字重新命名新表
5、根据需要,重新创建新表的触发器、存储过程、索引和外键。
*********************************************************************************************************