ORCLA基础总结(一)

SQL 分类

DCL(Data Control Language 数据控制语言)

DDL(Data Definition Language 数据定义语言)

DML(Data Manipulation Language 数据操纵语言)

DQL(Data Query Language 数据查询语言)

SQL 连接

内连接

1.等值连接
等值连接:在连接中使用等号(=)操作就是等值连接。
SELECT employees.employee_id, employees.last_name, employees.department_id, departments.department_id, departments.location_id FROM employees, departments WHERE employees.department_id = departments.department_id

2.不等值连接
不等值连接:主要用除了等号之外的操作符,比如:<>、>、<、>=、<=、LIKE、IN、BETWEEN…AND
SELECT e.last_name, e.salary, j.grade_level FROM employees e, job_grades j WHERE e.salary BETWEEN j.lowest_sal AND j.highest_sal;

3.自连接
自连接 同一张表
SELECT worker.last_name || ' works for ' || manager.last_name FROM employees worker, employees manager WHERE worker.manager_id = manager.employee_id ;

外连接



1.左外连接
SELECT e.last_name, e.department_id, d.department_name FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id) ;
2.右外连接
SELECT e.last_name, e.department_id, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id) ;
3.满外连接
SELECT e.last_name, e.department_id, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id) ;

SQL 函数


单行函数



1.字符函数



2.数字函数

3.日期函数

4.转换函数



5.通用函数

多行函数





创建和管理表


CREATE TABLE 语句


建表方式一:

建表方式二:

ALTER TABLE 语句


TRUNCATE TABLE 语句


数据处理

INSERT 语句语法

单条新增:

批量新增:
insert all into <tableName>[(<table_column1>,<table_column2>...)] values([<column_value1>,<column_value2>...]) [ into <tableName>[(<table_column1>,<table_column2>...)] values([<column_value1>,<column_value2>...])]... select <table_value1>[,<table_value2>...] from dual;

UPDATE 语句语法

DELETE 语句语法

数据库事务



控制事务


约束 CONSTRAINT

什么是约束

表级约束和列级约束

(建表时)定义约束

列级约束
CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint], ... [table_constraint][,...]);
column [CONSTRAINT constraint_name] constraint_type,

表级约束
CREATE TABLE employees( employee_id NUMBER(6), first_name VARCHAR2(20), ... job_id VARCHAR2(10) NOT NULL, CONSTRAINT emp_emp_id_pk PRIMARY KEY (EMPLOYEE_ID));
column,... [CONSTRAINT constraint_name] constraint_type (column, ...),

NOT NULL 约束

UNIQUE 约束

PRIMARY KEY 约束

FOREIGN KEY 约束


CHECK 约束

(建表后)添加约束

(建表后)删除约束

(建表后)无效化约束

(建表后)激活约束

(建表后)查询约束

视图

创建试图

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY [CONSTRAINT constraint]];

修改试图

CREATE OR REPLACE VIEW empvu80 (id_number, name, sal, department_id) AS SELECT employee_id, first_name || ' ' || last_name, salary, department_id FROM employees WHERE department_id = 80; View created.

删除试图

DROP VIEW empvu80; View dropped.

屏蔽 DML 操作

CREATE OR REPLACE VIEW empvu10 (employee_number, employee_name, job_title) AS SELECT employee_id, last_name, job_id FROM employees WHERE department_id = 10 WITH READ ONLY; View created.

TOP_N

查询最大的几个值的 Top-N 分析:

SELECT [column_list], ROWNUM FROM (SELECT [column_list] FROM table ORDER BY Top-N_column) WHERE ROWNUM <= N;
注意:
对 ROWNUM 只能使用 < 或 <=, 而用 =, >, >= 都将不能返回任何数据。
查询40-50排名
select * from( select rownum rn,employee_id,salary from( select employee_id,salary,last_name from employees order by salary desc ) )where rn <=50 and rn >40

其它数据库对象

序列(Sequence)

1.创建序列




2.查询序列

查询数据字典视图 USER_SEQUENCES 获取序列定义信息

如果指定NOCACHE 选项,则列LAST_NUMBER 显示序列中下一个有效的值

3.修改序列

ALTER SEQUENCE dept_deptid_seq INCREMENT BY 20 MAXVALUE 999999 NOCACHE NOCYCLE; Sequence altered.

3.删除序列

DROP SEQUENCE dept_deptid_seq; Sequence dropped.

索引(Index)

索引: 一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间中 索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度 索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管理系统决定何时使用索引。用户不用在查询语句中指定使用哪个索引 在删除一个表时,所有基于该表的索引会自动被删除 通过指针加速 Oracle 服务器的查询速度 通过快速定位数据的方法,减少磁盘 I/O

1.创建索引


2.什么场景用索引

3.什么场景不用索引

4.查询索引

5.删除索引

同义词(synonym)

创建/删除同义词

原文地址:https://www.cnblogs.com/denghy-301/p/14106870.html