一、插入数据
1.1 建表
CREATE TABLE AZJuserInfor(
id int NOT NULL primary key,
name varchar(50) NULL,
birthday date NOT NULL,
age int NOT NULL,
sex int NOT NULL
);
1.2 插入数据
INSERT INTO 表名[(字段列表)] VALUES ( 表达式列表);
insert into AZJuserInfor values (1,'张三',to_date('2012-02-13','yyyy:MM:dd'),0,1);
insert into AZJuserInfor values (2,'李四',to_date('2001-05-13','yyyy:MM:dd'),11,0);
insert into AZJuserInfor values (3,'王五',to_date('2001-08-03','yyyy:MM:dd'),11,0);
说明:
1、插入字段的值的类型要和字段的类型一一对应。
2、字符串类型的字段值必须用单引号括起来,例如:'张三'。字符串类型的字段值超过定义的长度会出错
3、如果要插入表的全部字段,则表名后的字段列表可以省略。
4、其他没有插入的字段,系统会填写为表的默认值。如果在表的创建时没有说明默认值,则将插入NULL值。
5、日期类型的字段值也要用单引号括起来,如'10-1月-03'。日期型的数据默认格式为DD-MON-YY,默认的世纪为当前的世纪,默认的时间为午夜12点。如果指定的世纪不是本世纪或时间不是午夜12点,则必须使用TO_DATE系统函数对字符串进行转换。
1.3 复制数据
CREATE TABLE AZJuserInfor2 AS SELECT id,name,birthday FROM AZJuserInfor WHERE id>1;
说明:CREATE命令用来根据已经存在的表创建新表
1.4 序列
使用INSERT语句时,可以通过序列来填写某些数值型或字符型的列。序列是一个要预先定义的有序的数值序列, 应该先建立一个序列,然后在插入语句中使用
CREATE SEQUENCE abc INCREMENT BY 1 START WITH
4
MAXVALUE 99999 CYCLE NOCACHE;
说明:
CREATE SEQUENCE 序列名称 INCREMENT BY 间隔值 START WITH 初始值 MAXVALUE 最大值 CYCLE NOCACHE;
1.4.1 使用序列
说明:插入时使用序列来填充id,使用abc.nextval可获得序列中的下一个值。后边两个记录来自序列,并且是递增的。
二、修改数据
2.1 修改数据
修改数据的语句UPDATE对表中指定字段的数据进行修改,一般需要通过添加WHERE条件来限定要进行修改的行,如果不添加WHERE条件,将对所有的行进行修改。
UPDATE 表名 SET 字段名1=表达式1, 字段名2=表达式2, ... WHERE 条件;
说明:
1、如果修改的值没有赋值或定义,将把原来字段的内容清为NULL。
2、若修改值的长度超过定义的长度,则会出错。
3、省略WHERE条件,否则将会修改表的所有行。
2.2 根据其他表修改数据
UPDATE 表名 SET (字段名1, 字段名2, ...) = SELECT (字段名1, 字段名2, ...) FROM 另外的表名 WHERE 条件;
例:azjuserinfor2表根据azjuserinfor表修改
三、删除数据
DELETE FROM 表名 WHERE 条件;
说明:要从表中删除满足条件的记录,WHERE条件一般不能省略,如果省略就会删除表的全部数据。
说明:删除记录并不能释放Oracle中被占用的数据块表空间,它只是把那些被删除的数据块标成unused。如果确实要删除一个大表里的全部记录, 可以用TRUNCATE 命令,它可以释放占用的数据块表空间,语法为:
TRUNCATE TABLE 表名;
此命令和不带WHERE条件的DELETE语句功能类似,不同的是,DELETE命令进行的删除可以撤销,但此命令进行的删除不可撤销。
注意:TRUNCATE TABLE命令用来删除表的全部数据而不是删除表,表依旧存在。
- 上一篇:oracle简单学习总结(四)——高级查询
- 下一篇: