ホームページ > データベース > Oracle > Oracle 12c での SQLPlus 操作の使用法の概要

Oracle 12c での SQLPlus 操作の使用法の概要

WBOY
リリース: 2022-07-20 20:42:00
転載
2761 人が閲覧しました

この記事では、Oracle に関する関連知識を提供します。主に、12c での SQLPlus の操作と使用に関する関連問題や、Oracle の SYS ユーザーと SYSTEM ユーザーの違いなどを整理します。 , 以下のように見てみましょう。皆さんの参考になれば幸いです。

Oracle 12c での SQLPlus 操作の使用法の概要

# 推奨チュートリアル: 「

Oracle ビデオ チュートリアル

#1. sqlplus のバージョン番号を確認します

(1) dos コマンドで cmd を確認し、次のように入力します: sqlplus -v

#(2) sqlplus を有効にした後、次のように入力します: select * from V$VERSION;

2. sqlplusの入力方法

(1) Windows 10環境の場合、スタートメニューからSQLPLUS をクリックして開きます。

(2) Win キー R キーを押して実行ウィンドウを開き、sqlplus ## と入力します。

# (3) Win キーと R キーで実行ウィンドウを開き、cmd と入力します。 , 次に、sqlplus

3. Oracle

sys における SYS ユーザーと SYSTEM ユーザーの違いを有効にします。 system, sysman これら 3 人のユーザーのパスワードは、インストール時に設定したパスワードです。

sys としての sysdba sysdba## と一緒です#ログイン

Oracle ログイン ID は 3 つあります:

normal、normal ID ,sysdba システム管理者の ID,sysoper システム オペレーター ID、各 ID は異なる権限に対応します。

SYS ユーザーは、最高の

# を持つスーパー ユーザー です。 ## 権限 、SYSDBA ロール、データベース管理者権限があり、データベースを作成できます - データベース作成権限付き# #######。 SYSTEM ユーザーは管理オペレータ

であり、SYSOPE ロールを持ち、データベース オペレータ権限を持っています。データベースを作成する -

にはデータベース作成権限がありません。4. Oracle データベースのグローバル データベース名と SID を表示します。 グローバル データベース名を表示します:

v$database から名前を選択;

SID を表示:

v$instance からインスタンス名を選択;

5. oracle

SQL でのコメントの使用

単一行のコメントは -- で始まります。例:

## -- この文は現在のユーザー名をチェックします。デュアルからのユーザー;

複数行のコメントは、/* で始まり、その後にスペースが続き、*/ に続いてスペースで終わります。例:

/* 複数行のコメント、

次のステートメントは、現在のユーザー名を表示します*/

デュアルからユーザーを選択;

##6.

データベースに接続

構文

##CONN[ECT] [{登录| / | エージェント }[AS {SYSOPER |SYSDBA |SYSASM}] [Version=Value]]

#どこ

Login の構文は次のとおりです:

username[/password] [@connect_identifier]## ここで、

agent

の構文は次のとおりです: ##エージェント ユーザー

[

ユーザー名] [/パスワード] [@connect_identifier]注: agent

username を囲む括弧は必須の構文であり、オプションの用語を示すものではありません。たとえば、パスワードを使用してプロキシ経由でユーザーに接続します。 scotthrwelcome1hr[scott]/welcome1を接続##例 1

#この簡単な例では、ユーザーとしてローカル データベースに接続します。 SQL* Plus はユーザー パスワードの入力を求めます。 SYSTEMSYSTEM

connect system
ログイン後にコピー
例 2

##この例では、特権ユーザーとしてローカル データベースに接続します。 SQL* Plus はユーザー パスワードの入力を求めます。 SYSSYSDBASYS

connect sys as sysdba
ログイン後にコピー

ユーザーとして接続する場合は接続する必要があります。 SYSAS SYSDBA

例 3

##この例では、オペレーティング システムで認証された権限を使用してローカルに接続します。 SYSDBA

connect / as sysdba
ログイン後にコピー

例 4

# #この例では、単純な接続構文を使用して、ホスト マシン上で実行されているリモート データベースにユーザーとして接続します。 Oracle Net リスナー (listener) は、デフォルトのポート (1521) でリスニングしています。データベース サービスは です。 SQL* Plus はユーザー パスワードの入力を求めます。 salesadmindbhost.example.comsales.example.comsalesadmin

