oracle/mysql/sqlserverでよく使用される複雑なsql文操作


データベースFAQ処理{{でーたべーす:FAQしょり}}
一、mysqlライブラリ問題操作コマンドセット:1、現在のユーザーの下にあるすべてのtable、view、columnの数を表示する:
SELECT u.table_num, v.view_num,
(c1.column_num1+c2.column_num2) column_num,(u.table_num + v.view_num +
c1.column_num1+c2.column_num2+ 1) count_all
from
(select count(*) table_num from sysobjects where xtype='U') u,
(select count(*) view_num from sysobjects where xtype='V') v,
(select count(*) column_num1 from syscolumns where id in (select u.id from sysobjects u where xtype='U')) c1,
(select count(*) column_num2 from syscolumns where id in
(select v.id from sysobjects v where xtype='V')) c2

2.現在のユーザーの下にあるすべてのテーブルを表示します.
select *  from sysobjects where xtype='U'

3、現在のユーザーの下のすべてのviewを表示する:
select * from sysobjects where xtype='V'

4.現在のユーザーの下にあるすべての列を表示します.
select * from syscolumns where id in (select u.id from sysobjects u where xtype='U')

5、mysqlバージョン番号を表示する:
select version();

or
      :mysql –v

6、Mysqlがサポートするデータ型:
1、数値データ型:整数型:tinyint、smallint、mediumint、int、bigint浮動小数点型:float、double定点小数型:decimal 2、時間/日付型:Year、time、date、datetime、timestamp 3、文字列型:テキスト文字列:char、varchar、tinytext、text、mediumtext、longtext、enum Setバイナリ文字列:bit、binary、varbinary、tinyblob、blog、mediumblob、longblob
7、Mysqlサービス起動:
**1**、net start/stop/status mysql
**2**、service mysqld start/stop/status

8、Mysqlサーバーで使用:
**1**、  mysql   :
Mysql –uroot –p  
Use mysql;
Select**2**、mysql       : ctrl+backspace

9、Mysql修正文字セット(client/server/database):
**1**、       : show variables like '%char%';

**2**、 my.cnf(windows  my.ini)        :
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

  :         ,  mysql       ,             ,   :alter database mdm_master CHARACTER SET utf8;          

**3**、       : show  create table  ;

**4**、       : 
alter table    2  DEFAULT CHARACTER SET utf8 COLLATE
utf8_general_ci;

10、mysqlのインストールパスを表示する:
**1**、whereis mysql

11、Mysqlの一般的な操作:
      :
**1**、           : show databases;
**2**、       : use database;
     (  mysql  ):
**1**、    :
create
sequence SEQ_MD_CORPORE_CTN
increment
by 1
start
with 1
maxvalue 9999999;

12、Mysqlはネイティブlocalhostにアクセスできない、またはリモートにアクセスできない:
**1**、   ,  root     ,
   my.cnf  [mysqld]     :  kip-grant-tables  
           root  mysql
update mysql.user set authentication_string=password('root') where user='root'
grant all privileges on *.* to 'root'@'localhost'  identified by 'root';
flush privileges

**2**、   :grant all privileges on database.table(    *.*         ) to ‘  ’@‘%’(%      ip)  dentified by   ;
        user   :select user,host from user;     ip       。

13、windowsの下でmysqlのデフォルトポート番号をどのように修正するか
**1**、	cmd           mysql -u root -p   
**2**、	       :show global variables like 'port';
**3**、	 mysql        my.ini    port=3306,        ,  3308;
**4**、	        mysql     ;
**5**、	       :mysql -u root -p    -P        

二、oracleデータベース操作コマンドセット:1、指定したユーザーの下のすべてのtable、view、column数を表示する:
SELECT
t.table_num,
v.view_num, c.column_num, (t.table_num + v.view_num + c.column_num + 1)
count_all FROM
(select count(*) table_num from dba_tables where owner='CTMSPROD') t,
(select count(*) view_num from dba_views where owner = 'CTMSPROD') v,
(select count(column_name) column_num from dba_tab_columns where owner='CTMSPROD') c

2.ユーザーの下にあるすべての表を表示します.
select *  from dba_tables where owner='CTMSPROD'

3、ユーザーの下のすべてのviewを表示する:
select *  from dba_views where owner = 'CTMSPROD'

4、ユーザーの下にあるすべての列を表示します.
select *from dba_tab_columns where owner='CTMSPROD'

5、サーバー側操作コマンド:
1>ユーザーの作成:create user test identified by test;権限付与:grant connect, resource to test;ユーザーパスワードの変更:alter user test identified by 123456;2>oracleデータベースの最近のテーブルを表示する操作:
select
SQL_TEXT, last_active_time from v$sql where last_active_time <=
to_date('2018-12-3 0:00:00','yyyy-mm-dd hh24:mi:ss') 
and SQL_TEXT like '%YPXT%' order by
last_active_time desc

