Heim  >  Artikel  >  Datenbank  >  Zusammenfassung der Verwendung von SQLPlus-Vorgängen in Oracle 12c

Zusammenfassung der Verwendung von SQLPlus-Vorgängen in Oracle 12c

WBOY
WBOYnach vorne
2022-07-20 14:33:142678Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Oracle, in dem hauptsächlich die Probleme im Zusammenhang mit dem Betrieb und der Verwendung von SQLPlus in 12c sowie die Unterschiede zwischen SYS- und SYSTEM-Benutzern in Oracle usw. geklärt werden. Werfen wir einen Blick darauf zusammen, hoffe, hilfreich für alle.

Empfohlenes Tutorial: „Coracle-Video-Tutorial

Zusammenfassung der Verwendung von SQLPlus-Vorgängen in Oracle 12c

1. SQLPlus-Versionsnummer anzeigen

(1) CMD zum Anzeigen im DOS-Befehl, Eingabe:

SQLPlus -V

(2) Geben Sie nach dem Aktivieren von sqlplus Folgendes ein:

select * from V$VERSION;

2 So geben Sie sqlplus ein

(1)Die Windows10-Umgebung befindet sich in der Startmenü, finden Sie SQLPLUS und klicken Sie, um es zu öffnen Taste + R-Taste, um das Ausführungsfenster zu öffnen, cmd einzugeben und dann sqlplus zu aktivieren Diese drei Benutzer sind das, was Sie installieren. Das Passwort, das beim Installieren festgelegt wurde. Es gibt drei Arten von Oracle-Anmeldeidentitäten:

normale normale Identität

,

sysdba-Systemadministratoridentität,

sysoper-Systembetreiberidentität

, jede Identität entspricht auf unterschiedliche Berechtigungen.

Der SYS -Benutzer ist ein Superbenutzer. hat Berechtigungen zum Erstellen einer Datenbank

. Der SYSTEM-Benutzer ist ein Verwaltungsoperator

, hat die SYSOPE-Rolle, verfügt über Datenbankbetreiberberechtigungen und kann keine Datenbank erstellen – verfügt nicht über die Berechtigung zum Erstellen einer Datenbank . 4. Den globalen Datenbanknamen und die SID der Oracle-Datenbank anzeigen. Den globalen Datenbanknamen anzeigen:

Name aus v$database auswählen Wählen Sie den Instanznamen aus v$instance;5 aus. Benutzername: Wählen Sie den Benutzer aus Dual aus

Mehrzeilige Kommentare, beginnend mit /* und einem Leerzeichen dahinter, enden mit */ und einem Leerzeichen davor, zum Beispiel:

/* Mehrzeilige Kommentare,

Die folgende Anweisung: Ja. Den aktuellen Benutzernamen anzeigen*/

Benutzer aus Dual auswählen Syntax