connect salesadmin@"dbhost.example.com/sales.example.com"
ログイン後にコピー

##例 5

#この例は、サービス ハンドラーの種類が指定されていることを除き、例 4 と同じです。

connect salesadmin@"dbhost.example.com/sales.example.com:dedicated"
ログイン後にコピー
例 6

この例は同じです例 4 と同じですが、リスナーがデフォルト以外のポート番号 1522 でリッスンしている点が異なります。

connect salesadmin@"dbhost.example.com:1522/sales.example.com"
ログイン後にコピー
例 7

この例は同じです例 4 と同じですが、ホスト IP アドレスがホスト名に置き換えられる点が異なります。

connect salesadmin@"192.0.2.5/sales.example.com"
ログイン後にコピー
例 8

この例では IPv6 アドレスを使用します接続を確立します。周囲の角括弧に注意してください。

connect salesadmin@"[2001:0DB8:0:0::200C:417A]/sales.example.com"
ログイン後にコピー
例 9

この例では、接続することを指定します。インスタンスに追加し、データベース サービス名を省略します。デフォルトのデータベース サービスを指定する必要があります。指定しないとエラーが生成されます。なお、インスタンスのみを指定する場合、サービスハンドラの種類は指定できません。

connect salesadmin@"dbhost.example.com//orcl"
ログイン後にコピー
例 10

此示例以用户身份远程连接到由网络服务名称 指定的数据库服务。SQL*加会提示输入用户密码。salesadminsales1salesadmin

connect salesadmin@sales1
ログイン後にコピー

例子 11

本示例使用外部身份验证远程连接到由网络服务名称 指定的数据库服务。sales1

connect /@sales1
ログイン後にコピー

例子 12

此示例使用权限和外部身份验证远程连接到由网络服务名称 指定的数据库服务。SYSDBAsales1

connect /@sales1 as sysdb
ログイン後にコピー

例子 13

此示例以用户身份远程连接到由网络服务名称 指定的数据库服务。数据库会话在版本中启动。SQL*加会提示输入用户密码。salesadminsales1rev21salesadmin

connect salesadmin@sales1 edition=rev21
ログイン後にコピー

例子 14

要使用用户名 HR 跨 Oracle Net 连接到 Oracle Net 别名称为 FLEETDB 的数据库,请输入

CONNECT HR@FLEETDB
ログイン後にコピー

例子 15

要以名为 HR 的特权用户身份连接到当前节点上的实例,请输入

CONNECT HR AS SYSDBA
ログイン後にコピー

例子 16

要以特权默认用户身份连接到当前节点上的实例,请输入

CONNECT / AS SYSDBA
ログイン後にコピー

在最后两个示例中,默认架构变为 SYS。

7.  断开用户与Oracle数据库服务器的连接

 exit 退出即可

8. 用户的操作使用 

(1)创建表空间

create tablespace 表空间的名 datafile '数据文件' size xxxm;

        数据文件:全名如d:\data.dbf,表空间的存储位置

        xxx:表空间的大小,m单位为兆(M)

【为用户指定表空间】

alter user 用户名 default tablespace 表空间名;

为用户指定临时表空间:

alter user 用户名 temporary tablespace 表空间名;

【删除空的表空间,但是不包含物理文件】

drop tablespace 表空间名;

删除空表空间,包含物理文件(数据文件):

drop tablespace 表空间名 including datafiles;

如果其他表空间中的表有外键等约束关联到了本表空间中的表的列,就要加上CASCADE CONSTRAINTS,如:drop tablespace 表空间名 including datafiles cascade constraint

注意:如果多个用户使用相同的表空间,删除用户时不要删除表空间

(2)创建用户

create user 用户名 identified by 密码;

【创建用户同时可以指定表空间】

#パスワードで識別されるユーザーの作成ユーザー名 ##デフォルトのテーブルスペース テーブルスペース名;

【ユーザーとカスケード関係の削除】

##drop user username cascade;

#カスケードを指定すると、ユーザー配下のすべてのオブジェクト (テーブル、ビュー、主キー、外部キー、インデックスなどを含む) が削除されますが、ストアド プロシージャ、関数、パッケージ)。指定しない場合はユーザーのみが削除されますが、通常は

