假设已经有一个数据表:test_comment:
有字段:
id number(10),
name varchar2(30),
pwd varchar2(30);
下面:
1,为创建的数据表添加注释:
为表和字段添加注释的语句则是:
为表:
comment on table 表名字 is '注释名字';
如:comment on table test_comment is '添加注释测试表';
为字段:
comment on column 列的名称 is '注释名称';
如:comment on column test_comment.id is '所属应用标示';
2,为表添加一列:
alter table 表名子 add 列名称 列的数据类型;
为表添加一列:r_status:
如:alter table test_comment add r_status char(1);
3,为表添加一个主键约束和检查约束:
alter table 表名称 add constraint 约束名称 约束类型 (列明称);
如:为表添加主键约束:
alter table test_comment add constraint PK_TEST_COMMENT primary key
(id);
为表的r_status字段添加检查约束,字段值只能是Y和N:
alter table test_comment add constraint CK_R_STATUS_TEST_COMMENT
check (r_status in ('Y','N'));
4,删除表的约束:
alter table 表的名字 drop constraint 约束名称:
如:删掉刚刚创建的检查约束:
alter table test_comment drop constraint CK_R_STATUS_TEST_COMMENT;
删除主键约束:
alter table test_comment drop constraint PK_TEST_COMMENT;
总结:创建约束的时候要声明约束类型,删除约束的时候不需要指定类型,只需要制定约束的名称即可.
这是单表约束,下面还有多表约束,外键约束:
又新增加了一个数据表:
test_foreigen:
有字段:id number(30),主键
f_id number(30),外键
score number(30),
course varchar(30);
5,为这张表的f_id添加外键约束,
alter table 表名字 add constraint 约束名称 foreign key (字段名) references 参考的表名字(列名字);
需要注意的是:被参照的表的字段必须是这个表的主键,否则会有
ORA-02270: 此列列表的唯一或主键不匹配
这样的错误出现.
alter table test_foreign add constraint FK_TEST_FOREIGN foreign key(f_id) references test_comment(id);
6,创建索引:
create index 索引民称 on 表名称(列名称);
如:为test_comment表的name字段创建索引:
create index test_comment_name_index on test_comment(name);
7,向表中添加新列:
alter table 表名 add 字段名 数据类型(大小);
如向表test_comment添加新列Email;
alter table test_comment add email varchar(20);
8,修改表中列的数据类型:
alter table 表名 modify 列明 新数据类型;
如修改表test_comment 表中的字段 email的数据类型为number(20),原来是varchar(12);
alter table test_comment manager_id number(20);
9,删除表的约束:
alter table 表名 drop 约束名(字段名);
如删除表test_comment表的字段id上的唯一约束:
alter table test_comment drop unique(id);
10,向日期字段插入数据:
update 表名 set 字段 = 值;
如:向test_comment表中的birthday字段添加默认值:2005-05-01;
update test_comment set birthday = to_date('2005-05-01','yyyy-mm-dd');
<这里用到了to_date函数,将字符串转换成为制定格式的日期>
11,自连接练习:
现有一表it_employees:
字段如下:
employee_id number(12), 雇员编号
first_name varchar(20), 姓名
last_name varchar(20),
email varcahr(20), 邮箱
phone_number varchar(11), 电话
job_id number(12), 岗位编号
salary number(12), 薪资
manager_id varchar(20). 领导编号
根据表查询谁的领导是谁:
select em1.first_name manage,em2.first_name empoyee
from it_employees em1 left join it_employees em2
on em1.employee_id = em2.manager_id
on em1.employee_id = em2.manager_id
<可以用左连接,右连接,和内连接>
12,minus集合运算符:
返回在第一个结果中所有的减去和第二个结果集中重复的之后的第一个结果集中所有集合
如:第一个结果返回: Tom,Mac,MeiMei
第二个结果返回:Anny,Jerry,Tom
则执行minus之后为:Mac,MeiMei