表に対する
検索はSELECT文である! (Accessの選択クエリー)SQL*Plusについて
SQL*Plusで使用するコマンドには2種類ある。
- SQLコマンド
DML、DDL、DCLコマンド。文の最後に「;」を付ける。
(複数行に分けて入力できる)- SQL*Plus独自のコマンド
文の最後には何もつけない
(1行にしか入力できない)データベースを操作する際〜
説明の必要なし。
WindowsNTや〜
説明の必要なし。
操作例
1〜5は説明の必要なし。
SQL*Plusの終了はEXITで統一。
基本構文
SELECT *
FROM 表名;解説
- 「
*」は「全て(の列)」という意味である。- SQL文は複数行で入力できる。(単語単位)
- SQL文の一番最後には「;(セミコロン)」を付ける。
(;で文の終わりを示す)- 大文字小文字は区別されない(値を除く)。
例
SELECT *
FROM dept;は、次のように書いてもよい。
SELECT * FROM dept;
SELECT
*
FROM
dept;
SELECT * FROM dept
;
基本構文
SELECT 列名 [, 列名 ・・・]
FROM 表名;解説
- FROM句の後に指定した表内にある
特定の列を取り出して表示する。- 「列」は複数指定できる。
複数指定する場合は列名と列名の間を「,(カンマ)」で区切る。表にどんな列があるか分らないときは
SQL*Plusコマンド(SQLコマンドではない!)の「DESCRIBE」を使って調べる。[使い方]
DESC 調べたい表名 ←セミコロンが付かないことに注意!!
教科書訂正
社員表から、部門番号の「列」だけを取り出すと、全社員数分データが出力されます。
SELECT DEPTNO FROMDEPTEMP;SELECTの後の「列名」の
代わり前にDISTINCTを〜操作例解説
EMP表から、部門名職種を表示する。構文
SELECT DISTINCT列名 FROM 表名;意味
表示する「列」の値を
重複させずに表示する。例
例えば学生の取得資格を格納するテーブル「資格取得テーブル」があったとする。
学籍番号 学生の身分証明書番号 資格コード 取得した資格の資格コード 取得日付 資格を取得した日付 このテーブルから「有資格者」を表示する場合、
SELECT 学籍番号 FROM 資格取得テーブル; では、複数の資格を取っている学生は、その資格の数だけ学籍番号が出てきてしまう。これを、
SELECT DISTINCT学籍番号 FROM 資格取得テーブル;とすることにより、
学籍番号を重複させずに表示することができる。操作例
1’を先に実行し、その後1を実行する。
(重複データがあることを確認させ、その後、重複を消すことができることを確認させる)
構文
SELECT 列名 (AS) 列見出し
FROM 表名;意味
- 列見出しを指定しない場合、列名が表示されるが、それを自由に変更できる。
- 列名と列見出しの間は1文字以上の半角空白で空ける。(絶対カンマでは無い)
ASはSQL92の記述方法だが、付けても付けなくても動く。- 列見出しに半角空白を含めるには、列見出し名をダブルクォーテーションで囲む。(Oracleではこれ以外の用途でダブルクォーテーションは使わない)
教科書訂正
HINT&MEMO
■比較する値
(例)
empnoename= 'Larry'操作例
[入力]
SELECT empno, ename, sal
FROM emp
WHERE deptno = 30;
[結果]
EMPNOENAME SAL
------------------ -------
7499ALLEN 1600
7521WARD 1250
7654MARTIN 1250
7698BLAKE 1250
7844TURNER 1500
7900JAMES 950構文
SELECT 列名 [, 列名 ・・・]
FROM 表名
WHERE 列名 比較演算子 比較する値;意味
- 条件に一致するデータのみを表示する。
- 条件に一致する行が1件もない場合、何も表示されない。
比較演算子
Oracleで使用できる比較演算子 比較演算子 機能 = 同じ <>、!=、^= 違う > 〜より大きい >= 〜と同じか、大きい < 〜より小さい <= 〜と同じか、小さい 比較する値の書き方
- 数値
- そのまま書く
- 文字(文字列)
- シングルクォーテーションで囲む(ダブルクォーテーションではない!)
- 日付、時間
- シングルクォーテーションで囲む(ダブルクォーテーションではない!)