DBデータ実習(4)


substr, replace
drop table TB_X3 purge;
create table TB_X3( 
a varchar2(10) 
, b varchar2(20) 
);

insert into TB_X3 (a,b) values('1', 'idb');
insert into TB_X3 (a,b) values('2', 'Idb');
insert into TB_X3 (a,b) values('5', 'IDB');

insert into TB_X3 (a,b) values('6', '아이디비');
insert into TB_X3 (a,b) values('7', '%dB');
insert into TB_X3 (a,b) values('8', '8');
insert into TB_X3 (a) values('2');
insert into TB_X3 (a) values('4');

select * from TB_X3 order by b desc;
select substr(b,1,2) as x, b from TB_X3 where b is not null order by b;
select substr(b,2,3) as x, b from TB_X3 where b is not null order by b;
select substr(b,-3,1) as x, b from TB_X3 where b is not null order by b;

select b as "asis", replace(b, 'd', '2002') as "tobe" from TB_X3 where b is not null order by b;

update TB_X3 set b = replace(b, 'd', '2002') where b is not null;
select * from TB_X3;
commit;

update TB_X3 set b = replace(b, '2002', 'd') where b is not null;
select * from TB_X3;
commit;

create table TB_X3_1
as
select a, replace(b, 'd', '2002') as b from TB_X3 where b is not null order by b;

select * from TB_X3_1;
alter table TB_X3 rename to TB_X3_2;
alter table TB_X3_1 rename to TB_X3;
select * from user_tables where table_name like 'TB%';
select * from TB_X3;
Alter session,優先パラメータの変更
-- 도구 > 환경설정 > 데이터베이스 > NLS
-- 날짜형식 변경 : RR/MM/DD > YYYY-MM-DD HH24:MI:SS

select sysdate from dual; // 날짜까지만 나옴  
select to_char(sysdate, 'YYYY/MM/DD HH24:MI:SS') from dual; // 시분초까지 나옴
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS'; // 세션 변경
select sysdate from dual; // 시분초까지 나옴
to_number, to_char, to_date
select to_number('1234') from dual; -- 우측정렬
select to_char('1234') from dual; -- 좌측정렬
select to_date('1992-12-31') from dual;
--select to_date('20070229') from dual; // error, no leap year 
select to_date('20080229') from dual;
重要な背景知識を整理する

  • NULL
    :未定義の値を受け取る準備をします.0は数値です.スペースは文字です.NULLとは異なり、演算にNULLが含まれている場合、結果もNULLです.NULL以外の結果値を取得する場合は、NVL/ISNULL関数を使用します.

  • テーブルに存在する必要がある制約
    :PK、PKは表でしか定義できません.PKで指定した列はNOT NULL、UNIQUEで自動的に設定され、一意のインデックスが自動的に生成されます.

  • FKまたはJOINのターゲットテーブルに作成する必要があります
    :インデックス、NOT NULL、SORTED、インデックスはFKで指定されたカラムまたはJOINの共通カラムでインデックスを作成し、インデックスは特定のカラムでインデックスを作成するときにそのカラムデータをソートし、データ物理アドレスとともに独立したメモリ領域に格納します.並べ替えにより、WHERE条件で簡単に検索できます

  • あなたが知っているDictionaryの種類と含まれている情報を書いてください.
    https://jaeho4646.tistory.com/30
    <接頭辞>
    USER:ユーザーが所有するオブジェクト
    ALL:ユーザが所有するオブジェクト+他のユーザが付与するオブジェクト
    DBA:全ユーザのオブジェクト
    <接尾辞>
    OBJECT:オブジェクト情報(テーブル、インデックス、ビュー、パースビュー)
    TABLES:テーブル情報
    TAB COLUMNS:テーブル列について
    INDEXES:インデックス情報
    IDX COLUMNS:インデックス構成列について
    CONTRAINTS:制約
    TAB COMMENTS:テーブルコメントについて
    vinstance:現在のインスタンスステータス、nomountvinstance:現在のインスタンスステータス、no mount vinstance:現在のインスタンスステータス、nomountvprocess:現在のアクティブなプロセスステータス、no mount
    v$database:現在のデータベース情報、mount

  • CHAR、VARCHAR、VARCHAR 2差異
    :CHARは固定長文字列を格納するデータ型であり、宣言長より小さくてもスペースで埋め込まれている.VARCHAR 2は可変長文字列を格納するデータ型であり、メモリメリットがある.VARCHAR/VARCHARR 2には差はないが、VARCHAR 2は他の用途に変更できるため、VARCHAR 2を使用することを推奨する.NVARCHAR 2を使用する場合は、韓国語、VARCHAR 2、英語の数字はみな同じだ

  • ターゲット・オブジェクト、テーブル、Columnネーミングの標準化:生産性の向上と管理

  • DELETE、DROP、TRANCATE差異
    DELETE:条件を削除し、flashbackを復元する
    DROP:無条件、消去されていないリカバリ可能、削除されたデータおよびテーブル
    TRUNCATE:無条件、リカバリ不可、データ消去のみ、テーブル保持

  • %はLIKEと組み合わせて使用し、%は文字列の後に配置します.
    WHERE EMPLOYE NAME LIKE「赤%」;-->使用
    WHERE EMPLOYE NAME LIKE"%赤";-->これにより、パフォーマンスに問題が発生します.(いけないわけではない)
    WHERE EMPLOYE NAME NOT LIKE「赤%」;-->できる
    WHERE EMPLOYE NAME NOT LIKE"%赤%";-->絶対だめだ

  • decodeとcaseの違い
    https://data-make.tistory.com/20
    decodeは、条件に従って既存のカラムのデータを他のカラムの値に置き換え、nvlのような空の値があるかどうかを確認しますが、caseよりも速度が遅い
    caseはdecode、構文の違い、string関数ではなく、コマンドです.

  • NLS DATE FORMATの変更
    ツール>プリファレンス>データベース>NLS(Tools>Preference Parameters>Database>NLS)
    日付フォーマットの変更:RR/MM/DD>YYY-MM-DD HH 24:MI:SS
    select sysdate from dual;//締め切り日
    select to_char(sysdate, 'YYYY/MM/DD HH24:MI:SS') from dual;//分秒
    alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';//セッションの変更
    select sysdate from dual;//分秒
  • 追加)
  • PK属性1.Not Null 2. Unique 3. Index
  • SQL演算子優先度
  • ログ関連:spool,start
  • FK制約インデックス(パフォーマンス向上)
  • 行単位、投影列単位
  • を選択する.
  • Windows関数では、START WITHとCONNECTBYの両方にINDEXが必要です.
  • Oracle Optimizer Planの作成の主な基準はIndex
  • です.
  • DMLが頻繁に発生する場合、ツリー内の頻繁な挿入、位置の変更、削除により、ファブリックのアンバランスが生じる
  • .
  • テーブルで作成可能なインデックス数(3~6個)
  • インデックス、推奨される6カラム数
  • セグメント履歴のデータクエリでは、日付時間列の前にインデックスが追加されます.これは、
  • が有利です.
  • 座辺変形禁止->立柱を加工せず、置換加工を行い、定数(変数)部分を加工します.