Oracleのwhere句

テーブルルックアップまたは一時データ・セット指定された条件から句が記録される場合、更新を選択した状態に慣れ、およびDELETEステートメントすることができます。

生成試験データ

スーパーガールは、以下のSQLで基本情報テーブル(T_GIRL)を作成し、いくつかのテストデータを挿入します。

create table T_GIRL
(
  id        char(4)         not null,   -- 编号
  name      varchar2(10)    not null,   -- 姓名
  yz        varchar2(10)        null,   -- 颜值
  sc        varchar2(10)        null,   -- 身材
  weight    number(4,1)     not null,   -- 体重
  height    number(3)       not null,   -- 身高
  birthday  date            not null,   -- 出生时间
  memo      varchar2(1000)      null    -- 备注
);
insert into T_GIRL(id,name,yz,birthday,sc,weight,height,memo)
  values('0101','西施','漂亮',to_date('2000-01-01 01:12:35','yyyy-mm-dd hh24:mi:ss'),
         '火辣',48.5,170,'这是一个非常漂亮姑娘,老公是夫差,男朋友是范蠡。');
insert into T_GIRL(id,name,yz,birthday,sc,weight,height,memo)
  values('0102','貂禅','漂亮',to_date('1997-08-02 12:20:38','yyyy-mm-dd hh24:mi:ss'),
         '苗条',45.2,168,'王允真不是男人,干不过董卓就把美人往火坑里推,千古罪人啊。');
insert into T_GIRL(id,name,yz,birthday,sc,weight,height,memo)
  values('0103','妲已','漂亮',to_date('1998-03-03 10:50:33','yyyy-mm-dd hh24:mi:ss'),
         '火辣',53.6,172,'如果商真的因我而亡,你们男人做什么去了?');
insert into T_GIRL(id,name,yz,birthday,sc,weight,height,memo)
  values('0104','芙蓉姐姐','猪扒',to_date('1980-05-05 10:11:55','yyyy-mm-dd hh24:mi:ss'),
         '膘肥体壮',85.8,166,'如果不努力学习技术,将来就会娶个芙蓉姐姐,哼哼。');
insert into T_GIRL(id,name,yz,birthday,sc,weight,height,memo)
  values('0105','神密猫女',null,to_date('1989-12-08 12:10:35','yyyy-mm-dd hh24:mi:ss'),
         null,48.5,171,'不知道是什么人,她脸上有一个%符号,很神密。');

二、句の構文

select 字段名1,字段名2,......字段名n from 表名 where 字段名 比较运算符 值;
select * from 表名 where 字段名 比较运算符 值;

例:

select id,name,yz,sc,height from T_GIRL where id='0101';

ここに画像を挿入説明

select id,name,yz,sc,height from T_GIRL where height=172;

ここに画像を挿入説明

上記の例が示す句、その後、私は、where句の機能を強化するために、Oracleの論理、および比較演算子を紹介します最も簡単な使い方。

第三に、論理演算子

演算子 リマーク
そして 二項演算子は、左の両方の条件に該当する場合、右、真の値が得られます。
若しくは バイナリ演算子は、2つの条件が真である程度限り、真の値が得られます。
ではありません 前者の条件が真である場合、単一のオペレータを意味し、真では前者の条件が偽である場合、結果が真であるのに対し、条件が偽の要素は、ある場合、得られます。nullではない、のような、一般に比較演算子を使用します。

論理演算子は優先順位がありますが、私は優先課題の全てを解決するためのブラケットで、実用的なアプリケーションでそれを導入する必要はありません。

例:

select name,yz,sc,height from T_GIRL where yz='漂亮' and sc='火辣';

ここに画像を挿入説明

select name,yz,sc,height from T_GIRL where yz='漂亮' and (sc='火辣' or sc='苗条');

ここに画像を挿入説明

結果を見ていませんが、めったにそれを使用しません。

ここに画像を挿入説明

第四に、比較演算子