3>oracleユーザーコマンドへのアクセス:
Su – oracle   oracle  
Sqlplus/nolog (sqlplus  )
Conn sh/sh

Oracleコマンド・ウィンドウからの文字の削除:ctrl+backspaceまたはsqlplusで直接ログイン:sqlplus /as sysdba4>oracleのユーザshがロックされている:alter user sh account unlockロックユーザ:alter user system account lock;5>oracleユーザーIDはいくつかあります:normal(一般ユーザー)ログイン、sysdba(システム管理者)ログイン、sysoper(システムオペレータ)ログインの3種類に分けられます.3つのアイデンティティに対応する権限はそれぞれ異なります.
6>現在ログインしているユーザーの表示:show user;7>インスタンス起動ステータスの表示:select status from v$instance起動インスタンス:startup ;現在のインスタンス名の表示:select instance_name from v$instance;8>データベースのオン/オフ:startup shutdown ( immediate 、abort )9>Oracleバージョンの表示:select * from v$version;10>oracleリスニング(開始、終了、ステータス):lsnrctl start/stop/status11>システムのすべてのユーザーを表示する(dba権限):select * from dba_users;現在のログインアカウント権限管理のユーザーを表示する:select * from all_users;現在のユーザー情報を表示する:select * from user_users;12>oracleデータベース起動1、ログインsu - oracle ,sqlplus / as sysdba2、データベースオープンSQL> startup3、Oracleリスニングを開くoracleアカウント下lsnrctl start4、データベースファイアウォールを閉じるservice iptables stop6.Oracle共通コマンド:
1>すべてのユーザーの表示:select * from all_users;2>テーブルの作成時間の表示:select created from dba_objects where object_name = 'table_name';3>oracleユーザーの下にあるすべてのデータを削除する方法:DROP USER DMS CASCADE;4>oracle現在のユーザーの下にあるすべてのテーブルのサイズを表示する方法:
select OWNER, t.segment_name,
t.segment_type, sum(t.bytes / 1024 / 1024/1024) GG from dba_segments t where
t.owner = 'DBTEST'  and
t.segment_type='TABLE' group by OWNER, t.segment_name, t.segment_type order by
GG desc;

oracleは、単一のテーブルのサイズを表示します.
select segment_name as tablename,
bytes/1024/1024/1024||'G' from user_segments where segment_name='  ';(    )

