Oracle常用操作手册(持续更新务实版 https://zhuanlan.zhihu.com/p/532100964 --创建表--- CREATE TABLE [schema.]table (column1 datatype [DEFAULT expr] [约束], column2 datatype [DEFAULT expr]s [, ...]); --新增新列-- 语法:ALTER TABLE 表名 ADD 列名 属性; alter table table_name add [column] column_name column_definition [first|after existing_column] 需求:添加一个department_id 字段在name之后 ALTER TABLE emp_new ADD department_id NUMBER(10) after name ; --修改列的属性(数据类型,默认值)-- 语法:ALTER TABLE 表名 MODIFY 字段名 属性信息; ALTER TABLE emp_new MODIFY email VARCHAR2(64) DEFAULT 'service@qq.com'; --删除列-- 语法:ALTER TABLE 表名 DROP COLUMN 字段名; ALTER TABLE emp_new DROP COLUMN job_id; --给表重命名-- 语法:RENAME 旧表 TO 新表; RENAME emp_new TO emp6; --删除表DROP TABLE-- 语法:DROP TABLE 表名; 特点: · 数据和结构都被删除 · 所有正在运行的相关事务被提交 · 所有相关索引被删除 · DROP TABLE 语句不能回滚 --截断表---: TRUNCATE TABLE 语句: · 删除表中所有的数据(表结构继续存在 ) · 释放表的存储空间 · RUNCATE TABLE = DROP + CREATE ---增删改查-- INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...); INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...), (值1, 值2, 值3, ...), ...; DELETE FROM 表名 WHERE 1=1; UPDATE 表名 SET 列 = 值 WHERE 1=1 ---------------分页----------------- SELECT * FROM table_name WHERE 1=1 ORDER BY ID ASC/DESC OFFSET 30(偏移量) ROW FETCH NEXT 20(查询的数量) ROW ONLY SELECT * FROM ( SELECT a.*, ROWNUM r FROM my_table a WHERE ROWNUM <= 30 ) WHERE r >= 20; SELECT * FROM ( SELECT a.*, ROW_NUMBER() OVER (ORDER BY my_column) r FROM my_table a ) WHERE r BETWEEN 21 AND 30; -----------------------------约束------------------------- /* 1、简介 1)约束是表级的强制规定 2)约束表中的数据可以有哪些 ,例如:性别字段 男|女 2、约束的种类 NOT NULL :非空约束,必须有内容,例如用户名 UNIQUE :唯一约束,内容是唯一的,不能重复,可以为空 PRIMARY KEY :主键约束,内容是唯一的,并且不能为空 FOREIGN KEY :外键约束,参照完整性,需要参照于其他表中的数据 CHECK :检查约束,可以用来自定义规则 例如:性别 男或者女 年龄:0-150岁 3、注释事项 1)如果不指定约束类型,系统会自动生成约束的名称 SYS_Cn开头的数据 2)创建约束的时机: - 建表的时候:CREATE TABLE - 建表之后: ALTER TABLE 3)可以在表级或列级定义约束 - 列级,在当前列创建约束,范围只能在当前列使用(NOT NULL只能是列级约束) - 表级,和列是平级的。范围是可以控制表中所有的列 - 除了NOT NULL 必须是列级约束,其余四个可以是列级也可以是表级约束 */ -- 修改表,添加外键 ALTER TABLE 表名 ADD CONSTRAINT fk_约束名 FOREIGN KEY(字段) REFERENCES 主表(字段); -- 修改 course表中的 tno字段,添加外键 ,参照的是 teacher表中的 tno字段 ALTER TABLE course ADD CONSTRAINT fk_cou_teacher_tno FOREIGN KEY(tno) REFERENCES teacher(tno); -- 删除约束 ALTER TABLE course DROP CONSTRAINT fk_cou_teacher_tno; -- 禁用约束:语法 ALTER TABLE 表名称 DISABLE CONSTRAINT 约束名称; -- 启用约束:语法 ALTER TABLE 表名称 ENABLE CONSTRAINT 约束名称; -- 添加列,添加约束 ALTER TABLE course ADD c_001 VARCHAR2(10) REFERENCES teacher(tno); -- 查询数据字典视图 USER_CONS_COLUMNS -- 表名:大写 SELECT constraint_name, column_name FROM user_cons_columns WHERE table_name = 'TEACHER'; SELECT constraint_name, constraint_type, search_condition FROM user_constraints WHERE table_name = 'TEACHER'; ---循环 LOOP 循环的语法如下: 以LOOP关键字开始,以END LOOP语句结束。要靠循环体内的EXIT、EXIT WHEN或者RETURN来退出循环(或者有异常抛出)。 LOOP -- statements to be executed EXIT [WHEN condition]; END LOOP; --简单理解为: loop 要执行的语句; ┐ exit when 退出条件; ├循环体 [要执行的语句;] ┘ end loop; while循环语法 WHILE condition LOOP -- statements to be executed END LOOP; --简单理解v: while 条件 --进入循环的条件 loop 要执行的语句; [exit when 退出条件;]--中途退出的条件 end loop; GOTO 循环语法 <