语法:
Create table 表名(
字段 1 数据类型 [default 默认值],
字段 2 数据类型 [default 默认值],
...
字段 n 数据类型 [default 默认值] );
范例:创建 person 表
示例
create table person(
pid number(10),
name varchar2(10),
gender number(1) default 1,
birthday date
);
插入数据
insert into person(pid, name, gender, birthday)
values(1, '张三', 1, to_date('1999-12-22', 'yyyy-MM-dd'));
语法:
DROP TABLE 表名
在 sql 中使用 alter 可以修改表
ALTER TABLE 表名称 ADD(列名 1 类型 [DEFAULT 默认值],列名 1 类型 [DEFAULT 默认值]...)
ALTER TABLE 表名称 MODIFY(列名 1 类型 [DEFAULT 默认值],列名 1 类型 [DEFAULT 默认值]...)
ALTER TABLE 表名称 RENAME 列名 1 TO 列名 2
范例:在 person 表中增加列 address
alter table person add(address varchar2(10));
范例:把 person 表的 address 列的长度修改成 20 长度
alter table person modify(address varchar2(20));
标准写法:
INSERT INTO 表名[(列名 1,列名 2,...)]VALUES(值 1,值 2,...)
简单写法(不建议)
INSERT INTO 表名 VALUES(值 1,值 2,...)
注意:使用简单的写法必须按照表中的字段的顺序来插入值,而且如果有为空的字段使用 null
示例:
insert into person values(2,'李四',1,null,'北京育新');
全部修改:
UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,..
…
局部修改:
UPDATE 表名 SET 列名 1=值 1,列名 2=值 2,....WHERE 修改条件;
语法 :
DELETE FROM 表名 WHERE 删除条件;
注意:在删除语句中如果不指定删除条件的话就会删除所有的数据
小贴士:因为 oracle 的事务对数据库的变更的处理,我们必须做提交事务才能让数据真正的插入到数据库中,在同样在执行完数据库变更的操作后还可以把事务进行回滚,这样就不会插入到数据库。如果事务提交后则不可以再回滚。 提交:commit 回滚:rollback
在很多数据库中都存在一个自动增长的列,如果现在要想在 oracle 中完成自动增长的功能, 则只能依靠序列完成,所有的自动增长操作,需要用户手工完成处理。
语法:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
范例:创建一个 seqpersonid 的序列,验证自动增长的操作
CREATE SEQUENCE seqpersonid;
序列创建完成之后,所有的自动增长应该由用户自己处理,所以在序列中提供了以下的两种操作:
nextval :取得序列的下一个内容
currval :取得序列的当前内容
select seqpersonid.nextval from dual;
select seqpersonid.currval from dual;
在插入数据时需要自增的主键中可以这样使用
在实际项目中每一张表会配一个序列,但是表和序列是没有必然的联系的,一个序列被哪一张表使用都可以,但是我们一般都是一张表用一个序列。
序列的管理一般使用工具来管理。