feat: update oracle.md. #63 de8a0bc0e9

This commit is contained in:
jaywcjlove
2022-11-22 14:36:24 +00:00
parent f7aaf4c0d2
commit a969b0492f
4 changed files with 225 additions and 4 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -30,7 +30,7 @@
<a aria-hidden="true" tabindex="-1" href="#oracle-备忘清单"><span class="icon icon-link"></span></a>Oracle 备忘清单</h1><div class="wrap-body"> <a aria-hidden="true" tabindex="-1" href="#oracle-备忘清单"><span class="icon icon-link"></span></a>Oracle 备忘清单</h1><div class="wrap-body">
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true"> </div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path> <path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#select-语句">SELECT 语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#select-into-语句">SELECT INTO 语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#insert-语句">INSERT 语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#delete-语句">DELETE 语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#update-语句">UPDATE 语句</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#sequences">SEQUENCES</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#create-sequence">CREATE SEQUENCE</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#alter-sequence">ALTER SEQUENCE</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#从字符串生成查询">从字符串生成查询</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符串操作">字符串操作</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#instr">Instr</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#replace">Replace</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#substr">Substr</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#trim">Trim</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#ddl-sql">DDL SQL</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建表">创建表</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#添加列">添加列</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#修改列">修改列</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#删除列">删除列</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#另见">另见</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body"> </svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#select-语句">SELECT 语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#select-into-语句">SELECT INTO 语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#insert-语句">INSERT 语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#delete-语句">DELETE 语句</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#update-语句">UPDATE 语句</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#sequences">SEQUENCES</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#create-sequence">CREATE SEQUENCE</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#alter-sequence">ALTER SEQUENCE</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#从字符串生成查询">从字符串生成查询</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符串操作">字符串操作</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#instr">Instr</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#replace">Replace</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#substr">Substr</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#trim">Trim</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#ddl-sql">DDL SQL</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建表">创建表</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#添加列">添加列</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#修改列">修改列</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#删除列">删除列</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#约束类型和代码">约束类型和代码</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#显示约束">显示约束</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#选择参照约束">选择参照约束</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#对表设置约束">对表设置约束</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#表上的唯一索引">表上的唯一索引</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#添加唯一约束">添加唯一约束</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#添加外部约束">添加外部约束</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#删除约束">删除约束</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#indexes">INDEXES</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建索引">创建索引</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建基于函数的索引">创建基于函数的索引</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#重命名索引">重命名索引</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#收集索引的统计信息">收集索引的统计信息</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#删除索引">删除索引</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#dba-相关">DBA 相关</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#创建用户">创建用户</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#授予特权">授予特权</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#更改密码">更改密码</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#另见">另见</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
<!--rehype:body-class=cols-2--> <!--rehype:body-class=cols-2-->
</div></div><div class="h2wrap-body cols-2"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="select-语句"><a aria-hidden="true" tabindex="-1" href="#select-语句"><span class="icon icon-link"></span></a>SELECT 语句</h3><div class="wrap-body"> </div></div><div class="h2wrap-body cols-2"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="select-语句"><a aria-hidden="true" tabindex="-1" href="#select-语句"><span class="icon icon-link"></span></a>SELECT 语句</h3><div class="wrap-body">
<pre class="wrap-text"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">SELECT</span> <span class="token operator">*</span> <span class="token keyword">FROM</span> beverages <span class="token keyword">WHERE</span> field1 <span class="token operator">=</span> <span class="token string">'Kona'</span> <span class="token operator">AND</span> field2 <span class="token operator">=</span> <span class="token string">'coffee'</span> <span class="token operator">AND</span> field3 <span class="token operator">=</span> <span class="token number">122</span><span class="token punctuation">;</span> <pre class="wrap-text"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">SELECT</span> <span class="token operator">*</span> <span class="token keyword">FROM</span> beverages <span class="token keyword">WHERE</span> field1 <span class="token operator">=</span> <span class="token string">'Kona'</span> <span class="token operator">AND</span> field2 <span class="token operator">=</span> <span class="token string">'coffee'</span> <span class="token operator">AND</span> field3 <span class="token operator">=</span> <span class="token number">122</span><span class="token punctuation">;</span>
@ -231,6 +231,227 @@
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> employee <pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> employee
</span><span class="code-line"> <span class="token keyword">DROP</span> <span class="token keyword">COLUMN</span> vacationPay<span class="token punctuation">;</span> </span><span class="code-line"> <span class="token keyword">DROP</span> <span class="token keyword">COLUMN</span> vacationPay<span class="token punctuation">;</span>
</span></code></pre> </span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="约束类型和代码"><a aria-hidden="true" tabindex="-1" href="#约束类型和代码"><span class="icon icon-link"></span></a>约束类型和代码</h3><div class="wrap-body">
<table><thead><tr><th align="left">类型代码</th><th>类型描述</th><th>作用于级别</th></tr></thead><tbody><tr><td align="left"><code>C</code></td><td>检查表</td><td>Column</td></tr><tr><td align="left"><code>O</code></td><td>在视图上只读</td><td>Object</td></tr><tr><td align="left"><code>P</code></td><td>首要的关键</td><td>Object</td></tr><tr><td align="left"><code>R</code></td><td>参考 AKA 外键</td><td>Column</td></tr><tr><td align="left"><code>U</code></td><td>唯一键</td><td>Column</td></tr><tr><td align="left"><code>V</code></td><td>检查视图上的选项</td><td>Object</td></tr></tbody></table>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="显示约束"><a aria-hidden="true" tabindex="-1" href="#显示约束"><span class="icon icon-link"></span></a>显示约束</h3><div class="wrap-body">
<p>以下语句显示了系统中的所有约束:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">SELECT</span>
</span><span class="code-line"> table_name<span class="token punctuation">,</span>
</span><span class="code-line"> constraint_name<span class="token punctuation">,</span>
</span><span class="code-line"> constraint_type
</span><span class="code-line"><span class="token keyword">FROM</span> user_constraints<span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="选择参照约束"><a aria-hidden="true" tabindex="-1" href="#选择参照约束"><span class="icon icon-link"></span></a>选择参照约束</h3><div class="wrap-body">
<p>以下语句显示了源和目标表/列对的所有引用约束(外键):</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">SELECT</span>
</span><span class="code-line"> c_list<span class="token punctuation">.</span>CONSTRAINT_NAME <span class="token keyword">as</span> NAME<span class="token punctuation">,</span>
</span><span class="code-line"> c_src<span class="token punctuation">.</span>TABLE_NAME <span class="token keyword">as</span> SRC_TABLE<span class="token punctuation">,</span>
</span><span class="code-line"> c_src<span class="token punctuation">.</span>COLUMN_NAME <span class="token keyword">as</span> SRC_COLUMN<span class="token punctuation">,</span>
</span><span class="code-line"> c_dest<span class="token punctuation">.</span>TABLE_NAME <span class="token keyword">as</span> DEST_TABLE<span class="token punctuation">,</span>
</span><span class="code-line"> c_dest<span class="token punctuation">.</span>COLUMN_NAME <span class="token keyword">as</span> DEST_COLUMN
</span><span class="code-line"><span class="token keyword">FROM</span> ALL_CONSTRAINTS c_list<span class="token punctuation">,</span>
</span><span class="code-line"> ALL_CONS_COLUMNS c_src<span class="token punctuation">,</span>
</span><span class="code-line"> ALL_CONS_COLUMNS c_dest
</span><span class="code-line"><span class="token keyword">WHERE</span> c_list<span class="token punctuation">.</span>CONSTRAINT_NAME <span class="token operator">=</span> c_src<span class="token punctuation">.</span>CONSTRAINT_NAME
</span><span class="code-line"> <span class="token operator">AND</span> c_list<span class="token punctuation">.</span>R_CONSTRAINT_NAME <span class="token operator">=</span> c_dest<span class="token punctuation">.</span>CONSTRAINT_NAME
</span><span class="code-line"> <span class="token operator">AND</span> c_list<span class="token punctuation">.</span>CONSTRAINT_TYPE <span class="token operator">=</span> <span class="token string">'R'</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="对表设置约束"><a aria-hidden="true" tabindex="-1" href="#对表设置约束"><span class="icon icon-link"></span></a>对表设置约束</h3><div class="wrap-body">
<p>使用 <code>CREATE TABLE</code> 语句创建检查约束的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> table_name
</span><span class="code-line"><span class="token punctuation">(</span>
</span><span class="code-line"> column1 datatype <span class="token boolean">null</span><span class="token operator">/</span><span class="token operator">not</span> <span class="token boolean">null</span><span class="token punctuation">,</span>
</span><span class="code-line"> column2 datatype <span class="token boolean">null</span><span class="token operator">/</span><span class="token operator">not</span> <span class="token boolean">null</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
</span><span class="code-line"> <span class="token keyword">CONSTRAINT</span> constraint_name <span class="token keyword">CHECK</span> <span class="token punctuation">(</span>column_name condition<span class="token punctuation">)</span> <span class="token punctuation">[</span><span class="token keyword">DISABLE</span><span class="token punctuation">]</span>
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> suppliers
</span><span class="code-line"><span class="token punctuation">(</span>
</span><span class="code-line"> supplier_id <span class="token keyword">numeric</span><span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
</span><span class="code-line"> supplier_name varchar2<span class="token punctuation">(</span><span class="token number">50</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token keyword">CONSTRAINT</span> check_supplier_id
</span><span class="code-line"> <span class="token keyword">CHECK</span> <span class="token punctuation">(</span>supplier_id <span class="token operator">BETWEEN</span> <span class="token number">100</span> <span class="token operator">and</span> <span class="token number">9999</span><span class="token punctuation">)</span>
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="表上的唯一索引"><a aria-hidden="true" tabindex="-1" href="#表上的唯一索引"><span class="icon icon-link"></span></a>表上的唯一索引</h3><div class="wrap-body">
<p>使用 <code>CREATE TABLE</code> 语句创建唯一约束的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> table_name
</span><span class="code-line"><span class="token punctuation">(</span>
</span><span class="code-line"> column1 datatype <span class="token boolean">null</span><span class="token operator">/</span><span class="token operator">not</span> <span class="token boolean">null</span><span class="token punctuation">,</span>
</span><span class="code-line"> column2 datatype <span class="token boolean">null</span><span class="token operator">/</span><span class="token operator">not</span> <span class="token boolean">null</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
</span><span class="code-line"> <span class="token keyword">CONSTRAINT</span> constraint_name <span class="token keyword">UNIQUE</span> <span class="token punctuation">(</span>column1<span class="token punctuation">,</span> column2<span class="token punctuation">,</span> column_n<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> customer
</span><span class="code-line"><span class="token punctuation">(</span>
</span><span class="code-line"> id <span class="token keyword">integer</span> <span class="token operator">not</span> <span class="token boolean">null</span><span class="token punctuation">,</span>
</span><span class="code-line"> name varchar2<span class="token punctuation">(</span><span class="token number">20</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token keyword">CONSTRAINT</span> customer_id_constraint <span class="token keyword">UNIQUE</span> <span class="token punctuation">(</span>id<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="添加唯一约束"><a aria-hidden="true" tabindex="-1" href="#添加唯一约束"><span class="icon icon-link"></span></a>添加唯一约束</h3><div class="wrap-body">
<p>唯一约束的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> <span class="token punctuation">[</span><span class="token keyword">table</span> name<span class="token punctuation">]</span>
</span><span class="code-line"> <span class="token keyword">ADD</span> <span class="token keyword">CONSTRAINT</span> <span class="token punctuation">[</span><span class="token keyword">constraint</span> name<span class="token punctuation">]</span> <span class="token keyword">UNIQUE</span><span class="token punctuation">(</span> <span class="token punctuation">[</span><span class="token keyword">column</span> name<span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token keyword">USING</span> <span class="token keyword">INDEX</span> <span class="token punctuation">[</span><span class="token keyword">index</span> name<span class="token punctuation">]</span><span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> employee
</span><span class="code-line"> <span class="token keyword">ADD</span> <span class="token keyword">CONSTRAINT</span> uniqueEmployeeId <span class="token keyword">UNIQUE</span><span class="token punctuation">(</span>employeeId<span class="token punctuation">)</span> <span class="token keyword">USING</span> <span class="token keyword">INDEX</span> ourcompanyIndx_tbs<span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="添加外部约束"><a aria-hidden="true" tabindex="-1" href="#添加外部约束"><span class="icon icon-link"></span></a>添加外部约束</h3><div class="wrap-body">
<p>foregin 约束的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> <span class="token punctuation">[</span><span class="token keyword">table</span> name<span class="token punctuation">]</span>
</span><span class="code-line"> <span class="token keyword">ADD</span> <span class="token keyword">CONSTRAINT</span> <span class="token punctuation">[</span><span class="token keyword">constraint</span> name<span class="token punctuation">]</span> <span class="token keyword">FOREIGN</span> <span class="token keyword">KEY</span> <span class="token punctuation">(</span><span class="token keyword">column</span><span class="token punctuation">,</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">)</span> <span class="token keyword">REFERENCES</span> <span class="token keyword">table</span> <span class="token punctuation">[</span><span class="token punctuation">(</span><span class="token keyword">column</span><span class="token punctuation">,</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">)</span><span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token keyword">ON</span> <span class="token keyword">DELETE</span> {<span class="token keyword">CASCADE</span> <span class="token operator">|</span> <span class="token keyword">SET</span> <span class="token boolean">NULL</span>}<span class="token punctuation">]</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> employee
</span><span class="code-line"> <span class="token keyword">ADD</span> <span class="token keyword">CONSTRAINT</span> fk_departament <span class="token keyword">FOREIGN</span> <span class="token keyword">KEY</span> <span class="token punctuation">(</span>departmentId<span class="token punctuation">)</span> <span class="token keyword">REFERENCES</span> departments<span class="token punctuation">(</span>Id<span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="删除约束"><a aria-hidden="true" tabindex="-1" href="#删除约束"><span class="icon icon-link"></span></a>删除约束</h3><div class="wrap-body">
<p>删除(删除)约束的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> <span class="token punctuation">[</span><span class="token keyword">table</span> name<span class="token punctuation">]</span>
</span><span class="code-line"> <span class="token keyword">DROP</span> <span class="token keyword">CONSTRAINT</span> <span class="token punctuation">[</span><span class="token keyword">constraint</span> name<span class="token punctuation">]</span><span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> employee
</span><span class="code-line"> <span class="token keyword">DROP</span> <span class="token keyword">CONSTRAINT</span> uniqueEmployeeId<span class="token punctuation">;</span>
</span></code></pre>
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="indexes"><a aria-hidden="true" tabindex="-1" href="#indexes"><span class="icon icon-link"></span></a>INDEXES</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="创建索引"><a aria-hidden="true" tabindex="-1" href="#创建索引"><span class="icon icon-link"></span></a>创建索引</h3><div class="wrap-body">
<p>创建索引的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token punctuation">[</span><span class="token keyword">UNIQUE</span><span class="token punctuation">]</span> <span class="token keyword">INDEX</span> index_name
</span><span class="code-line"> <span class="token keyword">ON</span> table_name <span class="token punctuation">(</span>column1<span class="token punctuation">,</span> column2<span class="token punctuation">,</span> <span class="token punctuation">.</span> column_n<span class="token punctuation">)</span>
</span><span class="code-line"> <span class="token punctuation">[</span> <span class="token keyword">COMPUTE</span> <span class="token keyword">STATISTICS</span> <span class="token punctuation">]</span><span class="token punctuation">;</span>
</span></code></pre>
<p><code>UNIQUE</code> 表示索引列中值的组合必须是唯一的</p>
<p><code>COMPUTE STATISTICS</code> 告诉 Oracle 在创建索引期间收集统计信息。 然后优化器使用这些统计信息来选择执行语句时的最佳执行计划。例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">INDEX</span> customer_idx
</span><span class="code-line"> <span class="token keyword">ON</span> customer <span class="token punctuation">(</span>customer_name<span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
<p>在此示例中,已在名为 <code>customer_idx</code> 的客户表上创建了一个索引。它仅包含 <code>customer_name</code> 字段</p>
<p>下面创建一个包含多个字段的索引:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">INDEX</span> customer_idx
</span><span class="code-line"> <span class="token keyword">ON</span> supplier <span class="token punctuation">(</span>customer_name<span class="token punctuation">,</span> country<span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
<p>以下内容在创建索引时收集统计信息:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">INDEX</span> customer_idx
</span><span class="code-line"> <span class="token keyword">ON</span> supplier <span class="token punctuation">(</span>customer_name<span class="token punctuation">,</span> country<span class="token punctuation">)</span>
</span><span class="code-line"> <span class="token keyword">COMPUTE</span> <span class="token keyword">STATISTICS</span><span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="创建基于函数的索引"><a aria-hidden="true" tabindex="-1" href="#创建基于函数的索引"><span class="icon icon-link"></span></a>创建基于函数的索引</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<p><code>Oracle</code> 中,您不仅限于在列上创建索引。您可以创建基于函数的索引</p>
<p>创建基于函数的索引的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token punctuation">[</span><span class="token keyword">UNIQUE</span><span class="token punctuation">]</span> <span class="token keyword">INDEX</span> index_name
</span><span class="code-line"> <span class="token keyword">ON</span> table_name <span class="token punctuation">(</span>function1<span class="token punctuation">,</span> function2<span class="token punctuation">,</span> <span class="token punctuation">.</span> function_n<span class="token punctuation">)</span>
</span><span class="code-line"> <span class="token punctuation">[</span> <span class="token keyword">COMPUTE</span> <span class="token keyword">STATISTICS</span> <span class="token punctuation">]</span><span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">INDEX</span> customer_idx
</span><span class="code-line"> <span class="token keyword">ON</span> customer <span class="token punctuation">(</span>UPPER<span class="token punctuation">(</span>customer_name<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span><span class="code-line"><span class="token comment">-- 已创建基于 customer_name 字段的大写评估的索引</span>
</span></code></pre>
<p>为确保 <code>Oracle</code> 优化器在执行 SQL 语句时使用此索引,请确保 <code>UPPER(customer_name)</code> 的计算结果不为 <code>NULL</code> 值。 为确保这一点,请将 <code>UPPER(customer_name) IS NOT NULL</code> 添加到 <code>WHERE</code> 子句中,如下所示:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">SELECT</span> customer_id<span class="token punctuation">,</span> customer_name<span class="token punctuation">,</span> UPPER<span class="token punctuation">(</span>customer_name<span class="token punctuation">)</span>
</span><span class="code-line"><span class="token keyword">FROM</span> customer
</span><span class="code-line"><span class="token keyword">WHERE</span> UPPER<span class="token punctuation">(</span>customer_name<span class="token punctuation">)</span> <span class="token operator">IS</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span>
</span><span class="code-line"><span class="token keyword">ORDER</span> <span class="token keyword">BY</span> UPPER<span class="token punctuation">(</span>customer_name<span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="重命名索引"><a aria-hidden="true" tabindex="-1" href="#重命名索引"><span class="icon icon-link"></span></a>重命名索引</h3><div class="wrap-body">
<p>重命名索引的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">INDEX</span> index_name
</span><span class="code-line"> <span class="token keyword">RENAME</span> <span class="token keyword">TO</span> new_index_name<span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">INDEX</span> customer_id
</span><span class="code-line"> <span class="token keyword">RENAME</span> <span class="token keyword">TO</span> new_customer_id<span class="token punctuation">;</span>
</span></code></pre>
<p>在此示例中,<code>customer_id</code> 重命名为 <code>new_customer_id</code></p>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="收集索引的统计信息"><a aria-hidden="true" tabindex="-1" href="#收集索引的统计信息"><span class="icon icon-link"></span></a>收集索引的统计信息</h3><div class="wrap-body">
<p>如果您需要在索引首次创建后收集统计信息或者您想要更新统计信息,您总是可以使用 ALTER INDEX 命令来收集统计信息。 您收集统计信息以便 <code>oracle</code> 可以有效地使用索引。 这将重新计算表大小、行数、块数、段数并更新字典表,以便 <code>oracle</code> 在选择执行计划时可以有效地使用数据。</p>
<p>收集索引统计信息的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">INDEX</span> index_name
</span><span class="code-line"> REBUILD <span class="token keyword">COMPUTE</span> <span class="token keyword">STATISTICS</span><span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">INDEX</span> customer_idx
</span><span class="code-line"> REBUILD <span class="token keyword">COMPUTE</span> <span class="token keyword">STATISTICS</span><span class="token punctuation">;</span>
</span></code></pre>
<p>在此示例中,为名为 <code>customer_idx</code> 的索引收集统计信息</p>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="删除索引"><a aria-hidden="true" tabindex="-1" href="#删除索引"><span class="icon icon-link"></span></a>删除索引</h3><div class="wrap-body">
<p>删除索引的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">DROP</span> <span class="token keyword">INDEX</span> index_name<span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">DROP</span> <span class="token keyword">INDEX</span> customer_idx<span class="token punctuation">;</span>
</span></code></pre>
<p>在此示例中,删除了 <code>customer_idx</code></p>
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="dba-相关"><a aria-hidden="true" tabindex="-1" href="#dba-相关"><span class="icon icon-link"></span></a>DBA 相关</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="创建用户"><a aria-hidden="true" tabindex="-1" href="#创建用户"><span class="icon icon-link"></span></a>创建用户</h3><div class="wrap-body">
<p>创建用户的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">USER</span> username IDENTIFIED <span class="token keyword">BY</span> password<span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">CREATE</span> <span class="token keyword">USER</span> brian IDENTIFIED <span class="token keyword">BY</span> brianpass<span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="授予特权"><a aria-hidden="true" tabindex="-1" href="#授予特权"><span class="icon icon-link"></span></a>授予特权</h3><div class="wrap-body">
<p>授予权限的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">GRANT</span> privilege <span class="token keyword">TO</span> <span class="token keyword">user</span><span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">GRANT</span> dba <span class="token keyword">TO</span> brian<span class="token punctuation">;</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="更改密码"><a aria-hidden="true" tabindex="-1" href="#更改密码"><span class="icon icon-link"></span></a>更改密码</h3><div class="wrap-body">
<p>更改用户密码的语法是:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">USER</span> username IDENTIFIED <span class="token keyword">BY</span> password<span class="token punctuation">;</span>
</span></code></pre>
<p>例如:</p>
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line"><span class="token keyword">ALTER</span> <span class="token keyword">USER</span> brian IDENTIFIED <span class="token keyword">BY</span> brianpassword<span class="token punctuation">;</span>
</span></code></pre>
</div></div></div></div></div><div class="wrap h2body-not-exist"><div class="wrap-header h2wrap"><h2 id="另见"><a aria-hidden="true" tabindex="-1" href="#另见"><span class="icon icon-link"></span></a>另见</h2><div class="wrap-body"> </div></div></div></div></div><div class="wrap h2body-not-exist"><div class="wrap-header h2wrap"><h2 id="另见"><a aria-hidden="true" tabindex="-1" href="#另见"><span class="icon icon-link"></span></a>另见</h2><div class="wrap-body">
<ul> <ul>
<li><a href="https://en.wikibooks.org/wiki/Oracle_Database/SQL_Cheatsheet">Oracle Database/SQL Cheatsheet</a> <em>(wikibooks.org)</em></li> <li><a href="https://en.wikibooks.org/wiki/Oracle_Database/SQL_Cheatsheet">Oracle Database/SQL Cheatsheet</a> <em>(wikibooks.org)</em></li>

View File

@ -709,7 +709,7 @@
<!--rehype:class=home-card&style=margin:2.2rem 0;display: flex;justify-content: center;gap: 1rem;flex-wrap: wrap;--> <!--rehype:class=home-card&style=margin:2.2rem 0;display: flex;justify-content: center;gap: 1rem;flex-wrap: wrap;-->
<p>如果你有资源,可以很方便部署 web 版,这非常简单,只需要克隆 gh-pages 分支代码到你的静态服务就可以了,还可以使用 <a href="https://hub.docker.com/r/wcjiang/reference">docker</a> 快捷部署 web 版。</p> <p>如果你有资源,可以很方便部署 web 版,这非常简单,只需要克隆 gh-pages 分支代码到你的静态服务就可以了,还可以使用 <a href="https://hub.docker.com/r/wcjiang/reference">docker</a> 快捷部署 web 版。</p>
</div></div><div class="h2wrap-body"></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang. Updated on 2022/11/22 19:54:02</footer></footer><script src="data.js" defer></script><script src="js/fuse.min.js" defer></script><script src="js/main.js" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18"> </div></div><div class="h2wrap-body"></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang. Updated on 2022/11/22 22:35:47</footer></footer><script src="data.js" defer></script><script src="js/fuse.min.js" defer></script><script src="js/main.js" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path> <path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><input id="mysearch-input" type="search" placeholder="搜索备忘清单" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">取消</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body> </svg><input id="mysearch-input" type="search" placeholder="搜索备忘清单" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">取消</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>
</html> </html>