Maison  >  Article  >  tutoriels informatiques  >  Pratiquez les questions sur la base de données ORACLE

Pratiquez les questions sur la base de données ORACLE

PHPz
PHPzavant
2024-01-23 21:48:05617parcourir

Pratiquez les questions sur la base de données ORACLE

Questions pratiques sur la base de données ORACLE

Utilisez le tableau emp sous l'utilisateur scott/tiger pour effectuer les exercices suivants. La structure du tableau est expliquée comme suit

. Le contenu du champ de la table des employés

emp est le suivant :

numéro d'employé empno

nom de l'employé

travail professionnel

numéro supérieur du gestionnaire

date d'embauche Date d'embauche

salaire

commission de communication

numéro de département

1.Sélectionnez tous les employés du département 30.

2. Répertoriez les noms, numéros et numéros de département de tous les commis (COMMIS).

3. Trouvez des employés dont les commissions sont supérieures à leurs salaires.

4. Trouvez les salariés dont la commission est supérieure à 60% de leur salaire.

5. Découvrez les informations détaillées de tous les gestionnaires (MANAGER) du département 10 et de tous les commis (COMMIS) du département 20.

6. Retrouvez les informations détaillées de tous les gestionnaires (MANAGER) du département 10, de tous les commis (CLERK) du département 20, et de tous les employés qui ne sont ni gestionnaires ni commis mais dont le salaire est supérieur ou égal à 2000.

7. Découvrez les différents métiers des salariés à commission.

8. Trouvez des employés qui ne facturent aucune commission ou qui facturent moins de 100 commissions.

9. Retrouvez tous les salariés employés du 3ème au dernier jour de chaque mois.

10. Trouvez les employés qui ont été embauchés il y a moins de 12 ans.

11. Affichez les noms de tous les employés avec des lettres majuscules initiales.

12. Affichez le nom de l'employé avec exactement 5 caractères.

13.Affichez les noms des employés sans "R".

14. Affichez les trois premiers caractères des noms de tous les employés.

15. Affichez les noms de tous les employés, remplacez tous les « A » par un

16. Afficher les noms et dates d'emploi des salariés ayant 10 ans de service.

17. Afficher les détails des employés, triés par nom.

18. Affichez les noms et les dates d'emploi des employés, en classant en premier les employés les plus âgés en fonction de leurs années de service.

19. Affichez les noms, emplois et salaires de tous les employés, triés par emploi par ordre décroissant, ou par salaire si les emplois sont les mêmes.

20. Affichez les noms de tous les employés, l'année et le mois de leur arrivée dans l'entreprise, triés par mois de date d'emploi, si les mois sont les mêmes, les employés avec l'année la plus ancienne seront triés en premier.

21. Afficher le salaire journalier de tous les employés lorsqu'un mois compte 30 jours, en ignorant le reste.

22. Trouvez tous les employés embauchés en février (de n'importe quelle année).

23.Pour chaque salarié, indiquez le nombre de jours écoulés depuis son arrivée dans l'entreprise.

24. Affichez les noms de tous les employés dont le champ de nom contient "A" n'importe où.

25. Affichez les années de service de tous les employés sous forme d'année, de mois et de jour (environ)

.

question oracle

(1) sélectionnez le numéro de service à partir du service où le numéro de service est dans (sélectionnez le numéro de service à partir d'em) ;

(2)sélectionnez empno,ename,sal depuis em où sal>(sélectionnez sal depuis em où ename = 'SMITH');

(3)SELECT e.ename,d.dname from em e,dept d où e.deptno=d.deptno et e.job = 'CLERK';

(4) sélectionnez empno,ename d'em où travail dans (sélectionnez travail d'em où ename = 'SCOTT') ;

(5) sélectionnez le travail, min (sal) dans le groupe par travail ;

(6) sélectionnez d.dname, min(e.sal) du département d,em e

où d.deptno=e.deptno et e.job = groupe 'MANAGER' par d.dname;

Questions de devoirs pratiques Oracle 11G SQL

7.sélectionnez le nom de l'employé, le salaire dans la table où salaire 8.sélectionnez le nom de l'employé, le salaire dans la table où salaire>moyenne (salaire) par poste

 ;

9. Exemple : Le numéro de colonne n dans t1 est [2,3] ; le numéro de colonne n dans t2 est [1,2,3,4]

select * from t2 où n >any(select n from t1); Résultat : 3,4.

Remarque : recherchez lequel des nombres de la colonne n du tableau t2 est le plus grand nombre [y compris max] que le nombre de la colonne n du tableau t1.

select * from t2 où n = any(select n from t1); Résultat : 2,3.

select * from t2 Where n 10.select * from t2 Where n >all(select n from t1) ; Résultat : 4.

 ;

select * from t2 où n 12.SELECT nom_colonne(s) FROM nom_table1 UNION SELECT nom_colonne(s) FROM nom_table2 ; fusionner les tables nom_table1 et nom_table2 sans colonnes en double.

SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2; Connectez toutes les données des deux tables table_name1 et table_name2, et il y a des doublons.

Une solution aux questions de procédure stockée Oracle

CRÉER UNE TABLE SC(

SNO INT,

CNO varchar(10),

GRADE INT

);

INSÉRER DANS LES VALEURS SC(95001, 'Math', 75);

INSÉRER DANS LES VALEURS SC(95001, '中文', 92);

INSÉRER DANS LES VALEURS SC(95002, 'English', 64);

INSÉRER DANS LES VALEURS SC(95002, 'English', 77);

INSÉRER DANS LES VALEURS SC(95003, 'Math', 85);

CRÉER TABLE SC_TOTAL(

CLÉ PRIMAIRE SNO INT,

"Mathématiques" nombre(5,2),

"Chiffre chinois"(5,2),

"Anglais" numéro(5,2),

Numéro « score moyen » (5,2)

);

DÉCLARER

v_row_count INT;

COMMENCER

POUR sc_rec IN (SELECT * FROM SC)

LOOP

-- Déterminer si les données sont disponibles

SELECT COUNT(*) INTO v_row_count

DE SC_TOTAL

OÙ SNO = sc_rec.SNO;

SI v_row_count = 0 ALORS

--Les données n'existent pas. Insérez d'abord.

INSÉRER DANS LES VALEURS SC_TOTAL(SNO) (sc_rec.SNO);

FIN SI;

-- En fonction du cours, mettez à jour des colonnes spécifiques.

SI sc_rec.CNO = 'Math' ALORS

MISE À JOUR SC_TOTAL SET "MATHEMATIQUES" = sc_rec.GRADE WHERE SNO = sc_rec.SNO;

ELSIF sc_rec.CNO = 'Chinois' ALORS

UPDATE SC_TOTAL SET "中文" = sc_rec.GRADE WHERE SNO = sc_rec.SNO;

ELSIF sc_rec.CNO = 'Anglais' ALORS

UPDATE SC_TOTAL SET "Anglais" = sc_rec.GRADE WHERE SNO = sc_rec.SNO;

FIN SI;

-- Calculez la note moyenne.

MISE À JOUR SC_TOTAL

SET "Score moyen" = (NVL ("Mathématiques", 0) + NVL ("Chinois", 0) + NVL ("Anglais", 0))

/ (NVL2("Mathématiques",1,0) + NVL2("Chinois",1,0) + NVL2("Anglais",1,0))

OÙ SNO = sc_rec.SNO;

FIN DE BOUCLE ;

FIN;

/

--Vérification des données.

SQL>SELECT * FROM SC_TOTAL;

Score moyen SNO Mathématiques chinois anglais

---------- ---------- ---------- ---------- --------- -

95001 75 92 83.5

95002 77 77

95003 85 85

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer