テーブルを作成/削除するSQL。 ・表を作成する(表領域を指定しない場合はデフォルト表領域に作成されます。)
テーブルを作成/削除するSQL。 ・表を作成する(表領域を指定しない場合はデフォルト表領域に作成されます。)
こんにちはPHP Matsuriでは色々とお世話になってる@kozoです。 この記事は2014年CakePHP Advent Calendarの11日目です CakePHP 3系からモデルは大きく変わり、戻り値が配列からオブジェクトになるとか、Modelが1ファイルだったものがTableとEntityに分かれるなど色々変わって非常に便利になってます! 今回は大きく変わったもう1個のfind(SELECT句)のSQLの組み立て方法について調べてみました。 find QueryBuilderの開始地点になり、SELECT用のQueryオブジェクトが生成されます。 QueryオブジェクトをメソッドチェーンでつなげることでSQLを組み立てます。 // 基本的な使い方 $this->Users->find() ->where(条件A) ->where(条件B) ->order(ソート条件A) ->o
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
Access,SQLServerの場合 AccessとSQLServerは +演算子を使用して文字列を連結します. SELECT '文字列1' + '文字列2' + ... Oracleの場合 OracleはCONCAT関数を使用するか ||演算子を使用して文字列を連結します. SELECT CONCAT('文字列1', '文字列2') SELECT '文字列1' || '文字列2' || ... MySQLの場合 MySQLはCONCAT関数を使用して文字列を連結します.なお,||演算子はMySQLでは論理和(OR)として解釈されるため,文字列連結の用途には使用できません. SELECT CONCAT('文字列1', '文字列2', ...) PostgreSQLの場合 PostgreSQLは ||演算子を使用して文字列を連結します. SELECT '文字列1' || '文字列2' ||
一般的なデータベースでは、テーブルの列を増やしたりテーブル名を変更する時にはALTER TABLE文を使います。 ALTER TABLE table ADD ( new_column INT(10) ) ALTER TABLE文はサブコマンドに次のようなものがあります。 ADD 列の追加 MODIFY 列の名前やデータ長などの変更 DROP 列の削除 RENAME テーブル名の変更 しかしSQLiteのALTER TABLE文のサポートは限定的です。 ALTER TABLE sql-statement ::= ALTER TABLE [database-name .] table-name alteration alteration ::= RENAME TO new-table-name alteration ::= ADD [COLUMN] column-def SQLite Quer
NVL 関数の内容 式 expr1 が NULL なら expr2 の値を戻す。Null Value Logic の略 COALESCE 関数の内容 、 NVL 関数を一般化した関数で引数に含まれる最初の 「非 NULL値」 を戻す。 COALESCE( expr1,…, exprN ) のように可変長の引数をもつ。 ⇒ コアレス:空き領域を連結してより大きな空き領域に変換 COALESCE 関数の追加説明と注意事項 COALESCE 関数の引数の数 (N) が 1 の場合にはエラーを戻す。 N = 2 の場合 … NVL(expr1, expr2) と同じ N > 2 の場合 … CASE WHEN expr1 IS NOT NULL then COALESCE( expr2,..., exprN) end と自己参照した内容と同じになる。 ちなみに NVL( expr1, NVL( e
外部結合を使用すると指定した列のデータがテーブルのどちらか一方にしかないレコードも抽出することができます. 外部結合には左外部結合,右外部結合,完全外部結合があります. 左外部結合 左外部結合は結合する列のデータを基準として,左側の表の内容をすべて抽出し,右側の表の内容は左側の表の内容と一致するもののみ抽出する結合です. 左外部結合を使用するにはLEFT OUTERE JOINを使用します. SELECT 列名1, 列名2, ... FROM テーブル名1 LEFT [OUTER] JOIN テーブル名2 ON テーブル名1.列名 = テーブル名2.列名 [WHERE 条件式など] LEFT OUTER JOINで結合するテーブルを指定し,どの列をキーにして結合するかをON句で指定します.なお,OUTERは省略可能です. サンプルに移動 右外部結合 右外部結合は左外部結合の反対です.すなわ
INSTR、INSTRB 関数の内容 文字列 string 中の 検索文字列 substring を検索し、その検索文字列が現れた 文字、または、バイトの位置を示す正数を戻す (1 オリジン) 開始位置 position、検知回数 occurrence のデフォルトはともに 1 開始位置 position にマイナス値を指定すると 文末から文頭 に向けて検索する。マイナスを指定しても戻り値の出現位置は先頭からの正数となる。 INSTR、INSTRB 以外にも各国語キャラクタセットに使用する特定のコードポイント向けの関数がある。 INSTRC : 完全な Unicode 用 INSTR2 : UCS2 用 INSTR4 : UCS4 用 注意点 INSTR、INSTRB の 検索対象文字列の検索開始位置 position は 開始位置を 0 に指定してもエラーにならないが SUBSTR の
OracleではDECODE関数を使って、値を変換する事ができます。使い方はCASE命令と似ています。CASE命令で書き換える事も可能です。 文法: DECODE( x, target, new_value [ , target2, new_value2…..] [ , default] ) xで指定した値を評価し、それがtargetと等しい場合はnew_valueを返す。target2に等しい場合はnew_value2を返す。xの値がどの値とも一致しない場合はdefaultを返す。 使用例:result列が2の場合は’不合格’、1の場合は’合格’を返す。それ以外の場合は’集計中’を返す。 SELECT user, result, DECODE(result, 2, ‘不合格’, 1, ‘合格’, ‘集計中’) FROM tbExamTable; user result DECODE
テーブルの作成 テーブルの最も基本的な作成方法。 create table テーブル名 ( 項目名 データ型 〔default デフォルト値〕〔制約定義〕, 項目名 データ型 〔default デフォルト値〕〔制約定義〕, …, 〔制約定義〕 ) 〔表領域等の定義〕 ; テーブル名や項目名は大文字でも小文字でもいいが、暗黙に大文字に変換される。 ダブルクォーテーションで囲むと変換されない。(select文などで指定する際もダブルクォーテーションで囲む必要が出てくる) default句 データ型の宣言の後に「default デフォルト値」(例:「default 123」「default 'abc'」)を付けることで、その項目のデフォルト値を設定することが出来る。 省略した場合のデフォルト値はNULL。 項目を列挙したinsert文で項目を指定しなかった場合や、insert文やupdate文で
ワイルドカード”%”は、1文字以上の任意の文字列と一致します。 例2) 列「job_name」の先頭に文字列"JOB"が付くレコードを検索する(ワイルドカードに"_"を使用)
全員の name を並び順を気にせずに連結する。 WITHIN GROUP は省略できないので意味のない 「order by null」 を指定してみた。数値を指定してもカラムの第 N 番目でソートというわけでない。 Oracle 11g R2 時点では実行計画に SORT GROUP BY があり、暗黙的に expr 昇順にソートされている。 SQL> select LISTAGG(name) WITHIN GROUP (order by null) concat_name 2 from listagg_sample; CONCAT_NAME -------------------------------------------------- あおきこばやしさとうすずきたかはしやまもと 部門毎に名前をカンマ区切りで連結する。名前の並び順は給料の高い順 SQL> select dep
アイ ラブ SQL (I love SQL) 第233回「高度な副問合わせ ~その7 スカラー副問合わせ その3~」 (2008.12.15) SELECT句でスカラー副問合わせが使えるなんて、ビックリ!な方が多かったと思いますが、実はもっと驚くことに、INSERTのVALUES句でもスカラー副問合わせが使えるんですよ!! えっ?「VALUES句でもじゃなくて、VALUES句のかわりにでしょ?」ですか? はい、誰もが知っているINSERTにおける副問合わせの使用とは、次のような使い方ですよね。 実行例1 いえ、そうでは無くてVALUES句の中の値の代わりにスカラー副問合わせを使用できるんです。 実行例2 値の代わりだからと言って、2列分の値の挿入に2列をSELECTした副問合わせというわけにはいきません。 実行例3 あくまでも、スカラー副問合わせでなければいけません。しかし、
日付のフォーマット使用例 DATE 型のデフォルトの書式は NLS_DATE_FORMAT でフォーマットされる。TIMESTAMP 型は NLS_TIMESTAMP_FORMAT。タイムゾーン付きの場合には NLS_TIMESTAMP_TZ_FORMAT によってフォーマットされる。 TO_CHAR( DATE '2005-06-07', 'RRMMDD') ⇒ '050607' 日付と時刻のフォーマット使用例 TO_CHAR ( TIMESTAMP '2000-01-02 04:05:06', 'YYYY/MM/DD HH24:MI:SS DAY') ⇒ 2000/01/02 04:05:06 日曜日 日付に関する豆知識 曜日を求める TO_CHAR 関数で曜日を取得することも可能(和名、または、英名) 曜日を取得するには 書式指定に 'DAY' を指定する。 日本の曜日はすべて同じ長
SUBSTR、SUBSTRB 関数の内容 SUBSTR は取り出す文字列をキャラクタ単位、 SUBSTRB はバイト単位で部分文字列の取り出しを行なう。 文字列 string の 開始位置 position から legnth 文字、または、バイト分 の部分文字列 (SUBSTRING) を戻す。 開始位置 position は 1 オリジンで始まるが 0 でも有効で 1 を指定したことになる。また、開始位置 position にマイナス値を指定すると文末から position 逆行した位置から文字列を取り出す。 文字列長 length を省略すると文字の最後までが対象となり、0 以下の数値も指定できるが結果は常に NULL を戻す。 BASIC にあるような左から length 文字 (left) 、右から length 文字 (right) のような個別の関数は用意されていない。 SU
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance Transact-SQL サーバー カーソルから特定の行を取得します。 Transact-SQL 構文表記規則 構文 FETCH [ [ NEXT | PRIOR | FIRST | LAST | ABSOLUTE { n | @nvar } | RELATIVE { n | @nvar } ] FROM ] { { [ GLOBAL ] cursor_name } | @cursor_variable_name } [ INTO @variable_name [ ,...n ] ] 引数 NEXT 現在の行の直後にある行を結果行として返し、この返した行に現在の行を加えます。 カーソルに対する最初のフェッチが FETCH NEXT の場合、結果セットの先頭の行が返ります。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く