CONN[ ECT] [{ Anmelden

|. / |

hat die folgende Syntax:

Benutzername [/Passwort] [@connect_identifier]

wobei

proxy die folgende Syntax hat:

Proxy-Benutzer [Benutzername] [/ Passwort] [ @connect_identifier]

HINWEIS: Die Klammern um den Benutzernamen in Agent sind erforderliche Syntax und kein Hinweis auf optionale Begriffe. Verwenden Sie beispielsweise ein Passwort, um über einen Proxy eine Verbindung zu einem Benutzer herzustellen. scotthrwelcome1Connect hr[scott]/welcome1

Beispiel 1Dieses einfache Beispiel stellt als Benutzer eine Verbindung zu einer lokalen Datenbank her. SQL* Plus fordert zur Eingabe des Benutzerkennworts auf. SYSTEMSYSTEM

connect system
Beispiel 2scotthrwelcome1连接 hr[scott]/welcome1

例子 1

这个简单的示例以用户身份连接到本地数据库。SQL*加会提示输入用户密码。SYSTEMSYSTEM

connect sys as sysdba

例子 2

此示例以具有特权的用户身份连接到本地数据库。SQL*加会提示输入用户密码。SYSSYSDBASYS

connect / as sysdba

以用户身份连接时,必须连接 。SYSAS SYSDBA

例子 3

此示例使用操作系统身份验证的特权进行本地连接。SYSDBA

connect salesadmin@"dbhost.example.com/sales.example.com"

例子 4

此示例使用简单的连接语法以用户身份连接到在主机 上运行的远程数据库。Oracle Net 侦听器(侦听器)正在侦听默认端口 (1521)。数据库服务是 。SQL*加会提示输入用户密码。salesadmindbhost.example.comsales.example.comsalesadmin

Dieses Beispiel stellt als privilegierter Benutzer eine Verbindung zu einer lokalen Datenbank her. SQL* Plus fordert zur Eingabe des Benutzerkennworts auf. SYSSYSDBASYS

connect salesadmin@"dbhost.example.com/sales.example.com:dedicated"
Muss verbunden sein, wenn eine Verbindung als Benutzer hergestellt wird. SYSAS SYSDBA

Beispiel 3

Dieses Beispiel stellt eine lokale Verbindung unter Verwendung der Berechtigungen der Betriebssystemauthentifizierung her. SYSDBA

connect salesadmin@"dbhost.example.com:1522/sales.example.com"

Beispiel 4

Dieses Beispiel verwendet eine einfache Verbindungssyntax, um als Benutzer eine Verbindung zu einer Remote-Datenbank herzustellen, die auf dem Hostcomputer ausgeführt wird. Der Oracle Net-Listener (Listener) überwacht den Standardport (1521). Der Datenbankdienst ist . SQL* Plus fordert zur Eingabe des Benutzerkennworts auf. salesadmindbhost.example.comsales.example.comsalesadmin

connect salesadmin@"192.0.2.5/sales.example.com"

Beispiel 5

Dieses Beispiel ist dasselbe wie Beispiel 4, außer dass der Service-Handler-Typ angegeben ist .

connect salesadmin@"[2001:0DB8:0:0::200C:417A]/sales.example.com"

Beispiel 6

Dieses Beispiel ist dasselbe wie Beispiel 4, außer dass der Listener den nicht standardmäßigen Port Nummer 1522 überwacht.

connect salesadmin@"dbhost.example.com//orcl"

Beispiel 7

Dieses Beispiel ist dasselbe wie Beispiel 4, außer dass die Host-IP-Adresse durch den Hostnamen ersetzt wird.

🎜🎜
connect salesadmin@sales1
🎜🎜🎜🎜Beispiel 8🎜🎜🎜🎜🎜🎜🎜In diesem Beispiel wird eine IPv6-Adresse für die Verbindung verwendet. Beachten Sie die umgebenden eckigen Klammern. 🎜🎜🎜
connect /@sales1
🎜🎜🎜🎜Beispiel 9🎜🎜🎜🎜🎜🎜🎜Dieses Beispiel gibt die Instanz an, mit der eine Verbindung hergestellt werden soll, und lässt den Datenbankdienstnamen weg. Der Standarddatenbankdienst muss angegeben werden, sonst wird ein Fehler generiert. Beachten Sie, dass der Service-Handler-Typ nicht angegeben werden kann, wenn nur die Instanz angegeben wird. 🎜🎜🎜
connect /@sales1 as sysdb
🎜🎜🎜🎜Beispiel 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 密码;

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

Benutzernamen erstellen, der durch Passwort identifiziert wird Standard-Tablespace-Tablespace-Name;

【Benutzer löschen und kaskadieren. Beziehung】

Benutzernamen-Kaskade löschen;

Durch die Angabe von cascade werden alle Objekte unter dem Benutzer gelöscht (einschließlich Tabellen, Ansichten, Primärschlüssel, Fremdschlüssel, Indizes usw.; gespeicherte Prozeduren, Funktionen und Pakete werden jedoch nicht gelöscht). Wenn nicht angegeben, wird nur der Benutzer gelöscht. Es wird allgemein empfohlen,

【Benutzerinformationen abfragen】

oracle Den aktuellen Benutzernamen anzuzeigen:

Benutzer anzeigen oder wählen Sie einen Benutzer aus Dual aus ein Konto mit DBA-Berechtigung, z. B. sys, system):

select * from dba_users;

Beachten Sie, dass das Sternchen * in der SELECT-Abfrageanweisung alle Spalten darstellt

Alle Benutzer anzeigen, die Sie verwalten können:

select * from all_users;

Aktuelle Benutzerinformationen anzeigen:

select * from user_users;

Fragen Sie die Tabelle ab, die dem Benutzerbereich entspricht:

wählen Sie Benutzername, Standardtabellenbereich aus dba_users;

Verwenden Sie Einschränkungen, um den Tabellenbereich abzufragen, der dem Benutzer entspricht:

Wählen Sie Benutzernamen und Standardtabellenbereich aus dba_users aus, wobei Benutzername = 'Benutzername in Großbuchstaben' ist

(4) zur Benutzerautorisierung

Gewähren Sie dem Benutzernamen die Berechtigung;

Der erstellte Benutzer verfügt standardmäßig über keine Berechtigungen und ihm müssen Berechtigungen zugewiesen werden.

Verschiedene Benutzer, die sich bei derselben Datenbank anmelden, sehen möglicherweise eine unterschiedliche Anzahl von Tabellen und haben unterschiedliche Berechtigungen. Die Berechtigungen von Oracle sind in Systemberechtigungen und Datenobjektberechtigungen unterteilt. Es ist sehr schwierig, Benutzer einzeln zu autorisieren, daher werden diese Benutzer derselben Kategorie zugeordnet – einer bestimmten Rolle Vereinfachen und autorisieren Sie Vorgänge, indem Sie einige Rollen mit vorgegebenen Berechtigungen einrichten. Die Motivation für Rollen besteht darin, die Berechtigungsverwaltung zu vereinfachen. Der allgemeine Ansatz ist: Das System weist Rollen Berechtigungen zu und weist diese dann Benutzern zu. Natürlich kann es Benutzern bestimmte Berechtigungen auch direkt zuweisen. Oracle bietet fein abgestufte Berechtigungen. Berechtigungen können individuell für eine bestimmte Spalte der Tabelle festgelegt werden und Einschränkungen können automatisch zur Abfrage eines Benutzers für eine bestimmte Tabelle hinzugefügt werden.

【Berechtigungsklassifizierung】

Systemberechtigungen: Das System legt die Berechtigungen des Benutzers zur Nutzung der Datenbank fest. (Systemberechtigungen gelten für Benutzer).

Entitätsberechtigungen: Die Zugriffsberechtigungen eines Benutzers mit bestimmten Berechtigungen auf die Tabellen oder Ansichten anderer Benutzer. (Für Tabellen oder Ansichten).

Systemberechtigungsklassifizierung

DBA: Verfügt über alle Berechtigungen und ist die höchste Autorität im System. Nur DBA kann Datenbankstrukturen erstellen.

RESSOURCE: Benutzer mit Ressourcenberechtigungen können nur Entitäten erstellen, keine Datenbankstrukturen.

CONNECT: Benutzer mit Connect-Berechtigungen können sich nur bei Oracle anmelden und keine Entitäten oder Datenbankstrukturen erstellen.

Entitätsberechtigungsklassifizierung

Auswählen, Aktualisieren, Einfügen, Ändern, Indizieren, Löschen, Alle (alles beinhaltet alle Berechtigungen), Ausführen (Berechtigung zum Ausführen gespeicherter Prozeduren).

Rolle

Eine Rolle ist eine Reihe von Berechtigungen. Wenn einem Benutzer eine Rolle zugewiesen wird, verfügt der Benutzer über alle Berechtigungen in der Rolle.

Vordefinierte Rollen sind einige häufig verwendete Rollen, die nach der Installation der Datenbank automatisch vom System erstellt werden. Im Folgenden finden Sie eine kurze Einführung in diese geplanten Rollen.

Alle Rollen anzeigen:

select * from dba_roles;

Die in der Rolle enthaltenen Berechtigungen können mit der folgenden Anweisung abgefragt werden:

select * From ROLE_SYS_PRIVS Where Role = 'Character Name' ) Melden Sie sich dann mit dem erstellten Benutzer an. Erstellen Sie nach dem Anmelden die Tabelle.

9 ein Tabellenbereich für die SQL-Anweisungspraxis Format: erstellen Tablespace-Tabellenname Datendatei 'Datendateiname' Größe Tabellenbereichsgröße Tabelle Räumliche Datendateien werden automatisch erweitert

Tablespace erstellen SKspace-Datendatei 'C:Oracle12CMBspce1.dbf' Größe 20M automatisch erweitern auf;

(2) Erstellen Sie den Benutzer

C##suke

Das Passwort lautet suke123, legen Sie den Standardtabellenbereich auf

SKspace

und den temporären Tabellenbereich auf temp

fest:

Format: Erstellen Sie den Benutzernamen Benutzername, der durch Kennwort identifiziert wurde. Standardtabelle Tabelle Speak Tabelle; oder Rollenname

weil zu diesem Zeitpunkt in CDB Create und in CDB erstellte Benutzer C# oder C## hinzufügen müssen

(3) Der erstellte Benutzer hat keine Berechtigungen standardmäßig und es müssen Berechtigungen zugewiesen werden.

...

– bedeutet, dem Studienbenutzer Verbindungs- und Ressourcenberechtigungen zu gewähren

Grant Connect,Ressource zum Lernen;

– Zeigt die Erteilung von DBA-Berechtigungen zum Lernen an

