Category Archives: DataBase

「Postresql入門」SELECT MAX(CAST(XXX)である項目最大値を取得する

SQL構文
SELECT
MAX (CAST(SUBSTRING(EMPID, 8, 3) AS NUMERIC (3)))
FROM
TEST_TBL
WHERE
EMPID = ‘xxxx’

「postgreSQL入門」デフォルトスキーマ(schema)を変更するメモ

— Use this to show the current search_path
— Should return: “$user”,public
SHOW search_path;

— スキーマ作成
CREATE SCHEMA test_schema;
GRANT ALL ON SCHEMA test_schema TO test_user;

— To change search_path on a connection-level
SET search_path TO test_schema;

— To change search_path on a database-level
ALTER database “test_database” SET search_path TO test_schema;

「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;

3 / 1312345...10...最後 »