#[ユーザー情報の照会]

# を指定することをお勧めします。 ##oracle 現在のユーザー名を表示します:

##ユーザーを表示するか、デュアルからユーザーを選択します;

##oracle すべてのユーザー名を表示:

##select * from all_users;

データベース内のすべてのユーザー関連情報を表示します (sys、system などの DBA 権限を持つアカウントがある場合):

select * from dba_users;

##SELECT クエリ ステートメント内のアスタリスク * はすべての列を表すことに注意してください

管理できるすべてのユーザーを表示します:

##select * from all_users;

現在のユーザー情報の表示:

#user_users から * を選択;

ユーザーに対応するテーブルスペースをクエリします:

select username,default_tablespace from dba_users;

#制限条件を使用して、ユーザーに対応するテーブル スペースをクエリします:

#select username,default_tablespace from dba_users where username='uppercase username';

( 3) ユーザーに割り当てられたスペースを変更します。

#アラート ユーザー username デフォルトのテーブルスペース tablespace name;

##(4) ユーザーの認可

ユーザー名に権限を付与します;

作成されたユーザーにはデフォルトでは権限がないため、権限を割り当てる必要があります。

同じデータベースにログインするユーザーが異なれば、表示されるテーブルの数や権限も異なる場合があります。 Oracle の権限は、システム権限とデータオブジェクト権限に分かれており、全部で 100 種類以上あります。ユーザーを個別に認可するのは非常に面倒です。同じ権限を必要とするユーザーもいます。そのため、これらのユーザーは同じカテゴリ (特定のロール) に分類されます。あらかじめ決められた権限を持ついくつかのロールを設定することで、操作を簡素化および明確に承認します。ロールの目的は、権限の管理を簡素化することです。これは権限の集合です。一般的なアプローチは次のとおりです: システムはロールにアクセス許可を割り当て、次にそのロールをユーザーに割り当てます。もちろん、特定のアクセス許可をユーザーに直接割り当てることもできます。 Oracle では、きめ細かい権限が提供されており、テーブルの特定の列に対して権限を個別に設定したり、特定のテーブルに対するユーザーのクエリに制限を自動的に追加したりできます。

[権限の分類]

システム権限: システムは、ユーザーの権限を規定しています。データベースを使用します。 (システム権限はユーザー向けです)。

#エンティティ権限: 他のユーザーのテーブルまたはビューに対する特定の権限ユーザーのアクセス権。 (テーブルまたはビューの場合)。

システム権限分類

DBA: すべての権限を持ち、最も高い権限を持ちます。システム権限では、DBA のみがデータベース構造を作成できます。

リソース: リソース権限を持つユーザーはエンティティのみを作成でき、データベース構造は作成できません。

CONNECT: 接続権限を持つユーザーは Oracle にログインすることしかできず、エンティティやデータベース構造を作成することはできません。

エンティティ権限分類]

##select、update、insert、alter、index、 delete、all (all にはすべてのアクセス許可が含まれます)、execute (ストアド プロシージャを実行するアクセス許可)。

[role]

ロールとは、与えられた権限を割り当てる一連の権限です。ユーザーに対して、このユーザーはこのロールのすべての権限を持ちます。

#事前定義されたロールは、データベースのインストール後にシステムによって自動的に作成される、一般的に使用されるロールです。以下に、これらのスケジュールされたロールについて簡単に説明します。

#すべてのロールを表示:

##select * from dba_roles; #ロールに含まれる権限を表示するには、次のステートメントを使用してクエリを実行できます:

##select * from role_sys_privs where role='ロール名';

現在所有しているすべてのロールとシステム権限を表示します。ログインユーザー:

select * from session_privs;

(5) 次に、ユーザーがログインし、ログイン後にテーブルを作成します。

conn username/password;

9. SQL 用のテーブルスペースの作成

ステートメントの練習

システム管理者アカウントでログインします。

(1) テーブルスペースの作成

SKspace ##形式: create tablespace inter-table name データファイル 'データファイル名' size テーブルスペース size テーブルスペース データファイル自動拡張