ここに画像を挿入説明

いくつかの問題への注意:

1)比較演算子は使用されないと共に、しかし等において実用的な用途において、ヌルであり、非常に一般的にまれに厄介な感じではなく、他と組み合わせていない比較演算子の使用に関連して使用しないことができます。

次のように2)のように使用する場合は、パーセント記号%のマッチ複数の文字と、アンダースコアが_ 1つの文字に一致しますが、我々は通常の文字として%にしたいと_場合は、この方法は、使用済みのエスケープ文字することができ、使用エスケープ文字は、次のとおりです。

C言語では、バックスラッシュ\エスケープの使用は、オラクルでは、エスケープキーワードでエスケープ文字を定義します。

「CHR」が定義されてエスケープ文字をエスケープ、エスケープ文字は、ワイルドカードの前に置かれたときに、ワイルドカード文字は、例えば、通常のように解釈されます。

select * from T_GIRL where memo like '%人%/%%' escape '/';

ワイルドカード、第3の通常文字%と第一、第二及び第四%。

ここに画像を挿入説明

五、句の高度な使い方

where句の条件が一定(固定値)であってもよいし、式は関数の戻り値、またはSELECT文の結果セットであってもよいです。

比較演算子は、条件値である場合、結果セットの複数列であってもよいし、他の比較演算子の結果セットは、単一の行に記録されなければなりません。

1)条件の値が式です。

select name,yz,sc,height from T_GIRL where height>100+68;

ここに画像を挿入説明

2)及び条件式の値の関数です。

select name,yz,sc,height from T_GIRL where birthday>sysdate-(30*365);

ここに画像を挿入説明

3)条件の値は、単一の行セットの結果であります

select empno,ename,job,sal from EMP
 where deptno=(select deptno from DEPT where dname='ACCOUNTING');

ここに画像を挿入説明

値が複数行の条件であれば、問題は論理的に、エラーが要求されます。

ここに画像を挿入説明

複数行のバックサポート結果セット内の条件の値の4)比較。

ここに画像を挿入説明

第六に、カラムWHERE句の機能の使用および操作

where句では、列が使用され、計算機能することができます。

図1に示すように、カラムの操作

select id,name,height from T_GIRL where height-170>0;

ここに画像を挿入説明

2列の関数を使用して

select id,name,to_char(birthday,'yyyy-mm-dd hh24:mi:ss') from T_GIRL
 where to_char(birthday,'yyyy-mm-dd hh24:mi:ss')='1998-03-03 10:50:33';

ここに画像を挿入説明

3、問題

動作の最初の列上の高さにSQLは、第2の列SQLは、両方のバージョンがゼロを持っている誕生日TO_CHAR関数に使用されています。SQL文は、(テーブル・スキャンを使用して)、インデックス(除くインデックス機能)、低パフォーマンスを使用することはできませんwhere句では、列の機能や操作場合、プログラマは、このような愚かな過ちを犯してはなりませんので。

これは以下のように、関数を使用して、正しい値又は状態計算です。

select id,name,height from T_GIRL where height>170;
select id,name,to_char(birthday,'yyyy-mm-dd hh24:mi:ss') from T_GIRL
 where birthday=to_date('1998-03-03 10:50:33','yyyy-mm-dd hh24:mi:ss');

サイドノートでは、SQL文のパフォーマンスには影響を与えません操作やキーワード機能を使用した後、列名を選択します。

七、著作権表示

C言語Technology Networkのオリジナルの記事、論文、著者と元にソースリンクを明記してくださいを再現。
出典:C言語テクノロジーネットワーク(www.freecplus.net)
著者:倫理コード農業

記事の誤字、またはコンテンツのエラー、またはその他の提案やコメントは、正しい私にメッセージをお願いした場合、どうもありがとうございました!

元の記事を公開 ウォンの賞賛2 ビュー6722

おすすめ

転載: blog.csdn.net/u010806950/article/details/105058222