サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
www.dbonline.jp
サブクエリの前にEXISTSを指定すると、サブクエリが1つでもデータを返した場合に条件式がTRUEとなります。書式は次の通りです。 SELECT col_name1 FROM tbl_name1 WHERE EXISTS (SELECT * FROM tbl_name2 WHERE ...); EXISTSを付けた場合、サブクエリがデータを返すかどうかだけを判断するのでサブクエリで取得したデータを何かと比較するということは行いません。取得するカラムは通常「*」を指定しますが任意のカラムを指定しても構いません。ただその場合でも「*」を指定した場合と同じ扱いになります。 サンプル 実際に試してみます。まず次のようなテーブルを作成します。 mysql> create table newcustomer (id int, name varchar(10)); mysql> create table
テーブルの中のカラムにプライマリーキー制約やユニーク制約が設定されている場合に、データを追加すると制約違反となる場合があります。このような場合通常はエラーとなりますが、エラーを発生させる代わりに既存のデータを指定の値で上書きすることができます。 次の書式を使います。 INSERT INTO tbl_name (col_name1, col_name2, ...) VALUES (value1, value2, ...) ON DUPLICATE KEY UPDATE col_name_x=value_x, col_name_y=value_y, ...; ユニーク制約などで違反するデータを追加しようとした時に、データを新規に追加するかわりに既存のデータの指定のカラムの値を更新するということです。この時、更新するカラムは複数指定できますが、エラーの元となるユニーク制約などが設定されたカラムの
著者 / TATSUO IKURA 初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を多数行っています。 ≫ 詳しいプロフィール
「SQL Server 2008 Express with Advanced Services」のダウンロード及びインストールを行います。「SQL Server 2008 Express with Advanced Services」は「SQL Server 2008 Express」に「SQL Server 2008 Management Studio Basic」など機能を追加したものです。 「SQL Server 2008 Express with Advanced Services」をインストールの前に必要なソフトウェアをインストールしておいて下さい。 ダウンロード インストール SQL Server 2008への接続テスト (参考)SQL Server動作アカウントの作成
今までSELECT文で条件式を記述する場合は下記のように記述していました。 SELECT * FROM client_list WHERE id = '2'; 上記の場合は「id」カラムの値が「2」の行を取得するという意味になります。今回は条件文の比較対象となる値が「2」という固定値ではなくて、他のSELECTの結果(サブクエリの結果と呼びます)で得た値に該当する場合というようにする場合を考えていきます。 まずはサブクエリで得た値のどれかに該当する場合に行を取得したい場合です。 SELECT column_name1, column_name2 FROM table_name WHERE column_name = ANY (SELECT sub_column_name FROM sub_table_name WHERE 条件式); 考え方は下記のようになります。 上記の場合はサブクエリで
ではまずは「Oracle Database 10g Express Edition」のダウンロードを行います。下記のURLからダウンロードを行います。 http://www.oracle.com/technology/products/database/xe/index.html 画面上部にあるメニューの中の「DownLoads」をクリックして下さい。 ダウンロードするプロダクトを選択します。今回は無償版の「Oracle Database 10g Express Edition」をダウンロードします。赤い四角で囲まれた箇所にある「Oracle Database 10g Express Edition」をクリックして下さい。 OSを選択します。今回はWindows版ですので「Oracle Database 10g Express Edition for Microsoft Windows」を
前のページで記述したとおりテーブルのストレージエンジンにInnoDBを指定した場合、テーブル定義に関する情報はテーブル毎に作成されたファイルに格納されますが、テーブルに含まれるデータやインデックスはテーブルスペースと呼ばれる共通のファイルに格納されます。 1つのファイルに情報を格納していくと、1つファイルサイズが大きくなってしまったりバックアップなどの際に不便です。その為、InnoDBであってもテーブル毎にテーブルデータやインデックスを個別のファイルに格納することが出来るようになりました。 どちらの方式が使われているかは「innodb_file_per_table」の値を確認することで分かります。 「OFF」となっている場合には共通のテーブルスペースを使う方式となっています。 では変更してみましょう。「my.ini」ファイルの[mysqld]セクションに次の設定を追加して記述します。 [m
このページに記載した内容は移転させて頂きました。下記のコンテンツなどをご参照下さい。 MySQLの使い方 宜しくお願いいたします。
このページを最初にブックマークしてみませんか?
『Let'sプログラミング』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く