Category Archives: DataBase

SQLiteのテーブルを作成する方法

db.execSQL(“CREATE TABLE IF NOT EXISTS “+LOCUS_OF_POINT+
” (_id INTEGER PRIMARY KEY,” +
“USER_ID TEXT,” +
“USER_NAME TEXT,” +
“TIME TEXT,” +
“SHAPE TEXT,”+
“EQUIPMENT_NUMBER TEXT)”);

「MySQL入門」日付の減算関数DATE_SUB()の使い方

サンプルコード

date_sub(CURRENT_DATE(),interval 1 day)  昨日
date_sub(CURRENT_DATE(),interval -1 day)  明日
date_sub(CURRENT_DATE(),interval 1 month)  先月
date_sub(CURRENT_DATE(),interval -1 month)  来月
date_sub(CURRENT_DATE(),interval 1 year)    昨年
date_sub(CURRENT_DATE(),interval -1 year)   来年

PostgreSQLで指定期間のレコードを取り出すサンプル

1.直近1年データのレコードを取得
select * from table_name where column_name between (current_timestamp +’-1 years’) and current_timestamp  order by column_name desc;

2.指定期間のレコードを取得
select * from table_name where column_name between ‘2015-10-15’ and ‘2017-2-22’;
3  今日の日付から3ヶ月以内になっているレコードを取得
select * from table_name where column_name between (current_date) and (current_date + interval ‘3 month’) ORDER BY column_name;

64ビットのCentOS7にMySQL 5.7.17をインストールする

システム環境
CentOS 7 64位 MySQL 5.7

1.依存パッケージのインストール
#yum install -y gcc-c++ make cmake bison bison-devel ncurses-devel libaio-devel perl perl-Data-Dumper

2.MySQLユーザとグループの追加
#cat /etc/passwd | grep mysql
#cat /etc/group | grep mysql

#groupadd mysql
#useradd -r -g mysql mysql

3.MySQLソースファイルを解凍
#tar -zxv -f mysql-5.7.17.tar.gz

4.MySQLインストールディレクトリとデータディレクトリを作成
#mkdir /usr/local/mysql
#mkdir /usr/local/mysql/data

5.boostファイルをコピー
#mkdir /usr/local/boost
#cp /tmp/boost_1_59_0.tar.gz /usr/local/boost/

6. cmakeの操作
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DDEFAULT_CHARSET=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_general_ci
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1

7.インストール
#make && make install

8. 配置ファイルの設定
#vim /etc/my.cnf

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock

symbolic-links=0

skip-grant-tables

[mysqld_safe]
log-error=/usr/local/mysql/logs/mysql.log
pid-file=/usr/local/mysql/localhost.localdomain.pid

!includedir /etc/my.cnf.d

mkdir /usr/local/mysql/logs

9. MySQLディレクトリのユーザ権限を設定
#chown -R mysql:mysql /usr/local/mysql

10.MySQLサービスを追加
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

11. MySQLが起動
#service mysql start

Starting MySQL……. SUCCESS!

12.MySQLにログイン

#/usr/local/mysql/bin/mysql -uroot -p

Mybatisでバッチデータを更新する

方法1
<update id=”updateBatch” parameterType=”Map”>
update aa set
a=#{fptm},
b=#{csoftrain}
where c in
<foreach collection=”cs” index=”index” item=”item” pen=”(“separator=”,”close=”)”>
#{item}
</foreach>
</update>
方法2
接続文字列 jdbc:MySQL://172.17.2.120:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true

<update id=”batchUpdate” parameterType=”java.util.List”>
<foreach collection=”list” item=”item” index=”index” open=”” close=”” separator=”;”>
update test
<set>
test=${item.test}+1
</set>
where id = ${item.id}
</foreach>
</update>

PostgreSQLでPRIMARY KEYの変更、削除方法

1.PRIMARY KEYの作成、削除
①PRIMARY KEYの作成
ALTER TABLE table ADD CONSTRAINT table_pkey PRIMARY KEY (field1, field2);

studentdb=> alter table stutbl add constraint stutbl_pkey primary key (stuid);
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index “stutbl_pkey” for table “stutbl”
ALTER TABLE
②PRIMARY KEYの削除
ALTER TABLE table DROP CONSTRAINT table_pkey;

studentdb=> alter table stutbl drop constraint stutbl_pkey;
ALTER TABLE
studentdb=> \d rfideventtbl1
2.NOT NULL制約の追加と削除
追加
ALTER TABLE table ALTER COLUMN column SET NOT NULL;

alter table stutbl alter birth column set not null

削除
ALTER TABLE table ALTER COLUMN column DROP NOT NULL;
alter table stutbl alter birth column drop not null

postgreSQLでidの自動採番方法

SQLコマンド
ALTER TABLE “public”.”sys_user”
DROP CONSTRAINT “sys_user_pkey” ,
DROP COLUMN “id”,
ADD COLUMN “id” serial8 NOT NULL,
ADD CONSTRAINT “sys_user_pkey” PRIMARY KEY (“id”);

MongoDBのバックアップ、リストアコマンドのまとめ

1.バックアップ
>mongodump -h dbhost -d dbname -o dbdirectory

# mongodump -h 127.0.0.1:27017 -d test -o /opt/data/mongobak
2017-01-12T15:41:39.235+0900 writing test.Customer to
2017-01-12T15:41:39.250+0900 done dumping test.Customer (3 documents)

# ls /opt/data/mongobak/test
Customer.bson Customer.metadata.json

2.リストア
>mongorestore -h dbhost -d dbname -directoryperdb dbdirectory

3.インポート
>mongoimport -h dbhost -d dbname -c collectionname output

4.エクスポート
>mongoexport -h dbhost -d dbname -c collectionName -o output

Oracleにsqlplusコマンドでselect結果をエクスポートして添付ファイルとして送信する

1.queryora.sql
SET NEWPAGE 0
SET SPACE 0
SET LINESIZE 80
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET MARKUP HTML OFF SPOOL OFF
define LAST_DATE=’&1′
define TODAY=’&2′
define FILE_NAME=’&3′

set markup html on;
spool &3
#SELECT構文
select ****
from tblName
where
条件
spool off;
exit

2.shellコード
#!/bin/bash
#環境変数
export PATH
export EDITOR=vim
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export ORACLE_HOSTNAME=db2
export PATH=$PATH:/$ORACLE_HOME/bin
export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.UTF8″
alias sqlplus=’/usr/local/rlwrap/bin/rlwrap sqlplus’
alias rman=’/usr/local/rlwrap/bin/rlwrap rman’
export NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”
#パラメータの設定
LAST_DATE=`date -d”yesterday” +%Y-%m-%d`
TODAY=`date -d “today” +”%Y-%m-%d”`
FILE_NAME=”${LAST_DATE}_${TODAY}.html”

#データインポート
sqlplus oracle_user/oracle_pass @”queryora.sql” “$LAST_DATE” “$TODAY” “$FILE_NAME”
echo “query is finish”

#データ圧縮
tar -czvf ${LAST_DATE}_${TODAY}.tar.gz ${LAST_DATE}_${TODAY}.html
rm -rf ${LAST_DATE}_${TODAY}.html

#メール送信
/usr/local/bin/sendEmail -f send@sample -t receive@sample \
-s smtp.exmail.sample.com -u “タイトル” -o message-content-type=html \
-o message-charset=utf8 -a /home/oracle/daxiaju/${LAST_DATE}_${TODAY}.tar.gz -xu send@sample \
-xp send_pass -m “本文”

Mongodb基本操作コマンドと使い方のまとめ

クライアント起動
#mongo

データベース作成
> use sampleDB
switched to db sampleDB

データベースの確認
db.stats()
> db.stats()
{
“db” : “sampleDB”,
“collections” : 1,
“views” : 0,
“objects” : 1,
“avgObjSize” : 34,
“dataSize” : 34,
“storageSize” : 16384,
“numExtents” : 0,
“indexes” : 1,
“indexSize” : 16384,
“ok” : 1
}
データ挿入
> db.sampleCollection.insert({name:”haizao”,age:”24″})
WriteResult({ “nInserted” : 1 })
データ確認
> db.sampleCollection.find()
{ “_id” : ObjectId(“5874a0c4ef741eb0c18bedaa”), “name” : “haizao”, “age” : “24” }
データ更新
> db.sampleCollection.update({name:”haizao”},{age:”35″})
WriteResult({ “nMatched” : 1, “nUpserted” : 0, “nModified” : 1 })

データ削除
> db.sampleCollection.remove({})
WriteResult({ “nRemoved” : 1 })
> db.sampleCollection.find()

コレクション削除
> db.sampleCollection.drop()
true

データベース削除
> use sampleDB
switched to db sampleDB
> db.dropDatabase()
{ “dropped” : “sampleDB”, “ok” : 1 }
> show dbs
admin 0.000GB
local 0.000GB
test 0.000GB