テーブルスペース SKspace データファイル 'C:\Oracle12C\MBspce1.dbf' サイズ 20M 自動拡張を作成します;

#(2) ユーザーを作成します

C##suke

パスワードは suke123、デフォルトのテーブルスペースを に設定しますSKspace、一時テーブル スペースは temp:形式: create user ユーザー名パスワードによって識別されます デフォルトのテーブルスペース tablespace table;

create user C

## uke123 によって識別されます デフォルトのテーブルスペース SKspacetemporary tablespace temp; エラー: パブリック ユーザー名またはロール名が無効です

理由現時点では CDB で作成されており、CDB でユーザーを作成するには、C# または C

# を追加する必要があります。ユーザー名の前の

( 3) 作成されたユーザーにはデフォルトでは権限がないため、権限を割り当てる必要があります。

#便宜上、管理者ロール (dba) 権限が C##suke

ユーザーに付与されます:

C に dba を付与

#suke;

--接続およびリソースの権限が調査ユーザーに付与されていることを示します

grant connect,resource to Study;

-- dba に調査権限を付与することを示します

Grant dba勉強する;

# (4) これで、作成したユーザーを使用できるようになります (以前に作成したユーザー ##C##suke# を使用します) ##パスワードは suke123) ログイン: ##connect C

##suke/suke123;

(5) ログイン後、テーブルを作成します:

CREATE TABLE job(

id NUMBER(6),code VARCHAR2(10) 、 名前 VARCHAR2(10));

(6) 作成した (既存の) テーブルにテーブル データを挿入し、単一のレコードを挿入します:

INSERT INTO job( id ,code,name) VALUES(1,'NO1','Test');

(7) はすでに作成済み (既存の) テーブルにテーブル データを挿入し、複数のレコードを挿入します:

#INSERT ALL

INTO job(id,code,name) VALUES(2,'NO2','開発')

INTO job(id,code, name ) VALUES(3,'NO3','運用と保守')

##デュアルから 1 を選択;

(8) クエリテーブルデータ:

##SELECT * FROM job where id=1;

SELECT code,name FROM job where code='NO2';

(9) ユーザーが作成したテーブルをクエリします。

##SELECT table_name FROM ALL_TABLES WHERE OWNER=' C##suke';

##選択されていない行

##最初はクエリ文の書き方が間違っているのかと思いましたが、左右を変更しても結果は同じでした。

#オンラインで確認したところ、データベース内にクエリ文に一致する結果がなかったため、「行が選択されていません」はエラーではないことがわかりました。 。

#select count(table_name) from all_tables where owner='C##suke';

##問題に遭遇したときに先入観を持たない方が良いようです。最初はステートメントの間違いだと思い、このステートメントのどこが間違っているのかを常に知りたいと思っていました。実際、これはエラーではなく、データベース内のデータに問題があるだけです。

(10) ユーザーが作成したテーブル構造をクエリします:

desc job ;

10. Oracle delete table space ステートメント

(1) 空のテーブルスペースを削除します。物理ファイルは含まれません テーブルスペース tablespace_name をドロップします;


(2)删除非空表空间,但是不包含物理文件
        drop tablespace tablespace_name including contents;

(3)删除空表空间,包含物理文件
        drop tablespace tablespace_name including datafiles;

(4)删除非空表空间,包含物理文件
        drop tablespace tablespace_name including contents and datafiles;

(5)如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上         CASCADE CONSTRAINTS
        drop tablespace tablespace_name including contents and datafiles CASCADE         CONSTRAINTS
;

11. 实验二ORACLE SQL*PLUS环境与查询

注1:如果你想使用如此图的EMP表可查询 实验二 Oracle SQL*PLUS环境与查询

注2:你找不到此图的EMP:Oracle设置和修改system和scott的口令,并且如何连接到system和scott模式下

使用scott内置账户登录:conn scott/口令 可以查找到此图的EMP表

注3:你发现你内置账户scott不存在 / 连接不上

此链接可以解决你的问题:Oracle数据库中scott用户不存在的解决方法

注4:你发现 注3 还是无法连接scott账户,你也不想麻烦操作了

此链接可以粗暴解决问题:重建用户scott以及内容表

-- 创建数据表
CREATE TABLE dept (
 deptno NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
 dname VARCHAR2(14) ,
 loc VARCHAR2(13) ) ;