Grant DBA zum Lernen;

(4) Sie können jetzt den erstellten Benutzer verwenden (verwenden Sie die vorheriger Der erstellte Benutzer C##sukePasswort ist suke123) Login:

connect C##suke/suke123;

(5) Anmelden Dann die Tabelle erstellen:

CREATE TABLE job( id NUMBER(6),code VARCHAR2(10), name VARCHAR2(10) ) ;

(6) Fügen Sie einen einzelnen Datensatz in die erstellten (bereits vorhandenen) Tabellendaten ein:

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

(7) Fügen Sie mehrere einzelne Datensätze in Tabellendaten für eine erstellte (vorhandene) Tabelle ein:

INSERT ALL

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

INTO job(id,code,name) VALUES(3,'NO3','Betrieb und Wartung')

SELECT 1 FROM dual;

(8) Tabellendaten abfragen:

SELECT * FROM job where id=1;

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

(9) Fragen Sie die vom Benutzer erstellte Tabelle ab:

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

Keine Zeilen ausgewählt

Zuerst dachte ich, die Abfrageanweisung sei falsch, aber nachdem ich sie links und rechts geändert hatte, war das Ergebnis immer noch dasselbe.

Später habe ich online nachgesehen und herausgefunden, dass die „nicht ausgewählte Zeile“ kein Fehler war, da in der Datenbank kein Ergebnis vorhanden war, das mit der Abfrageanweisung übereinstimmte.

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

Es scheint, dass man bei Problemen keine Vorurteile haben kann. Ich dachte, es wäre eine Aussage Anfangs ein Fehler, der aber immer passiert ist. Ich möchte herausfinden, was an dieser Aussage falsch ist. Tatsächlich handelt es sich hierbei nicht um einen Fehler, sondern lediglich um ein Problem mit den Daten in der Datenbank. (10) Fragen Sie die vom Benutzer erstellte Tabellenstruktur ab: (1) ) Leer löschen Tabellenbereich, aber keine physischen Dateien                                                           drop tablespace 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) Fragen Sie die Daten in der Jobtabelle ab. (7) Listen Sie den Inhalt des Puffers auf:

Abfragebefehl Ich habe den Code versehentlich in cose eingegeben: select id, cose, name from job;

Zusätzlicher Hinweis: Wenn in der ten Zeile ein Fehler auftritt, kann der Fehlerzeilencode durch Eingabe von und separat angezeigt werden Verlassen der Nummer der falschen Zeile.

Verwenden Sie die Änderung, um den Fehlercode zu beheben: change /cose/code;

(10) Eingabe Einzeilige Abfragebedingungen hinzufügen

Abfrageinformationen: SQL> Select ID, Code, Name from Job; Geben Sie alle Befehle ein und verwenden Sie die Eingabe, um die ID-Spalte hinzuzufügen. Sortierbedingungen:

SQL> Eingabe

2 nach ID sortieren;

(11) anhängen Abfragebedingungen hinzufügen bis zum Ende der vorherigen Zeile

Folgen Sie den Schritten (10) Was soll ich nach dem Ansehen der Hauptsequenz tun, wenn ich Rückblenden aufgrund einer Zwangsstörung ansehen möchte?

Zuerst den Inhalt des Puffers auflisten: list

Abfragebedingungen am Ende der vorherigen Zeile hinzufügen: append desc

Hinweis: Hängen Sie an Die Mitte des Abstiegs ist

Zwei Leerzeichen, wenn Sie nur ein Leerzeichen lassen, wie im Fehler unten gezeigt

Wiederholen: run

(12) del delete die letzte Zeile der Abfragebedingungen

Was soll ich tun, nachdem ich mir den Rückblick in Schritt (11) angesehen habe, wenn ich die Originaldaten sehen möchte, weil mein Gehirn krank ist?

Listen Sie zunächst den Inhalt des Puffers auf:

list

Löschen Sie die vorherige Zeile der Abfragebedingungen:

del

Erneut ausführen: run

(13) Alle Informationen in der Jobtabelle anzeigen: select * from job;

(14) Durch die Verwendung von arithmetischen Operatoren

wird id+2*3 angezeigt: select id+2*3,code,name from job;

(15) Verwendung von Bindestrichen

zum Verbinden der Einheitennummer und des Einheitennamens: Wählen Sie den Codenamen und den Codenamen aus dem Job aus und geben Sie „WORKS IN DEPARTMENT“ aus. :

select id,code||'-'||name codename,'work in Department' from job;

(16) Die DISTINCT-Klausel eliminiert Duplikate

Da die Daten hier selbst keine doppelten Werte haben, müssen wir einige weitere doppelte Daten hinzufügen:

INSERT ALL

INTO job(id,code,name) VALUES(1,'NO2','Front-end')

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

INTO job(id,code,name) VALUES(3,'NO3','Internet of Things')

SELECT 1 dual FROM;

Wenn Sie auflisten alle Einheiten-ID-Nummern in der Job-Tabelle: ID aus Job auswählen; Duplikat, Sie können die DISTINCT-Klausel verwenden, um Duplikate zu entfernen:

Eindeutige ID aus Job auswählen; Nach einer einzelnen Feld-ID sortieren: Wählen Sie * aus der Auftragsreihenfolge nach ID aus. Methode 1:

Überprüfen Sie die Wissenspunkte

Liste

und

Anhängen

Nutzung

Methode 2:

Wählen Sie * aus der Auftragsreihenfolge nach ID,Name absteigend;

(19) Bedingte Abfrage
Fragen Sie alle Geräteseriennummern, Gerätenummern und Gerätenameninformationen ab, deren Geräteseriennummer-ID 2 ist:

SQL> select * from job where id = 2;

Die Namen von Einheiten mit Seriennummern größer als 1 aus der Jobtabelle abfragen:

SQL & GT; > 1;

Alle Geräteinformationen abfragen, deren Geräteseriennummer größer als 1 ist und deren Gerätenummer „NO3“ ist oder deren Gerätename „vorne“ ist end': SQL> select * from job where id > Anwendung zwischen:

Abfrageinheit Alle Einheiten der Seriennisation zwischen 2 und 3:

SQL & GT;

in der Anwendung:

Fragen Sie alle Einheiteninformationen eines der beiden Einheitennummerncodes mit „NO2“, „NO3“ ab:

SQL> wählen Sie * aus Job wo Code in ('NO2','NO3' ; Alle Einheiteninformationen mit Namen aus nur drei Zeichen abfragen: SQL> * aus Job auswählen, bei dem der Name wie '___' aussieht; Anwendung von IS NULL:

Alle abfragen Einheiteninformationen ohne Einheitennamen: Fügen Sie zunächst Informationen ohne Einheitennamen hinzu: SQL> alle Einheiteninformationen ohne Einheitennamen:

SQL> select * from job where name is null;

(21 ) Single & Number Replacement Variable

Digitale Variableneingabe:

SQL & GT; Wählen Sie * aus Job, wobei & job_id Geben Sie den Wert von job_id ein: id = 2

String-Variableneingabe:

SQL> select id*10,code,name from job where code = '&job_code';
Geben Sie den Wert von job_code ein: NO3

(22) Datentypkonvertierung


TO_CHAR Numerische Daten in String konvertieren: SQL> select to_char(2) from job; SQL> select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual;

to_date konvertieren String-Daten bis Datum Daten:

SQL & GT; ,hh24:mi:ss') von dual;

(23) Anwendung der Gruppierungsfunktion

Ermitteln Sie den Durchschnittswert:

SQL> select avg(id) from job;

Finden Sie den Mindestwert:

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

Finden Sie die Nummer: SQL> select count(*) from job where id = 2;

Hinweis: Da meine Jobeinheitentabelle nicht für die folgende Abfrage geeignet ist, werde ich dies tun zeige es mit dem Bild einer anderen Person

GROUP BY-Klausel: Ermitteln Sie das durchschnittliche Gehalt in jeder Abteilung:

HAVING-Klausel: Fragen Sie das durchschnittliche Gehalt in Abteilungen mit mehr als 3 Personen ab:

(24) Verbinden Hinweis noch einmal: Meine Jobeinheit Die Tabelle ist auch nicht für die folgenden Abfragen geeignet. Verwenden wir das Bild einer anderen Person, um sie erneut anzuzeigen. Abfrage der Mitarbeitername, Job- und Abteilungsname aus EMP und DEPT:

(25) Unterabfrage Application

Nochmals beachten: Meine Job-Unit-Tabelle ist auch nicht für die folgende Abfrage geeignet, also Ich werde es noch einmal mit dem Bild von jemand anderem zeigen

Fragen Sie die am schlechtesten bezahlten Mitarbeiter von EMP ab:

Fragen Sie die am schlechtesten bezahlten Mitarbeiter in jeder Abteilung von EMP ab:

Empfohlenes Tutorial: „Oracle Video. Tutorial

Das obige ist der detaillierte Inhalt vonZusammenfassung der Verwendung von SQLPlus-Vorgängen in Oracle 12c. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen