Oracle数据真实操作

Oracle中数据库对象命名原则
必须由字母开始,长度在1-30个字符之间。
名字中只能包含A-Z,a-z,0-9,_,$,和#
同一个Oracle服务器用户所拥有的对象名字不能重复。
名字不能为Oracle的保留字。
名字是大小写不敏感。


复制表


CREATE TABLE 新建的表名 AS 数据来源(SELECT语句)
CREATE TABLE myemp AS SELECT * FROM emp;

复制表结构


CREATE TABLE myemp3 AS SELECT * FROM emp WHERE 3=5; 加个不等式条件

插入数据


INSERT INTO 表名字(字段1,字段2。。。)VALUES(值1,值2.。。) 一一对应
INSERT INTO myemp(empno,ename,job,hiredate,sal,comm,deptno,mgr) VALUES(1007,’李玟’,’歌手’,’10 -10月 -1978’,3654,123,34,1009);
另一种是按照默认的表结构加值,用null补空

从其他表中拷贝数据


INSERT INTO 表名(字段1,字段2。。。。)SELECT 语句;
INSERT INTO myemp3(ename ,empno,job,mgr,hiredate,sal,comm,deptno) SELECT ename ,empno,job,mgr,hiredate,sal,comm,deptno FROM emp WHERE deptno=10;

特殊字符 &相当于声明变量


INSERT INTO myemp3(empno,ename) VALUES (1005,’&a’);

SHOW ESCAPE 查看使用转移字符的状态


SET ESCAPE ON/off打开/关闭转义字符功能\

修改数据


全部修改:UPDATE 表名 SET 字段=新值,字段=新值。。。。。
局部修改:UPDATE 表名 SET 字段=新值,字段=新值。。。。。WHERE条件
UPDATE myemp3 SET sal=sal*1.1 WHERE deptno=10;

删除数据


全部删除:DELETE FROM 表名
局部删除:DELETE FROM 表名 WHERE 条件

ROWID 伪列

ROWNUM 伪行号


查询中间5行数据
SELECT * FROM (SELECT ROWNUM m,ename,job,sal,hiredate FROM emp WHERE ROWNUM<=10) TEMP WHERE TEMP.M>5;
事务处理(ACID):原子性,一致性。隔离性。持久性 必须记忆
提交:COMMIT 可看成保存
回滚:ROLLBACK
数据库对象:是数据库的组成部分,有表,约束,索引,视图,序列,同义词,触发器,存储过程,函数,用户等。


建表


CREATE TABLE 表名(字段 类型 [默认值],字段 类型。。。。。。。。。。。);
CREATE TABLE person( pid varchar2(8) default ‘10’,name varchar(20),age number(3),birthday date);

表的删除


DROP TABLE 表名
DROP TABLE myemp3;

查看回收站里的表


SELECT object_name,original_name,operation,type FROM recyclebin;
SELECT * FROM recyclebin;

删除回收站里的表


PURGE TABLE 表名;

直接删除表


DROP TABLE 表名 purge;

恢复表

表在回收站中
FLASHBACK TABLE 表名 TO BEFORE DROP;

重命名表名


RENAME 旧的 TO 新的
RENAME myemp TO memp;

截断表

清空表中数据并且提交
TRUNCATE TABLE 表名;

TRUNCATE和DELETE的区别


TRUNCATE是DDL,只能删除表中所有记录,释放存储空间,使用ROLLBACK不可以回滚。
DELETE是DML,可以删除指定记录,不释放存储空间,使用ROLLBACK可以回滚。

修改表

增加新列


ALTER TABLE 表名 ADD(列名 类型[默认值]。。。。。。。。。。。。)
ALTER table person ADD(sex varchar2(2) default ‘男’);

修改列


ALTER TABLE 表名 MODIFY(列名 类型[默认值]。。。。。。。。。。。。)

删除列


ALTER TABLE 表名 DROP COLUMN(列名。。。。)

约束

—->表的强制规定
主要是5种约束
主键约束(PRIMARY KEY):表示唯一的,本身不能为空
唯一约束(UNIQUE):唯一性
检查约束(CHECK):检查一个列的内容是否合法
非空约束(NOT NULL):内容不能为空
外键约束(FOREIGN KEY):两个表之间的约定,另外一个表中的主键在当前表中叫外键
CREATE TABLE teacher(id number(5),name varchar2(8),CONSTRAINT teacher_id_pk primary key(id));
CREATE TABLE teacher1(id number(5) primary key,name varchar2(8));
创建视图—CREATE VIEW 后面一样了
创建序列—CREATE SEQUENCE
创建索引有两种方式:
自动创建: 当在表上定义一个PRIMARY KEY 或者UNIQUE 约束条件时,Oracle数据库自动创建一个对应的唯一索引;
手动创建: 用户可以创建索引以加速查询,在需要创建索引的字段上创建需要的索引。

创建同义词


CREATE [PUBLIC] SYNONYM 同义词
FOR [schema.]对象名;

扫一扫,打赏我
Fanyun Fanyun
Copyright©1993 - Now. 瞎塔码搞