5>、oracle文字セットの表示:select userenv('language') from dual;7.Oracleでサポートされているデータ型:
文字列タイプ:char、nchar、varchar、varchar 2、nvarchar 2数値タイプ:number、integer、float、binary_float、binary_double日付タイプ:date、timestamp LOBタイプ:clob、nclob、blob、bfile RAW&LONGタイプ:long、raw、long raw
8、どのようにあるユーザーの下で他の人の私たちの表に対する削除などの操作を監視しますか?
ユーザ(database)にddlのフリップフロップを確立し、記録テーブルを確立し、テーブルの削除があり、システムのV$sessionから操作するユーザIPなどの情報を直接引き出すことを構想する.https://www.haowuliaoa.com/article/info/348865.html https://www.2cto.com/kf/201811/787387.htmlこの2つのアドレスは私たちの問題を解決することができて、親測は利用することができて、すでに実現しました.Oracle 9 i以降のバージョンでは、パラメータを変更する必要があります:alter system set O 7_DICTIONARY_ACCESSIBILITY=true scope=spfile; データベースの再起動:shutdown startup第2の方法:トリガとログテーブルを直接sysユーザーの下に構築し、パラメータを変更せずにsysユーザーの下に構築することが最も簡単で省力的な方法です.
9、racデータベース:more /etc/hostsps -ef|grep smon10、oracleデータベースで.dbf、.ora、.ctlはすべてファイルで、どんな役割を果たしますか?
.dbfファイルデータベースデータを格納するためのファイルです.例えば、テーブルに記録、インデックス、データ辞書情報などの列は、システムデータ辞書DBA_DATA_FILESは関連情報を表示します.論理角度の表空間に対応して、1つの表空間に複数のデータファイルを持つことができるが、1つのデータファイルは1つの表空間に属するしかない.log REDOログ.データベースの変更情報を記録します.ログ・ファイルはバックアップとリカバリの重要な手段です..ctl制御ファイル.データベースの物理構造を記述します.データファイルやログファイルなどの情報が格納されています.oraパラメータファイルは、データベース名、制御ファイルパス、プロセスなどの情報を記録します.上記の3つのファイル(ログファイルを除く)では、いずれかのエラーでデータベースが正常に動作しない可能性があります.パラメータファイルでは、データベースの一部のパラメータを変更できますが、有効になるにはデータベースを再起動する必要があります.
11、データベースの各インスタンスの占有メモリSelect * FROM DBA_DATA_FILES;を表示してoradataフォルダの位置を照会し、次にdu -sh *で各ファイルの占有サイズを照会する
12、linux oracle最大接続数の変更
ステップ1、oracleアカウントに切り替え、su oracleステップ2、sysdbaでログイン、sqlplus / as sysdba
  • プロセスパラメータおよびセッションパラメータの表示SQL>show parameter processes NAME TYPE VALUE db_writer_processes integer 1   gcs_server_processes integer 0   job_queue_processes integer 10   log_archive_max_processes integer 2   processes integer 50   SQL> show parameter sessions   NAME TYPE VALUE   license_max_sessions integer 0   license_sessions_warning integer 0   logmnr_max_persistent_sessions integer 1   sessions integer 60   shared_server_sessions integer
  • processesとsessions値SQL>alter system set processes=300 scope=spfileを変更します.(注:ここでエラーメッセージ:ORA-32001の場合、DBはpfileで起動していることを説明します.spfileで起動するように変更する必要があります.具体的な変更方法は以下の通りです.SQL>show parameter spfileは、どのファイルで起動したのか調べます.SQL>show parameter spfile;動的に変更するにはspfileで起動する必要があります.現在pfileで起動している場合は、spfile起動に切り替えることができます:SQL>create spfile from pfile; SQL>shutdown immediate; SQL>startup; show paramer spfileでvaluesに値がある場合、spfileが起動したことを示します.そうでなければpfileが起動します.)システムが変更されました.  SQL> alter system set sessions=335 scope=spfile; システムが変更されました.
  • processesとsessionsの値を変更するにはoracleサーバを再起動しなければならないORACLEの接続数(sessions)は、そのパラメータファイル内のプロセス数(process)に関係しています.sessions=(1.1*process+5)第3ステップ:oracleを再起動し、SQL>shutdown immediate;SQL>startup; 8>oracleの基本原理:https://www.jianshu.com/p/9401f0a96395

  • 三、sqlserverデータベース操作コマンドセット:1、現在のデータベーステーブル、ビュー、列の数を表示する:
    SELECT
    t.table_num,
    v.view_num, c.column_num, (t.table_num + v.view_num + c.column_num + 1)
    count_all
    FROM
    (SELECT
    count(*) table_num FROM information_schema.TABLES  where table_schema = 'test' and table_type =
    'BASE TABLE' GROUP BY table_schema) t,
    (SELECT
    count(*) view_num FROM information_schema.TABLES  where table_schema = 'test' and table_type =
    'VIEW' GROUP BY table_schema) v,
    (SELECT count(*) column_num FROM
    information_schema.COLUMNS WHERE table_schema = 'test') c
    

    2、データベースのすべてのテーブルを表示する:
    SELECT * FROM
    information_schema.TABLES  where
    table_schema = 'test' and table_type = 'BASE TABLE' GROUP BY table_schema
    

    3、データベースのすべてのビューを表示する:
    SELECT * FROM
    information_schema.TABLES  where
    table_schema = 'test' and table_type = 'BASE TABLE' GROUP BY table_schema
    

    4、データのすべての列を表示する:SELECT*FROM information_schema.COLUMNS WHERE table_schema = ‘test’
    5、サーバー側の常用コマンド:
    1>sqlserverデータベース・サービスの開始と停止:net start/stop/status mssqlserver2>Sqlserverがサポートするデータ型:
    数値タイプ:bigint、int、smallint、tinyint、bit、decimal、numeric、money、smallmoney、float、real日付/時間タイプ:datetime、smalldatetime、date、time、timestampテキストおよび画像タイプ:text、ntext、image文字データタイプ:char、varchar、varchar(max)、nchar、nvarchar、nvarchar(max)バイナリデータタイプ:binary、varbinary、varbinary(max)その他のデータ型:sql_variant、uniqueidentifier、xml、cursor、table
    四、PostgreSQLデータベースFAQ:1>postgresqlデータベースのログイン方法:su - postgrespostgresユーザーpsql -U postgres -d postgrespostgresユーザーを使用してログインする方法(デフォルトのデータベースもpostgres)
    2>データベースの切り替え方法:\c mydb3>権限の付与方法:
    **1GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO mdmp;  //              mdmp  
    **2GRANT ALL PRIVILEGES ON tuser TO wechart;    //  wechart  ,tuser      
    

    4>ユーザー/ロールを削除する方法:
    **1drop user(role) test;                   。                ,     :
    revoke  all on database postgres from test;
    **2、    :create user test with password '';
    **3、     :create database dbtest owner username;