CREATE TABLE emp (
 empno NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
 ename VARCHAR2(10),
 job VARCHAR2(9),
 mgr NUMBER(4),
 hiredate DATE,
 sal NUMBER(7,2),
 comm NUMBER(7,2),
 deptno NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT );
CREATE TABLE bonus (
 enamE VARCHAR2(10) ,
 job VARCHAR2(9)  ,
 sal NUMBER,
 comm NUMBER ) ;
CREATE TABLE salgrade (
 grade NUMBER,
 losal NUMBER,
 hisal NUMBER );

-- 插入测试数据 —— dept
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
-- 插入测试数据 —— emp
INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,to_date('19-04-1987','dd-mm-yyyy')-85,3000,NULL,20);
INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,to_date('23-05-1987','dd-mm-yyyy')-51,1100,NULL,20);
INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
-- 插入测试数据 —— salgrade
INSERT INTO salgrade VALUES (1,700,1200);
INSERT INTO salgrade VALUES (2,1201,1400);
INSERT INTO salgrade VALUES (3,1401,2000);
INSERT INTO salgrade VALUES (4,2001,3000);
INSERT INTO salgrade VALUES (5,3001,9999);
ログイン後にコピー

(1)SQL*Plus的启动

继续上述实例 9 的步骤操作

进入sqlplus环境:sqlplus

输入用户名:C##suke

输入口令:suke123

(2)断开数据库连接与重新连接数据库

断开数据库连接:DISCONECT

重新连接数据库:conn 用户名/口令:conn C##suke/suke123

(3)退出SQL*Plus:exit

(4)查看当前用户名

show user;

select user from dual;

(5)查询表job表结构:desc job;

#(6) ジョブ テーブルのデータをクエリする

select * ジョブから;

##ID # のジョブから ID、コード、名前を選択します

(7) バッファの内容をリストします:

LIST

#(8)変更 エラーを修正

コマンドをクエリするときに、コードが誤って cose に入力されました:

select id, cose, name from job;

補足: いいえ。

何行にエラーがあるのか​​、エラー行番号を入力・終了することでエラー行コードを個別に表示できます。 change を使用してエラー コードを修正します:

change /cose/code;

##再実行:

実行

##(10) クエリ条件の行を追加するための入力

クエリ情報:SQL> select id,code,name from job;

## 突然並べ替えたいが、すべてのコマンドを再入力したくない場合は、input を使用して id 列に基づいて並べ替え条件を追加します。

SQL> input

2 ID による順序;


##(11)append 前の行の最後にクエリ条件を追加します

After強迫性障害のため、ステップ(10)でメインシーケンスを読んでいる フラッシュバックを見たい場合はどうすればよいですか?

#最初にバッファの内容をリストします:

list

#前の行の最後にクエリ条件を追加します: append desc

注: append desc は 真ん中にスペース 2 つ 、スペースを 1 つだけ残すと、以下に示すエラー メッセージが

## になります。 #Rerun: run

## (12) del クエリ条件の最後の行を削除します

ステップ(11)に続いて、フラッシュバックを見た後、脳が調子が悪いので元のデータを見たい場合はどうすればよいですか?

最初にバッファの内容をリストします: list

クエリ条件の前の行を削除します:

del

再実行:

run

(13) ジョブ テーブル内のすべての情報を表示します: select * from仕事; ############

(14) 算術演算子を使用すると、id 2*3 は次のようになります。表示:select id 2*3,code,name from job;

##(15)文字の使用

# ユニット番号とユニット名を接続します: select code || name codename from job;

ユニット番号とユニット名を「-」で接続し、「WORKS IN DEPARTMENT」を出力します:

ID、コードを選択||'-'||名前のコードネーム、ジョブから「部門の仕事」;

##(16) DISTINCT 句は、重複を排除します。

データ自体が持っているため、重複する値がないため、さらに重複データを追加する必要があります:
INSERT ALL

#INTO ジョブ(id,code,name) VALUES(1,'NO2','フロントエンド')

INTO ジョブ(id,code,name) VALUES(2,'NO2','バックエンド')

INTO ジョブ(id,コード,名前) VALUES(3,'NO3','モノのインターネット')

SELECT 1 FROM Dual;

ジョブ テーブル内のすべてのユニットの ID 番号をリストする場合: select id from job;

#上記の表から、ジョブ間に重複があることがわかります。ユニット ID のシリアル番号の場合、DISTINCT 句を使用して重複を排除できます:

ジョブから個別の ID を選択;

(17) 並べ替え (デフォルトの正の順序)

並べ替え順単一フィールド ID:

select * from job order by id;

## 複数フィールドで並べ替え: などユニットのシリアル番号 ID として昇順、ユニット名で降順に並べ替えます:

方法 1:

ナレッジポイントを確認する

リスト および #追加 使用法 方法 2:

select * from job order by id,name desc;

(19) 条件付きクエリ
ユニット シリアル番号 ID が 2 であるすべてのユニット シリアル番号、ユニット番号、およびユニット名情報をクエリします。

##SQL> select * from job where id = 2;

## ジョブ テーブルから、1 より大きいユニット シリアル番号を持つユニットの名前をクエリします。

SQL> select id,name from job where id > 1;

複合条件クエリ:ユニットシリアル番号が 1 より大きく、ユニット番号が「NO3」、またはユニット名が「フロントエンド」であるすべてのユニット情報をクエリします': SQL> select * from job where id > 1 and code = 'NO3' or name = 'front-end';

#( 20) 演算子の適用

BETWEEN の適用: クエリユニットのシリアル番号 ID は 2 ~ 3 です すべてのユニット情報:

##SQL> select * from job where id between 2 and 3;

IN の適用: クエリユニット番号 コードには「NO2」、「NO3」が含まれます 2 つのいずれかのすべてのユニット情報:

##SQL> select *コードが (' NO2','NO3') にあるジョブから;

LIKE の適用:

名前が単語「Yun」で始まるすべてのユニットの情報をクエリ:

SQL> select * 「Yun%」 のような名前のジョブから ;

#クエリ名は 3 文字のみです すべてのユニット情報: SQL> select * from job where name like '___';

#IS NULL の適用:

ユニット名なしですべてのユニット情報をクエリ: 最初にユニットを追加しない 名前情報: SQL> INSERT INTO job(id,code) VALUES(1,'NO1');

ユニット名なしですべてのユニット情報をクエリ name:SQL> select * from job where name is null;

(21) 単一アンパサンド置換変数

数値変数入力:

SQL> select * from job where &job_id;

job_id の値を入力してください: id ​​= 2# #

文字列変数入力:

#SQL> select id*10 ,code ,name from job where code = '&job_code'; job_code の値を入力してください:
NO3


##(22) データ型変換

TO_NUMBER 文字列データを数値に変換: SQL> select to_number('33') from Dual;

## TO_CHAR 数値データを文字列に変換します。 文字列:

SQL> ジョブから to_char(2) を選択;

#TO_CHAR 文字列データを日付データに変換します:

##SQL> select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from Dual;

##TO_DATE 文字列データを日付に変換しますデータ:

##SQL> select to_date('2005-12-25,13:25:59' ,'yyyy-mm-dd,hh24: mi:ss') from Dual;

##(23 )グループ化関数の応用

#平均値の検索:

SQL>ジョブから avg(id) を選択;

#最小値の検索:

SQL> select min(id) from job where code = 'NO3';

##数値を検索: SQL> select count(* ) ID = 2 のジョブから;

##注: 私の職務単位表は次のクエリには適していないため、他の人の写真を使用して表示します

文ごとにグループ化: 各職種の平均給与を求めます部門:

HAVING 句: 3 人以上の部門をクエリする 平均給与:

# (24) Connect

もう一度注意してください: 私のジョブ ユニット テーブルも次のクエリには適していません。他の人の写真でもう一度表示します

EMP と DEPT の従業員の名前、役職、部門名をクエリします:

(25) サブクエリの適用

再度注意: 私のジョブユニットテーブルも次のクエリには適していません。他の人の写真でもう一度示します

EMP から最も給与が低い従業員をクエリします:

EMP からクエリ検索各部門の給与が最も低い従業員:

推奨チュートリアル: 「Oracle ビデオ チュートリアル

以上がOracle 12c での SQLPlus 操作の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート