ネットワーク工学およびモノのインターネット専攻(情報通信)に適用
この実験は最終試験の一部でもあります
目次
ネットワーク工学およびモノのインターネット専攻(情報通信)に適用
1. SQL Developerを使用してテーブルをインポートする
1. 実験目的
1. Oracle 環境に精通し、SQL Developer を使用して Oracle と対話する方法を学びます。
2. 基本的なデータベース テーブルを確立し、テーブル構造を表示、変更、削除します。
3. テーブル内のデータの挿入、削除、変更、クエリの方法を学びます。
2. 実験内容
SQL Developerで学生ユーザーを使用してOracleデータベースに接続し、BONUS、DEPT (部門テーブル)、EMP (従業員テーブル)およびSALGRADE (給与等級テーブル)の4つのテーブルをインポートし、単純な問合せと高度な問合せ操作を実行し、学生を作成します。情報テーブル (INFOS) とスコア テーブル (SCORES) は、データベース テーブルとデータの挿入、クエリ、更新、削除などの基本的な操作を実行します。
3. 実験用ソフトウェア
Oracleデータベース、SQL開発者
4. 実験手順とデータ記録
1. SQL Developerを使用してテーブルをインポートする
(1) 学生ユーザーを使用してデータベースに接続し、ロールに「デフォルト」を選択します。
(2) SQL スクリプトをワークシートウィンドウに貼り付け、「スクリプトの実行」ボタンをクリックすると、インポートが成功すると、クエリされた DEPT、EMP、SALGRADE テーブルのデータ内容は下図のようになります。
関連するスクリーンショットは次のとおりです。
図1 図2 |
画像3 |
2. データベースのテーブルとフィールドの基本操作
2.1 学生情報テーブルと制約の作成
スクリプトを挿入すると、関係テーブルを取得できます。
次の図に示すように、INFOS テーブルが正常に作成されたら、「列」と「制約」の内容を表示します。
図4 |
図5
|
2.2 スコアテーブルと制約の作成
スクリプトの挿入
SCORES テーブルが正常に作成された後、「列」と「制約条件」の内容を表示します。結果は図のとおりです。
図6 |
図7 |
2.3 データの挿入
データを挿入するには、insert コマンドを使用します。
データが正常に挿入されたら、図に示すように INFOS テーブルを表示します。
図8
|
2.4 単純なクエリデータ
SELECT コマンドを使用して学生情報テーブル (INFOS) をクエリし、性別 (GENDER) が「男性」であるすべての学生の名前 (STUNAME)、性別 (GENDER)、年齢 (AGE)、および住所 (STUADDRESS) 情報を取得します。年齢順に並べ替えます。
クエリ コマンドは次のとおりです。SELECT STUNAME,GENDER,AGE,STUADDRESS FROM INFOS WHERE GENDER=‘ Male’ ORDER BY AGE;
結果は次のとおりです。
図9
|
2.5 データの更新
UPDATE コマンドを使用して、学生情報テーブル (INFOS) 内の学生名 (STUNAME) が「Ruan Xiaoer」である次の情報を更新します。
班号(CLASSNO)改为“1002” 住址(STUADDRESS)改为“山东莱芜”
クエリ コマンドは次のとおりです:UPDATE INFOS SET CLASSNO='1002',STUADDRESS='Shandong Laiwu' WHERE STUNAME='Ruan Xiaoer';
クエリ結果は図に示すとおりです
図10
|
2.6 特定のデータを削除する
DELETE コマンドを使用して、生徒情報テーブル (INFOS) 内の中学校 ID (STUID) "s100102" の生徒情報を削除し、SELECT コマンドを使用して生徒情報テーブル (INFOS) 内のすべての情報をクエリします。
删除 コマンド:DELETE FROM INFOS WHERE STUID=‘s100102’;
削除後の結果を図に示します。
図11
|
3. 簡単なクエリ
Oracle に付属の 3 つのテーブル、EMP テーブル (従業員テーブル)、DEPT テーブル (部門テーブル)、および SALGRADE テーブル (給与等級テーブル) を使用します。
1) 各従業員の年末ボーナスは 2,000 元です。EMP テーブルをクエリして、基本給が 2,000 元を超える従業員の名前、給与、およびボーナスを除く年間給与総額情報を取得します。
関連コマンド:
SELECT ENAME,SAL,12*SAL FROM EMP WHERE SAL>2000;
検索結果:
図12 |
2) EMP テーブルをクエリして、給与が 2,000 元を超える従業員の名前と勤務情報を取得します。
4. 高度なクエリ
1) EMP テーブル内の従業員の部門番号を照会します。
分析: 1 つの部門に複数の従業員がいる場合、クエリは 1 つの結果のみで済み、複数のデータをクエリする必要はありません。
関連するコマンドは次のとおりです。
EMP から異なる DEPTNO を選択してください。 |
図13
|
2) 給与が 2,000 未満でボーナスを受け取っていない従業員を照会します。
ステップ 1: 給与が 2,000 未満の従業員をクエリします。
SAL<2000; の EMP から ENAME、JOB、SAL、COMM を選択してください。 |
図14
|
ステップ 2: 給与が 2,000 未満でボーナスを受け取っていない従業員をクエリする
SAL<2000 および COMM が NULL の場合、EMP から ENAME、JOB、SAL、COMM を選択します。 |
図15
|
3) 職務責任がセールスマン、社長、またはアナリストである従業員を照会する
EMP から ENAME、JOB、SAL を選択してください どこで働くか (「セールスマン」、「社長」、「アナリスト」); |
図16
|
4) 給与が 1000 ~ 2000 の従業員をクエリする
ENAME、JOB、SAL を EMP から選択します。SAL は 1000 ~ 2000 です。 |
図17
|
5) 名前が J で始まり S で終わる従業員の名前、給与、給与をクエリします。
SELECT ENAME,JOB,SAL FROM EMP WHERE ENAME LIKE 'J%S'; |
図18
|
6) DEPT テーブルに従業員がいない部門番号をクエリします。
DEPT から DEPTNO を選択します。マイナス EMP から DEPTNO を選択します。 |
図19
|
7) 月給が 2,000 元を超える従業員の名前、役職、給与、部門名を照会します。
SELECT e.ENAME、e.JOB、e.SAL、d.DNAME FROM EMP e,DEPT d WHERE e.DEPTNO=d.DEPTNO および e.SAL>2000; |
図20
|
5. 実験の結論と疑問
実験結果:
SQL 言語を使用して、データベース内のリレーショナル テーブルに対するクエリ、挿入、削除などの操作を学習します。< a i =3>SQL言語を柔軟に使用し、リレーショナル テーブルを深く理解し、データベースの使用に精通している。
考えられる質問:
- 営業マン、社長、アナリスト以外の職責を持つ従業員の名前、役職、給与、部門名を照会します。
注文:
職種が含まれていない従業員、部門 ('営業マン'、'社長'、'アナリスト') および EMP.DEPTNO=部門から ENAME、JOB、SAL、DNAME を選択.DEPTNO;
結果は次のとおりです。
図21
|
図22
|
2. 换一种方法查询出工资大于 2000 元的员工姓名、工作、工资,及其所在部门名称。
命令:SELECT ENAME,JOB,SAL,DNAME FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO AND SAL>2000;
查询结果如下:
图23
|
3、查询出每个部门下的员工姓名和工资。请写出 SELECT 命令,并给出查询结果截图。
命令:SELECT ENAME,SAL,DNAME FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO;
结果如下:
图24
|
4、如果在步骤 2.4 中使用 sys 用户查询学生用户的 INFOS 表,能否查询到学生用户 INFOS 表的添加、删除、修改操作?为什么?如果不同,如何才能让 sys 用户查询到学生用户对 INFOS 表的添加、删除、修改操作?
不能使用sys用户查询学生用户的INFOS表,因为没有得到dba用户的授权,需要得到dba用户的授权后,才能查询学生用户对INFOS表的添加、删除、修改操作。
六、总结及心得体会
实验中遇到的问题以及解决办法:
- 一开始输入脚本进行配置的过程当中,会产生部分错误,然后自己在网上搜索以及在老师的指导之下,解决了这个问题。
- 对于实验指导书中没有出现的数据库查询、删除、插入的指令,自己结合课件和网上的一些教程进行学习,最终还是得到了相应的结果。
七、对本实验过程及方法、手段的改进建议
1.在实验中其实相关的脚本也可以适当采取挖空的方式,让学生们进行学习填写。
2.对于插入的关系表,可以适当的增加关系表理解的相关的问题,进行训练。
3.另外,可以适当增加一些SQL语言的练习,以便对学习的知识进行掌握。