一道在Oracle中建表的sql题 我是初学者 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/11 16:57:41
请按照要求写出相应sql ,各条sql之间没有前后关系.

表A中有如下四个字段:m 整形,n 整形,x 字符型,y 时间型.通过m字段可以唯一确定一条记录;n字段默认值为0;m,n,y字段均为非空字段,x字段可空.

1)创建该表,体现出上面要求.并往该表插入一条m=1,n=2,x='abc',y为当前数据库时间的记录;

2) 修改表A结构,将n字段默认值设为1.

3)更新表A中的m字段值介于5和15之间的记录,使其x字段值改为'Oracle',y字段值改为2009年9月25日15点7分1秒

4)表A中m字段为一个流水号,每插入一条记录,取当前表中m字段的字段值加1. 为该字段创建一种合适的数据库对象或者数据类型,并写出创建该种数据库对象或者类型的sql

1.create table A(m number(10) PRIMARY KEY,
n number(10) DEFAULT 0 NOT NULL,
x varchar2(20),
y date NOT NULL);

2.ALTER TABLE A modify(n DEFAULT 1);

3.UPDATE A SET X='Oracle',
y=TO_DATE('25-9-2009 15:7:1','dd-mm-yyyy hh24:mi:ss')
where m<15 and m>5;

4.CREATE SEQUENCE A_sequence --//创建一个sequence
INCREMENT BY 1 --// 每次加几个
START WITH 1 -- //从1开始计数
NOMAXVALUE -- //不设置最大值
NOCYCLE -- //一直累加,不循环
CACHE 10;

插入数据时
insert into A values(A_sequence.NEXTVAL,2,'abc',TO_DATE('25-9-2009 15:7:1','dd-mm-yyyy hh24:mi:ss'));

呵呵 经测试一切正常!

建表:
create table a
(m number primary key
,n number default 0 not null
,x varchar2(10)
,y date not null
);

1.
insert into a values(1,2,'abc',sysdate);

2.
alter table a modify n number default 1 not null;

3.
update