【Oracle篇】常用查询与SQL92笔记(一)
-- 在scott.emp表中,输出工资大于本部门平均工资的人员信息(需要使用Oracle优先的查询类型 还要使用 SQL92标准查询) -- 方法一 select max(salnvl(comm,0)),e.empno from emp e group by empno; select avg(salnvl(comm,0)),e.empno from emp e group by
-- 在scott.emp表中,输出工资大于本部门平均工资的人员信息(需要使用Oracle优先的查询类型 还要使用 SQL92标准查询)
-- 方法一
select max(sal+nvl(comm,0)),e.empno from emp e group by empno;
select avg(sal+nvl(comm,0)),e.empno from emp e group by empno;
select distinct e.*
from emp e,emp e2
where e.deptno=e2.deptno and (select max(sal+nvl(comm,0))from emp e3)>(select avg(sal+nvl(comm,0)) from emp e4);
-- 方法二
select distinct e.*
from emp e join emp e2
on (e.deptno=e2.deptno and (select max(sal+nvl(comm,0))from emp e3)>(select avg(sal+nvl(comm,0)) from emp e4));
-- 外连接:输出20部门对应员工信息,及其他部门信息
-- 要求:使用Oracle外连接符号, 还要使用 SQL92标准 outer join;
-- 方法一
select e.*,d.*
from dept d,emp e
where d.deptno(+)=e.deptno and d.deptno(+)=20
union
select e2.*,d2.*
from dept d2,emp e2
where d2.deptno=e2.deptno(+) and e2.deptno(+)=20;
-- 方法二
select e.*,d.*
from dept d full join emp e
on (d.deptno=e.deptno and d.deptno=20);
-- --3、获取在98年10月15日加入项目的所有职员的部门编号、姓名、员工编号、部门名称
-- 方法一
select e.*,d.dept_name,w.*
from employee e,department d,works_on w
where e.dept_no=d.dept_no and e.emp_no=w.emp_no and w.enter_date=(to_date('1998-10-15','yyyy-mm-dd'));
select * from works_on;
-- 方法二
select e.*,d.dept_name
from employee e join department d on(e.dept_no=d.dept_no) join works_on w
on (e.emp_no=w.emp_no and w.enter_date=(to_date('1998-10-15','yyyy-mm-dd')));
--4、获取会计部门(ACCounting)中的职员所工作的项目名称
--方法一
select p.project_name,e.*
from employee e,department d,works_on w,eproject p
where e.dept_no=d.dept_no and e.emp_no=w.emp_no and w.project_no=p.project_no and lower(trim(d.dept_name))=lower('ACCounting');
--方法二
select p.project_name,e.*
from employee e join department d on(e.dept_no=d.dept_no and lower(trim(d.dept_name))=lower('ACCounting')) join works_on w on(e.emp_no=w.emp_no) join eproject p
on (w.project_no=p.project_no );
--5、获取与至少一个其他部门拥有相同所在地的所有部门的全部细节信息(自连接)
-- 方法一
select d.*,d2.*
from department d,department d2
where d.location=d2.location;
-- 方法二
select d.*,d2.*
from department d join department d2
on (d.location=d2.location);
select * from department;
--6、获取与至少一位其他职员工作在同一部门且居住在同一城市的每一名职员编号、姓名
-- 居住地(使用employee_enh)
-- 方法一
select en.*
from employee_enh en,department d
where en.dept_no=d.dept_no and en.emp_address=en.emp_address;
--方法二
select en.*
from employee_enh en join department d
on(en.dept_no=d.dept_no and en.emp_address=en.emp_address);
--7、获取为项目编号为p3工作的所有职员姓名
-- 方法一
select e.*
from eproject p,employee e,works_on w
where p.project_no=w.project_no and w.emp_no=e.emp_no and p.project_no='p3';
-- 方法二
select e.*
from eproject p join works_on w on(p.project_no=w.project_no)
join employee e on (w.emp_no=e.emp_no and p.project_no='p3');
--10、获取为项目p1工作的所有职员姓名
-- 方法一
select e.*
from eproject p,employee e,works_on w
where p.project_no=w.project_no and w.emp_no=e.emp_no and p.project_no='p1';
-- 方法二
select e.*
from eproject p join works_on w on(p.project_no=w.project_no)
join employee e on( w.emp_no=e.emp_no and p.project_no='p1');
--11、获取工作部门不再Seattle的所有职员的姓名
-- 方法一
select e.*
from employee e,department d
where not exists (select e2.* from employee e2,department d2 where e2.dept_no=d2.dept_no and lower(trim(d2.location))=lower('Seattle'));
-- 方法二
select e.*
from employee e join department d
on(e.dept_no=d.dept_no and d.location! ='Seattle');
--方法三
select e.*
from department d,employee e
where e.dept_no=d.dept_no and d.location! ='Seattle';
--12、获取工作部门所在地和员工居住地的相同的员工信息
-- 方法一
select en.*,d.*
from department d , employee_enh en
where (d.dept_no=en.dept_no and d.location=en.emp_address);
-- 方法二
select en.*
from department d , employee_enh en
union
select en2.* from department d2 join employee_enh en2 on(d2.dept_no=en2.dept_no and d2.location=en2.emp_address);
--13、获取工作部门所在地和员工居住地的不同的员工信息
-- 方法一
select en.*
from department d,employee_enh en
where exists(select en2.* from department d2,employee_enh en2 where d2.location!=en2.emp_address);
--方法二
select en.*
from department d ,employee_enh en
union
select en2.* from department d2 join employee_enh en2 on (en2.dept_no=d2.dept_no and d2.location !=en2.emp_address);
还未结束,下次继续更新。。。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Um die Oracle -Tablespace -Größe abzufragen, führen Sie die folgenden Schritte aus: Bestimmen Sie den Namen Tablespace, indem Sie die Abfrage ausführen: Wählen Sie Tablespace_Name aus dba_tablespaces. Abfragen Sie die Tablespace -Größe durch Ausführen der Abfrage: Summe (Bytes) als Total_Size, sum (bytes_free) als verfügbare_space, sum

Mit der Verschlüsselung von Oracle View können Sie Daten in der Ansicht verschlüsseln und so die Sicherheit sensibler Informationen verbessern. Die Schritte umfassen: 1) Erstellen des Master -Verschlüsselungsschlüssels (MEK); 2) Erstellen einer verschlüsselten Ansicht, der Ansicht und der Verschlüsselung der Ansicht und der MEK angeben; 3) Benutzern Sie die Benutzer, auf die verschlüsselte Ansicht zuzugreifen. Wie verschlüsselte Ansichten funktionieren: Wenn ein Benutzer nach einer verschlüsselten Ansicht nachgefragt wird, verwendet Oracle MEK, um Daten zu entschlüsseln und sicherzustellen, dass nur autorisierte Benutzer auf lesbare Daten zugreifen können.

Es gibt drei Möglichkeiten, Instanznamen in Oracle anzuzeigen: Verwenden Sie den "SQLPLUS" und "Instance_name aus v $ Instance". Befehle in der Befehlszeile. Verwenden Sie den "show Instance_name;" Befehl in SQL*Plus. Überprüfen Sie die Umgebungsvariablen (Oracle_sid unter Linux) über den Task -Manager des Betriebssystems, den Oracle Enterprise Manager oder über das Betriebssystem.

Datenimportmethode: 1. Verwenden Sie das SQLLoader -Dienstprogramm: Datendateien vorbereiten, Steuerdateien erstellen und SQLLOADER ausführen. 2. Verwenden Sie das IMP/Exp -Tool: Daten exportieren, Daten importieren. Tipp: 1. Empfohlener SQL*Loader für Big -Data -Sets; 2. Die Zieltabelle sollte vorhanden und die Spaltendefinition entspricht. 3. Nach dem Import muss die Datenintegrität überprüft werden.

Deinstallieren Sie die Methode für Oracle -Installationsfehler: Schließen Sie den Oracle -Service, löschen Sie Oracle -Programmdateien und Registrierungsschlüssel, Deinstallieren Sie Oracle -Umgebungsvariablen und starten Sie den Computer neu. Wenn das Deinstall fehlschlägt, können Sie das Oracle Universal Deinstall -Tool manuell deinstallieren.

Es gibt die folgenden Methoden, um Zeit in Oracle zu bekommen: current_timestamp: Gibt die aktuelle Systemzeit genau auf Sekunden zurück. SYSTIMESTAMP: genauer als Current_Timestamp, für Nanosekunden. SYSDATE: Gibt das aktuelle Systemdatum mit Ausnahme des Zeitteils zurück. To_char (sysdate, 'yyy-mm-dd hh24: mi: ss'): konvertiert das aktuelle Systemdatum und die Uhrzeit in ein bestimmtes Format. Extrakt: Extrahiert einen bestimmten Teil aus einem Zeitwert wie einem Jahr, Monat oder Stunde.

SQL -Anweisungen können basierend auf der Laufzeiteingabe erstellt und ausgeführt werden, indem die dynamische SQL von Oracle verwendet wird. Zu den Schritten gehören: Vorbereitung einer leeren Zeichenfolgenvariable zum Speichern von dynamisch generierten SQL -Anweisungen. Verwenden Sie die sofortige Ausführung oder Vorbereitung, um dynamische SQL -Anweisungen zu kompilieren und auszuführen. Verwenden Sie die Bind -Variable, um die Benutzereingabe oder andere dynamische Werte an dynamische SQL zu übergeben. Verwenden Sie sofortige Ausführung oder führen Sie aus, um dynamische SQL -Anweisungen auszuführen.

Ein AWR -Bericht ist ein Bericht, in dem die Datenbankleistung und Aktivitätsschnappschüsse angezeigt werden. Zu den Interpretationsschritten gehören: Identifizierung des Datums und der Uhrzeit des Aktivitäts -Snapshots. Sehen Sie sich einen Überblick über Aktivitäten und Ressourcenverbrauch an. Analysieren Sie Sitzungsaktivitäten, um Sitzungsarten, Ressourcenverbrauch und Warteeignisse zu finden. Finden Sie potenzielle Leistungsengpässe wie langsame SQL -Aussagen, Ressourcenbeständigkeit und I/A -Probleme. Wartenereignisse anzeigen, identifizieren und beheben Sie sie für die Leistung. Analysieren Sie die Muster für Latch- und Speichernutzung, um Speicherprobleme zu identifizieren, die Leistungsprobleme verursachen.
