Category Archives: DataBase

「Oracle入門」階層問い合わせ(start with connect by)をするサンプル

サンプル
select *
from tableName t
start with t.columnName_A = ‘value’
connect by prior t.columnName_B = t.columnName_A

RedHat6.xにMySQL 5.7.9をインストールする手順メモ

1.tarファイル解凍
#tar -xvf mysql-5.7.9-1.el6.x86_64.rpm-bundle.tar

2.インストールしたmysqlを削除
#rpm -qa|grep -i mysql
#yum -y remove mysql-libs-*

3.mysqlのインストール
#rpm -ivh mysql-community-common-5.7.9-1.el6.x86_64.rpm
#rpm -ivh mysql-community-libs-5.7.9-1.el6.x86_64.rpm
#rpm -ivh mysql-community-libs-compat-5.7.11-1.el6.x86_64.rpm
#rpm -ivh mysql-community-embedded-5.7.9-1.el6.x86_64.rpm
#rpm -ivh mysql-community-devel-5.7.9-1.el6.x86_64.rpm
#rpm -ivh mysql-community-embedded-devel-5.7.9-1.el6.x86_64.rpm
#rpm -ivh mysql-community-client-5.7.9-1.el6.x86_64.rpm
#rpm -ivh mysql-community-server-5.7.9-1.el6.x86_64.rpm

4.データベースの初期化
#mysqld –initialize

5.mysqlのユーザを設定
#chown mysql:mysql /var/lib/mysql -R
#service mysqld start

6.ランダムパスワードの確認
# cat /var/log/mysqld.log
「 A temporary password is generated for root@localhost: xxx(パスワード) 」

7. DBにログイン
#mysql -uroot -p’パスワード’

 

8. 新しいパスワードの設定
set password=password(‘startnews24pwd’);

9.MySQLのデータ格納フォルダを設定
#service mysqld stop
#mv /var/lib/mysql /DATA/MySqlData/

10.MySQLの設定ファイルを修正
#vi /etc/my.cnf
修正前
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock

修正後
datadir=/DATA/MySqlData/mysql
socket=/DATA/MySqlData/mysql/mysql.sock

11.MySQLの起動スクリプトを修正
#vi /etc/init.d/mysqld
修正前
#get_mysql_option mysqld datadir “/var/lib/mysql”

修正後
get_mysql_option mysqld datadir “/DATA/MySqlData/mysql”

12.innodb_data_file_pathの」追加
#vi /etc/my.cnf
追記
innodb_data_file_path = ibdata1:256M;ibdata2:512M:autoextend

注意事項
/DATA/MySqlData/mysql直下に ibdata1 ibdata2 ib_logfile0 logfile1ファイルを削除することが必要です。

13.MySQL再起動
#service mysqld start

14.クライン側の接続
#vi /etc/my.cnf
追記
[client]
socket=/DATA/MySqlData/mysql/mysql.sock

 

15.権限の設定
mysql -uroot -p’パスワード’
grant all privileges on *.* to ‘root’@’%’ identified by ‘パスワード’ with grant option;

「Oracle入門」テーブルを作成、削除するコマンド

1.プライマリキー付き
create table companytbl
(
dev_id char(3) ,
compname varchar2(10),
primary key( dev_id )
)

2.プライマリキーを指定
create table companytbl
(
dev_id char(3) ,
compname varchar2(10),
constraint pk_company primary key( dev_id )
)

3.複数プライマリキーを指定
create table companytbl
(
dev_id char(3) ,
snoId char(3) ,
company_name varchar2(10) ,
primary key( dev_id, snoId )
) tablespace comtsp

4.default値、not nullカラムを定義
create table companytbl
(
dev_id char(3) ,
dept_id char(3) default ‘111’,
snoId char(3) default ‘777’ not null,
company_name varchar2(10) not null,
create_date date default sysdate,
primary key( dev_id )
)

5.外部キー制約
create table companytbl
(
dev_id char(3) ,
dept_id char(3) ,
company_name varchar2(10) ,
constraint pk_company primary key( dev_id ),
constraint fk_company foreign key ( dept_id ) references dept( dept_id )
)

6. テーブル削除
drop table companytbl

7. テーブル制約削除
drop table companytbl cascade constraints

「Oracle入門」一時表を作成、削除するコマンド

1.一時表「STUDENT_TMP」を作成
create global temporary table STUDENT_TMP
(
stu_addr char(3),
stu_name varchar2(10)
) on commit delete rows

2.一時表「STUDENT_TMP」を削除
drop table STUDENT_TMP

「Oracle」表(table)へカラム(column)の追加方法

1.CHARGE_CFT_TBLテーブルにVARCHAR2 カラムCFT_NOを追加する、
ALTER TABLE CHARGE_CFT_TBL ADD(CFT_NO VARCHAR2(19) NULL);

2.CHARGE_CFT_TBL に VARCHAR2 カラム DEVNAME と NUMBER カラムSALARY を追加する
ALTER TABLE CHARGE_CFT_TBL ADD (
DEVNAME VARCHAR2(60) DEFAULT ‘システム開発部’ NOT NULL ,
SALARY NUMBER(10)
);

「Oracle」TRUNC(日付)のサンプルコード

サンプルコード
select trunc(sysdate) from dual –2017-5-18

select trunc(sysdate, ‘mm’) from dual –2017-5-1

select trunc(sysdate,’yy’) from dual –2017-1-1

select trunc(sysdate,’dd’) from dual –2017-5-18

select trunc(sysdate,’yyyy’) from dual –2017-1-1

select trunc(sysdate,’d’) from dual –2017-5-13

select trunc(sysdate, ‘hh’) from dual –2017-5-18 14:00:00

select trunc(sysdate, ‘mi’) from dual –2017-5-18 14:41:00

「Oracle」TRUNC(date[,fmt])とTRUNC(number[,decimals])の使い方

1.TRUNC(date[,fmt])
サンプルコード:
TRUNC(TO_DATE(’21-Nov-2016 08:00 pm’),’dd-mon-yyyy hh:mi am’)=’21-Nov-2016 12:00:00 am’
TRUNC(TO_DATE(’21-Nov-2016 08:37 pm’,’dd-mon-yyyy hh:mi am’),’hh’) =’21-Nov-2016 08:00:00 am’

2.TRUNC(number[,decimals])
サンプルコード:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80

「Oracle」SELECT CASE WHEN式、 GROUP BY CASE WHEN 式の書き方

1. SELECT CASE WHEN 式
SQL構文
SELECT grade, COUNT (CASE WHEN depid = 1 THEN 1
ELSE NULL
END) 開発部社員数,
COUNT (CASE WHEN depid = 2 THEN 1
ELSE NULL
END) デザイン部社員数
FROM employees GROUP BY grade;

2. WHERE CASE WHEN 式
SQL構文
SELECT T2.*, T1.*
FROM T1, T2
WHERE (CASE WHEN T2.COMPARE_TYPE = ‘A’ AND
T1.SOME_TYPE LIKE ‘NOTHING%’
THEN 1
WHEN T2.COMPARE_TYPE != ‘A’ AND
T1.SOME_TYPE NOT LIKE ‘NOTHING%’
THEN 1
ELSE 0
END) = 1

3.GROUP BY CASE WHEN 式
SQL構文
SELECT
CASE WHEN cost <= 200 THEN ‘1’ WHEN cost > 500 AND cost <= 700 THEN ‘2’ WHEN cost > 700 AND cost <= 900 THEN ‘3’ WHEN cost > 900 AND cost <= 1000 THEN ‘4’
ELSE NULL END cost_class, — エイリアス
COUNT(*)
FROM Table_A
GROUP BY
CASE WHEN cost <= 500 THEN ‘1’ WHEN cost > 500 AND cost <= 700 THEN ‘2’ WHEN cost > 700 AND cost <= 900 THEN ‘3’ WHEN cost > 900 AND cost <= 1000 THEN ‘4’
ELSE NULL END;

「Oracle」case whenの使い方

1.単純 CASE 式
CASE sex
WHEN ‘1’ THEN ‘female’
WHEN ‘2’ THEN ‘male’
ELSE ‘other’ END

2.検索 CASE 式
CASE
WHEN sex = ‘1’ THEN ‘female’
WHEN sex = ‘2’ THEN ‘male’
ELSE ‘other’ END

「Oracle」テーブルに対する権限を付与するメモ

1.STU_CFT というユーザーがSTU_OWNER というユーザーのテーブル CFT_CITY_TBL に対して
SELECT、UPDATE、DELETE、INSERT できるようにする。
コマンド
GRANT SELECT,UPDATE,DELETE,INSERT ON STU_OWNER.CFT_CITY_TBL TO STU_CFT

結果
GRANTが正常に実行されました。

2.STU_CFT というユーザーが全ユーザー のテーブルに対して SELECT、UPDATE、DELETE、INSERT できるようにする。
コマンド
GRANT SELECT ANY TABLE,UPDATE ANY TABLE,DELETE ANY TABLE,INSERT ANY TABLE TO STU_CFT
結果
GRANTが正常に実行されました。

1 / 1012345...10...最後 »